- A constructor is a special method whose task is to initialize the object of its class.
- It is special because its name is the same as the class name.
- They do not have return types, not even void and therefore they cannot return values.
- They cannot be inherited, though a derived class can call the base class constructor.
- Constructor is invoked whenever an object of its associated class is created.
32.How does the Java default constructor be provided?
If a class defined by the code does not
have any constructor, compiler will automatically provide one
no-parameter-constructor (default-constructor) for the class in the
byte code. The access modifier (public/private/etc.) of the default
constructor is the same as the class itself.
33.Can constructor be inherited?
No, constructor cannot be inherited, though a derived class can call the base class constructor.
34.What are the differences between Contructors and Methods?
Constructors | Methods | |
---|---|---|
Purpose | Create an instance of a class | Group Java statements |
Modifiers | Cannot be abstract, final, native, static, or synchronized | Can be abstract, final, native, static, or synchronized |
Return Type | No return type, not even void | void or a valid return type |
Name | Same name as the class (first letter is capitalized by convention) -- usually a noun | Any name except the class. Method names begin with a lowercase letter by convention -- usually the name of an action |
this | Refers to another constructor in the same class. If used, it must be the first line of the constructor | Refers to an instance of the owning class. Cannot be used by static methods. |
super | Calls the constructor of the parent class. If used, must be the first line of the constructor | Calls an overridden method in the parent class |
Inheritance | Constructors are not inherited | Methods are inherited |
35.How are this() and super() used with constructors?
- Constructors use this to refer to another constructor in the same class with a different parameter list.
- Constructors use super to invoke the superclass's constructor. If a constructor uses super, it must use it in the first line; otherwise, the compiler will complain.
36.What are the differences between Class Methods and Instance Methods?
Class Methods | Instance Methods |
---|---|
Class methods are methods which are declared as static. The method can be called without creating an instance of the class | Instance methods on the other hand require an instance of the
class to exist before they can be called, so an instance of a class
needs to be created by using the new keyword. Instance methods operate on specific instances of classes. |
Class methods can only operate on class members and not on instance members as class methods are unaware of instance members. | Instance methods of the class can also not be called from within a class method unless they are being called on an instance of that class. |
Class methods are methods which are declared as static. The method can be called without creating an instance of the class. | Instance methods are not declared as static. |
37.How are this() and super() used with constructors?
- Constructors use this to refer to another constructor in the same class with a different parameter list.
- Constructors use super to invoke the superclass's constructor. If a constructor uses super, it must use it in the first line; otherwise, the compiler will complain.
38.What are Access Specifiers?
One of the techniques in object-oriented programming is encapsulation.
It concerns the hiding of data in a class and making this class
available only through methods. Java allows you to control access to
classes, methods, and fields via so-called access specifiers..
39.What are Access Specifiers available in Java?
Java offers four access specifiers, listed below in decreasing accessibility:
- Public- public classes, methods, and fields can be accessed from everywhere.
- Protected- protected methods and fields can only be accessed within the same class to which the methods and fields belong, within its subclasses, and within classes of the same package.
- Default(no specifier)- If you do not set access to specific level, then such a class, method, or field will be accessible from inside the same package to which the class, method, or field belongs, but not from outside this package.
- Private- private methods and fields can only be accessed within the same class to which the methods and fields belong. private methods and fields are not visible within subclasses and are not inherited by subclasses.
Situation | public
|
protected
|
default | private
|
---|---|---|---|---|
Accessible to class
from same package? |
yes | yes | yes | no |
Accessible to class
from different package? |
yes | no, unless it is a subclass | no | no |
40.What is final modifier?
The final modifier keyword makes that
the programmer cannot change the value anymore. The actual meaning
depends on whether it is applied to a class, a variable, or a method.
- final Classes- A final class cannot have subclasses.
- final Variables- A final variable cannot be changed once it is initialized.
- final Methods- A final method cannot be overridden by subclasses.
No comments:
Post a Comment