In Java, instances of a class are known as objects. Every object has state and behavior in the form of instance fields and methods respectively.
public class Person {// state of an objectint age;String name;// behavior of an objectpublic void set_value() {age = 20;name = "Robin";}public void get_value() {System.out.println("Age is " + age);System.out.println("Name is " + name);}// main methodpublic static void main(String [] args) {// creates a new Person objectPerson p = new Person();// changes state through behaviorp.set_value();}}
Java instances are objects that are based on classes. For example, Bob
may be an instance of the class Person
.
Every instance has access to its own set of variables which are known as instance fields, which are variables declared within the scope of the instance. Values for instance fields are assigned within the constructor method.
public class Person {int age;String name;// Constructor methodpublic Person(int age, String name) {this.age = age;this.name = name;}public static void main(String[] args) {Person Bob = new Person(31, "Bob");Person Alice = new Person(27, "Alice");}}
In Java programming language, we use .
to access the variables and methods of an object or a Class.
This is known as dot notation and the structure looks like this-
instanceOrClassName.fieldOrMethodName
public class Person {int age;public static void main(String [] args) {Person p = new Person();// here we use dot notation to set agep.age = 20;// here we use dot notation to access age and printSystem.out.println("Age is " + p.age);// Output: Age is 20}}
Java classes contain a constructor method which is used to create instances of the class.
The constructor is named after the class. If no constructor is defined, a default empty constructor is used.
public class Maths {public Maths() {System.out.println("I am constructor");}public static void main(String [] args) {System.out.println("I am main");Maths obj1 = new Maths();}}
In Java, we use the new
keyword followed by a call to the class constructor in order to create a new instance of a class.
The constructor can be used to provide initial values to instance fields.
public class Person {int age;// Constructor:public Person(int a) {age = a;}public static void main(String [] args) {// Here, we create a new instance of the Person class:Person p = new Person(20);System.out.println("Age is " + p.age); // Prints: Age is 20}}
A variable with a reference data type has a value that references the memory address of an instance. During variable declaration, the class name is used as the variable’s type.
public class Cat {public Cat() {// instructions for creating a Cat instance}public static void main(String[] args) {// garfield is declared with reference data type `Cat`Cat garfield = new Cat();System.out.println(garfield); // Prints: Cat@76ed5528}}
A class can contain multiple constructors as long as they have different parameter values. A signature helps the compiler differentiate between the different constructors.
A signature is made up of the constructor’s name and a list of its parameters.
// The signature is `Cat(String furLength, boolean hasClaws)`.public class Cat {String furType;boolean containsClaws;public Cat(String furLength, boolean hasClaws) {furType = furLength;containsClaws = hasClaws;}public static void main(String[] args) {Cat garfield = new Cat("Long-hair", true);}}
null
is a special value that denotes that an object has a void reference.
public class Bear {String species;public Bear(String speciesOfBear;) {species = speciesOfBear;}public static void main(String[] args) {Bear baloo = new Bear("Sloth bear");System.out.println(baloo); // Prints: Bear@4517d9a3// set object to nullbaloo = null;System.out.println(baloo); // Prints: null}}
In Java, we use curly brackets {}
to enclose the body of a method.
The statements written inside the {}
are executed when a method is called.
public class Maths {public static void sum(int a, int b) { // Start of sumint result = a + b;System.out.println("Sum is " + result);} // End of sumpublic static void main(String [] args) {// Here, we call the sum methodsum(10, 20);// Output: Sum is 30}}
In java, parameters are declared in a method definition. The parameters act as variables inside the method and hold the value that was passed in. They can be used inside a method for printing or calculation purposes.
In the example, a and b are two parameters which, when the method is called, hold the value 10 and 20 respectively.
public class Maths {public int sum(int a, int b) {int k = a + b;return k;}public static void main(String [] args) {Maths m = new Maths();int result = m.sum(10, 20);System.out.println("sum is " + result);// prints - sum is 30}}
Java variables defined inside a method cannot be used outside the scope of that method.
//For example, `i` and `j` variables are available in the `main` method only:public class Maths {public static void main(String [] args) {int i, j;System.out.println("These two variables are available in main method only");}}
A Java method can return any value that can be saved in a variable. The value returned must match with the return type specified in the method signature.
The value is returned using the return
keyword.
public class Maths {// return type is intpublic int sum(int a, int b) {int k;k = a + b;// sum is returned using the return keywordreturn k;}public static void main(String [] args) {Maths m = new Maths();int result;result = m.sum(10, 20);System.out.println("Sum is " + result);// Output: Sum is 30}}
Method declarations should define the following method information: scope (private or public), return type, method name, and any parameters it receives.
// Here is a public method named sum whose return type is int and has two int parameters a and bpublic int sum(int a, int b) {return(a + b);}