Java Tutorial

Java Tutorial Java Features C++ vs Java Java History Java Hello World Java Development Kit Java Runtime Environment Java Virtual Machine Difference between JDK, JRE, and JVM Memory Areas in Java Java Operators Java Keywords Primitive Data Types Variables

Java Loops

Java Do While Loop Java While Loop Java For Loop Java Enhanced For Loop

Java Programs

Java Basic Programs Factorial Program in Java Fibonacci Series Program in Java Prime Number Program in Java Palindrome Number Program in Java Armstrong Number Program in Java Anagram Program in Java Pattern Programs in Java Calculator Program in Java Leap Year Program in Java Addition Program in Java Number Pattern Programs in Java Star Pattern Programs in Java Package Program in Java Pyramid Program in Java Sorting Program in Java String Palindrome Program in Java Even Odd Program in Java For Loop Program in Java If Else Program in Java Switch Case Program in Java GCD Program in Java LCM Program in Java Hello Program in Java Matrix Program in Java Menu Driven Program in Java Series Program in Java Client Server Program in Java Swapping Program in Java Pig Latin Program in Java Tower of Hanoi Program in Java Recursion Program in Java Matrix Multiplication Program in Java Perfect Number Program in Java Classes and Objects in Java Example Programs String Programs in Java Array Programs in Java Constructor Program in Java Inheritance Program in Java Abstract class Program in Java Interface Program in Java Encapsulation Program in Java Polymorphism Program in Java Exception Handling Program in Java Multithreading Program in Java Thread Program in Java Collection Programs in Java ArrayList Program in Java Stack Program in Java Applet Program in Java Swing Program in Java JDBC Program in Java How to run Java program in command prompt How to run Java program in Eclipse

Java Sorting

Sorting Algorithms in Java Merge Sort in Java Quick Sort in Java Bubble Sort in Java Insertion Sort in Java Selection Sort in Java Heap Sort in Java Radix Sort in Java Topological Sort in Java Bucket Sort in Java Counting Sort in Java

Java OOPs Concepts

OOPs - Object Oriented Programming Objects and Classes in Java Java Naming Conventions Constructors in Java Java this keyword Java static keyword Inheritance in Java Aggregation in Java Java super keyword Constructor Chaining and Constructor Overloading Java Polymorphism Static and Dynamic Binding in Java Java Abstraction Abstract class in Java Interface in Java Difference between Abstract class and Interface Java final keyword Packages in Java Access Modifiers in Java Java Wrapper classes Java Numbers Java Characters Java Integer Java Boolean Java Arrays Java Command Line Arguments Java strictfp Keyword Java Math

Java Strings

Java Strings Java String Methods StringBuilder in Java StringBuffer in Java Java Regular Expressions StringBuffer vs StringBuilder String vs StringBuffer String vs StringBuilder String Manipulation in Java Java String Concatenation How to Reverse a String in Java String Array in Java How to Compare Two Strings in Java How to Concatenate Two Strings in Java Why String in Immutable in Java java.lang.NumberFormatException for Input String String Pool in Java Java Generate Random String How to take String Input in Java Java String Interview Questions

Java Exceptions

Exception Handling in Java Java try catch Java throw Java throws Difference between throw and throws Java finally Java Custom Exception Java Exception Propagation

Garbage Collection

Automatic Resource Management in Java Java Garbage Collection Java finalize() Java gc() Difference between final, finally and finalize

Multithreading

Multithreading in Java Process and Thread in Java Basic Terms in Multithreading Java Thread creation Thread Scheduler in Java Java Thread class DeadLock in Java

Java IO

Java IO Java Read File Java BufferedWriter Java InputStreamReader Java File Java Read File Line By Line Java FileOutputStream Jar File in Java

Serialization

Java Serialization Java transient

Networking

Java Network Programming Java Socket Programming Java URL Java URLConnection HttpURLConnection in Java Java InetAddress Java DatagramSocket and Java DatagramPacket

AWT

Java AWT

Swing

Swing in Java

Java Collections

Collections in Java Java List Interface ArrayList in Java LinkedList in Java Vector in Java Stack in Java ArrayList vs LinkedList in Java ArrayList vs Vector in Java Java Set Interface HashSet in Java LinkedHashSet in Java TreeSet in Java Java Queue Interface PriorityQueue in Java ArrayDeque in Java Java Map Interface HashMap in Java LinkedHashMap in Java TreeMap in Java Dictionary in Java Hashtable in Java Properties in Java Collections class in Java Java Comparable Java Comparator Comparable vs Comparator in Java

Java Generics

Generics in Java

Java Annotations

Annotations in Java

Java JDBC

Java JDBC Tutorial

Java Differences

Java vs JavaScript Python vs Java Kotlin vs Java Java vs C++ C# vs Java Static vs Non-static in Java C vs Java int vs Integer in Java Stack vs Heap in Java Java Array vs ArrayList

How to

How to run Java program How to set path in Java How to check the Java version in cmd How to install Java in Windows 10 How to run Java program in cmd How to call a method in Java How to sort an array in Java How to iterate HashMap in Java How to write Java program How to create an array in Java How to create a package in Java How to generate random numbers in Java How to input String in Java How to create thread in Java How to find length of String in Java How to sort a string in Java How to use scanner in Java How to achieve multiple inheritance in Java How to run Java program in Eclipse How to call a function in Java How to create array of objects in Java How to create custom exception in Java How to achieve abstraction in Java How to call static method in Java

Java 8 Features

Java 8 Features Lambda Expressions in Java Functional Interface in Java Streams in Java Java Base64 Encoding and Decoding Parallel Arrays Sort in Java

Java 9 Features

Java 9 Tutorial Java 9 Try With Resources Java 9 Interface Private Method

Java Servlet Tutorial

Java Servlets Tutorial

Java JSP Tutorial

Java JSP Tutorial

Hibernate Tutorial

Hibernate Tutorial

Spring Tutorial

Spring Tutorial

Spring MVC Tutorial

Spring MVC Tutorial

Jenkins Tutorial

Jenkins Tutorial

Java Math Methods

Math.abs() Math.acos() Math.addExact() Math.asin() Math.atan () Math.atan2() Math.cbrt() Math.ceil() Math.copysign() Math.cos() Math.cosh() Math.decrementExact() Math.exp() Math.expm1() Math.floor() Math.floorDiv() Math.floorMod() Math.getExponent() Math.hypot() Math.IEEEremainder() Math.incrementExact() Math.log() Math.log10() Math.log1p() Math.max() Math.min() Math.multiplyExact() Math.multiplyFull() Math.negateExact() Math.nextAfter() Math.nextDown() Math.nextUp() Math.pow() Math.random() Math.rint() Math.round() Math.scalb() Math.signum() Math.sin() Math.sinh() Math.sqrt() Math.subtractExact() Math.tan() Math.tanh() Math.toDegrees() Math.toIntExact() Math.toRadians() Math.ulp()

Java String Methods

toCharArray() copyValueOf() endsWith() equals() equalsIgnoreCase() format() getBytes() getChars() hashCode() indexOf() intern() isEmpty() join() lastIndexOf() length() replace() replaceAll() replaceFirst() split() startsWith() subSequence() substring() toLowerCase() toUpperCase() trim() valueOf()

Java Conversion

Java Convert String to int Java Convert int to String Java Convert String to long Java Convert long to String Java Convert String to float Java Convert float to String Java Convert String to double Java Convert double to String Java Convert String to Date Java Convert Date to String Java Convert String to Object Java Convert Object to String Java Convert String to char Java Convert char to String Java Convert int to long Java Convert long to int

Misc

Functional Interfaces in Java Singleton class in Java Awesome explanation of Strings in Java Object class in Java Static class in Java All the important string methods in Java String Handling Method in Java What are Array strings in Java Advantages and Disadvantages of Strings in Java Big Decimal class in Java Class definition in Java Char and String differences in Java Difference between String, StringBuffer and StringBuilder in java Replace character in string Java String Coding Interview Questions in Java What is String in Java? String isnullorempty in Java String Matches in Java Trim Method in String Java Bean class in Java Libraries in Java Arithmetic Operations on String in Java

Constructor Program in Java

Constructor Program in Java

In Java, a constructor is a piece of code that is used to create an object. A constructor is called implicitly when an object is created in Java using the new keyword. A constructor looks like an instance method. However, a constructor and an instance method are two different things. A Java constructor is often regarded as a special type of method in Java. Constructor program in Java tells about how to use constructors in a program. Constructors always have the same name as the name of the class. Whenever a new object is created in Java, the constructor initializes that object. A class may or may not contain more than one constructor. The following rules must be followed to define a constructor in Java

1) Constructor name and class name should always match.

2) No return type should be given to a Java constructor.

3) Keywords like synchronized, static, native, final, and abstract should not be used with a Java constructor. However, access specifiers like private, protected, public can be used with a constructor.

Constructor Program in Java

The following program demonstrates how to create an array and display its elements on the console.

FileName: ConstructorExample.java

 public class ConstructorExample
 {
 // Constructor
 ConstructorExample()
 {
     // print statement
     System.out.println("Inside the constructor of the class ConstructorExample. ");
 }
 public static void main(String argvs[])
 {
     // creating two objects obj of the class ConstructorExample
     ConstructorExample obj1 = new ConstructorExample();
     ConstructorExample obj2 = new ConstructorExample();
 }
 } 

Output:

 Inside the constructor of the class ConstructorExample.
 Inside the constructor of the class ConstructorExample. 

Explanation: We see that there are two statements in the output but only one print statement in the code. This is because the calling of a constructor is dependent upon the number of times the objects are created. In the code, we have used the keyword new twice. Thus, two times the constructor is called, and two objects of the class ConstructorExample is created. ConstructorExample() written after the new keyword is responsible for the constructor invoking. Note that a constructor always returns the reference of the object created. obj1 and obj2 holds the reference returned by the constructor ConstructorExample().

Types of Constructor in Java

There are three types of constructor in Java

1) Default constructor

2) No argument constructor

3) Parameterized constructor

Default Constructor

Let’s see what happens if we remove the code of constructor in the above example.

FileName: ConstructorExample.java

 public class ConstructorExample
 {
 public static void main(String argvs[])
 {
     // creating two objects obj of the class ConstructorExample
     ConstructorExample obj1 = new ConstructorExample();
     ConstructorExample obj2 = new ConstructorExample();
 }
 } 

Explanation:

When we compile and run the above program, it does not show the output because there is no print statement in the program. However, the code is compiled and executed perfectly. Because the Java compiler implicitly inserts a default constructor in the code during the compilation of the program. It is not visible to user. Therefore, when ConstructorExample(), written after the new keyword, the default constructor is called. Hence, there is no error while executing the code.

For example, the default constructor inserted by the Java compiler is:

 ConstructorExample()
 {
 } 

Note: The Java compiler never inserts the default constructor when a constructor is defined in the code. Thedefault constructors always get the access specifier of the class for which they are defined. In the above code, the class ConstructorExample is public. Hence, the default constructor gets the access specifier public.

No argument Constructor

Consider the following program.

FileName: NoArgConstructor.java

 public class NoArgConstructor
 {
 // no argument constructor
 NoArgConstructor()
 {
 System.out.println("Inside the no argument constructor. ");
 }
 public static void main(String argvs[])
 {
     // creating an object of the class NoArgConstructor
     // and invoking the no argument constructor
     NoArgConstructor obj1 = new NoArgConstructor();
 }
 } 

Output:

Inside the no argument constructor.

Explanation: Since, we have provided a no-argument constructor, the default constructor is absent. This no-argument constructor is getting called we create an object of the class NoArgConstructor.

Parameterized Constructor

A constructor with one or more parameters is called a parameterized constructor.

FileName: Employee.java

 public class Employee
 {
 String empName; // contains employee name
 int empId; // stores employee id
 // a parameterized constructor with two parameters
 Employee(String name, int id)
 {
     // initializing the fields
     empName = name;
     empId = id;
 }
 // A method printing the information of an employee
 void printInfo()
 {
     System.out.println("Employee name is: " + empName + ", and his id is: " + empId);
 }
 public static void main(String argvs[])
 {  
     // creating two objects of the class Employee
     // invoking paramterized constructor to initialize the  fields
     Employee e1 = new Employee("Amit", 12345);
     Employee e2 = new Employee("Sumit", 26789);
     // printing the information of employee e1
     e1.printInfo();
     // printing the information of employee e2
     e2.printInfo();
 }
 } 

Output:

 Employee name is: Amit, and his id is: 12345
 Employee name is: Sumit, and his id is: 26789 

Explanation: The parameterized constructor is used to initialize fields of the class. In the code, the constructor has two parameters: one for the employee name and another for the employee id. Therefore, while creating the object of the class, we have to pass the mentioned parameters in the same order; otherwise, the Java compiler punishes with the compilation error. Note that the above code does not contain any zero-parameter constructor. Therefore, a statement like new Employee(); must be avoided. Because the compiler tries to find Employee() in the code, which is absent. Since we have given a parameterized constructor, the existence of the default constructor is also ruled out.

Constructor Chaining Program

When a constructor of a class invokes another constructor of the same class, called constructor chaining. Let’s understand the constructor chaining through the following Java program.

FileName: Employee.java

 public class Employee
 {
 // zero-parameter constructor
 Employee()
 {  
     // calling the paramterized consturctor that takes
     // one parameter
     this("Amritesh");
     System.out.println("Inside the zero-parameter constructor.");
 }
 // parameterized constructor that takes one argument
 Employee(String name)
 {
     // calling another constructor that takes
     // two parameters
     this(name, 78901);
     System.out.println("Inside the one-parameter constructor.");
 }
 // parameterized constructor that takes two parameters
 Employee(String name, int id)
 {
     // displaying the employee information
     System.out.print("The name of the employee is ");
     System.out.println(name + ", and his id is " + id);
     System.out.println("Inside the two-parameters constructor.");
 }
 public static void main(String argvs[])
 {
     // creating an object of the class Employee and
     // calling no argument constructor
     Employee e1 = new Employee();
 }
 } 

Output:

 The name of the employee is Amritesh, and his id is 78901
 Inside the two-parameters constructor.
 Inside the one-parameter constructor.
 Inside the zero-parameter constructor. 

Explanation: When the statement new Employee() gets executed, the zero-parameter constructor is called. Inside the zero-parameter constructor, there is a statement this(“Amristesh”);, which does the construction chaining by calling the constructor having one string argument. Thus, the statements that are written after this(“Amritesh”); statement goes in the stack.  Similarly, the single parameter constructor calls the constructor having two parameters. This time also, the statements after this(name, 78901); goes in the stack. The two parameters constructor executes the print statements written inside it. In the end, stack unwinding occurs, and whatever statements that are present in the stack get executed. The last two statements in the output are due to stack unwinding.

Constructor Overloading Program

Constructor overloading means having more than one constructor in a class that has different parameters. Here different parameters mean:

1) Number of parameters of the given constructors is different.

 public class ABC
 {
                ABC()
                {
                  …
                  …
                }
                ABC(int i)
                {
                  …
                  …
                }
 } 

Class ABC has two constructors: one has no parameter, while another has one parameter.

2) Number of parameters is the same, but the order/ type of parameters is different.

 public class ABC
 {
                ABC(int i, String str)
                {
                  …
                  …
                }
                ABC(String str, int i)
                {
                  …
                  …
                }
 } 

Class ABC has two constructors. Each constructor accepts two parameters. In the first constructor, the first parameter is of type int, and the second parameter is of type string, whereas in the second constructor, the first parameter is of type string, whereas the second parameter is of type int. These two constructors can be assigned different responsibilities as per the requirement.

Copy Constructor Program in Java

A copy constructor is used to copying the values of one object to another object of the same class. Like C++, there is no copy constructor in Java. We have to create the copy constructor explicitly. The following program illustrates the same.

FileName: CopyConst.java

 public class CopyConst
 {
 // class fields   
 int ab;
 String str;
 // parameterless constructor
 CopyConst()
 {
     ab = 9;
     str = "ABC";
 }
 // It is a copy constructor that copies the values of one object
 // to that object, which calls this copy constructor.
 // This constructor takes the class object as the argument, whose values
 // is going to be copied
 CopyConst(CopyConst ob)
 {
     // copying the values of the object
     ab = ob.ab;
     str = ob.str;
 }
 // printing values of different fields of the objects of the class
 void printInfo()
 {
     System.out.print(" Value of the integer field is " + ab + " ");
     System.out.println("Value of the string field is " + str);   
 }
 // driver method
 public static void main(String argvs[])
 {
     // creating an object, and calling the parameterless constructor
     CopyConst obj1 = new CopyConst();
     // creating another object, and calling the copy constructor
     CopyConst obj2 = new CopyConst(obj1);
     // displaying fields of the given object
     obj1.printInfo();
     obj2.printInfo();
 }
 } 

Output:

 Value of the integer field is 9 Value of the string field is ABC
 Value of the integer field is 9 Value of the string field is ABC 

Explanation: The one-parameter constructor is doing the job of the copy constructor in the code. The rest of the code is very straightforward to comprehend.



ADVERTISEMENT
ADVERTISEMENT