Pre-Requisite: Java:Class
In the previous post, you learn about the Java Class declaration, implementation, and types of classes. Here we will discuss Object which is the basic unit of Object-Oriented paradigm to represent real-life entities.
When an instance of a class is created is known as Object. These instances share attributes and behaviors i.e methods of the class. These values of attributes will be unique for each object i.e called state.
A java program may have lots of objects and these objects interact with each other by invoking methods. An object consists of :
- Identity: It gives a unique name to the identification of an object and enables one object to interact with other objects.
- State: It is represented by attributes/properties values of an object.
- Behavior: It is represented by methods of an object to behave in a particular state.
Let’s consider a class of Animal, which can have an object like Dog, Cow, Lion, Elephant, etc. Each of these animals has different properties like name, breed, age, and color.
//Class Declaration public class Animal { //instance variables String name; String breed; int age; String color; //Default Constructor : Constructor without parameter public Animal() { this.name="Default"; } // Parameterize Constructor : Constructor with parameter public Animal(String name, String breed, int age, String color) { this.name = name; this.breed = breed; this.age = age; this.color = color; } //Instance methods public String getName() { return name; } public String getBreed() { return breed; } public int getAge() { return age; } public String getColor() { return color; } //methods override from Object class @Override public String toString() { return "Animal [name=" + name + ", breed=" + breed + ", age=" + age + ", color=" + color + "]"; } }
Example of an object: Dog
Declaration of Object
We declare a variable or object like (type variable_name;). This indicates to the compiler that this variable refers to data whose type is type. In the case of the primitive type, declaration allocates space for the variable as per type but in case of a reference variable, the type must be a concrete class name. Generally, In java, we don’t create an object of Abstract class and interface.
Syntax
access_modifier class_name object_name;
Example
Animal dog_tommy;
As declared above for variable dog_tommy, show this variable is of type Animal but this will not create any object instance i.e point to undetermined value (null) as long as an object not created.
Creation & Initializing an object
When we create an instance of an object by using the new operator. It will allocate memory for a new object and return a reference to that memory. This new operator also called the class constructor to initialize the attributes of the class.
Syntax
//default constructor
access_modifier class_name object_name=new class_name();
//parameterize constructor
access_modifier class_name object_name=new class_name(arg1,arg2..);
Example
//Default Constructor
Animal dog_tommy=new Animal();
//Parameterize Constructor
Animal dog_tommy=new Animal("Tommy","Small Dog",5,"Black");
Note :
- All classes have at least one constructor. If you do not explicitly declare any constructor, then on time of compile Java compiler will automatically provide a no-argument constructor i.e also called the default constructor.
- If you declare any parameterize constructor then that is must write a default constructor.
- This default constructor calls the parent’s class no-argument constructor i.e super(); or if no parent class extended the called constructor of Object Class i.e directly or indirectly parent class of all the class.
Complete Example
//Class Declaration public class Animal { //instance variables String name; String breed; int age; String color; //Default Constructor : Constructor without parameter public Animal() { this.name="Default"; } // Parameterize Constructor : Constructor with parameter public Animal(String name, String breed, int age, String color) { this.name = name; this.breed = breed; this.age = age; this.color = color; } //Instance methods public String getName() { return name; } public String getBreed() { return breed; } public int getAge() { return age; } public String getColor() { return color; } //methods override from Object class @Override public String toString() { return "Animal [name=" + name + ", breed=" + breed + ", age=" + age + ", color=" + color + "]"; } } public TestClass { public static void main(String[] args) { //Instance Default Constructor Animal dog_tommy=new Animal(); //Instance with Parameterize Constructor Animal dog_tommy=new Animal("Tommy","Small Dog",5,"Black"); } }
Output
Animal [name=Default, breed=null, age=0, color=null]
Animal [name=Tommy, breed=Small Dog, age=5, color=Black]
Ways to create an object of a class
This is the most common way to create an instance of an object by using new operators. Java also provides other ways to create instances of an object but internally uses a new keyword only.
- Object by new Operator
- Object by Class.forName().newInstance()
- Object by clone() method
- Object by Deserialization
- Object for Anonymous Class
Follow this link to know about each object creation ways in detail: Java: Object Creation Ways
You must log in to post a comment.