SlideShare a Scribd company logo
1 of 7
Download to read offline
JAVA ROADMAP
Constructors In Java – Unveiling
Object Creation
A constructor in Java is a unique method used in object-oriented programming to
initialize objects of a class. It is automatically invoked when an object is created
using the new keyword and has the same name as the class.
The main goal of a constructor is to make sure that an object (previously discussed)
is correctly initialized and in a valid state before it is used. A valid state denotes that
an object is in good and useable condition. In other words, it signifies that all of the
crucial information included within the object has been properly configured.
Syntax:
[access modifier] ClassName([parameters]) {
// Constructor body
// Initialization code and other statements
}
In the above syntax:
● [access modifier] specifies the visibility of the constructor, such as public,
private, or protected. If no access modifier is specified, it defaults to
package-private.
● ClassName is the name of the class to which the constructor belongs. It
must match the class name exactly.
● parameters represent any input values that the constructor may accept.
Multiple parameters are separated by commas.
● The constructor body contains the initialization code and other statements
that execute when the constructor is called.
Let’s take the example of a Car object. For the Car object to be in a valid state, it
means that its characteristics, like the make (brand), model, and manufacturing year,
have been set to meaningful values that make sense for a car. If any of these
characteristics are missing or have incorrect values, the Car object would not be in a
valid state.
Example:
public class Car {
private String make;
private String model;
private int year;
// Constructor with parameters
public Car(String make, String model, int year) {
this.make = make;
this.model = model;
this.year = year;
}
// Default constructor (no parameters)
public Car() {
this.make = "Unknown";
this.model = "Unknown";
this.year = 0;
}
// Other methods and members of the Car class...
}
We have a Car class with two constructors in this example. The first constructor
takes three inputs (make, model, and year) and sets the member variables
accordingly. The second constructor is a default constructor that assigns default
values to the memberJava variables.
Now, let’s create Car objects using these constructors:
public class Main {
public static void main(String[] args) {
Car car1 = new Car("Toyota", "Corolla", 2021);
// Constructor with parameters is called, creating a Car object with the provided values
Car car2 = new Car();
// Default constructor is called, creating a Car object with default values
// Accessing the member variables
System.out.println("Car 1: " + car1.make + " " + car1.model + " " + car1.year);
System.out.println("Car 2: " + car2.make + " " + car2.model + " " + car2.year);
}
}
Output:
Car 1: Toyota Corolla 2021
Car 2: Unknown Unknown 0
In the main method, we create two Car objects: car1 and car2. The first object is
created using the constructor with parameters, while the second object is created
using the default constructor.
● car1 is created using the constructor with parameters. Its make is set to
“Toyota”, model to “Corolla”, and year to 2021.
● car2 is created using the default constructor. Since no specific values are
passed, its make and model variables are set to “Unknown”, and the year
is set to 0 (default values).
Then, we use System.out.println to print the values of make, model, and year for
both car1 and car2. The output shows the values assigned to the member variables
for each object.
Now you must be wondering that the same thing can be done using methods inside
the class Car, and… you are right. You can do the same thing in the following way:
public class Car {
private String make;
private String model;
private int year;
// Method to set the car details
public void setCarDetails(String make, String model, int year) {
this.make = make;
this.model = model;
this.year = year;
}
// Method to display car information
public void displayCarInfo() {
System.out.println(make + model + year);
}
// Other methods and members of the Car class...
}
public class Main {
public static void main(String[] args) {
Car car1 = new Car();
car1.setCarDetails("Toyota", "Corolla", 2021);
Car car2 = new Car();
car2.setCarDetails("Unknown", "Unknown", 0);
System.out.print("Car 1: ");
car1.displayCarInfo();
System.out.println();
System.out.print("Car 2: ");
car2.displayCarInfo();
}
}
Output:
Car 1: Toyota Corolla 2021
Car 2: Unknown Unknown 0
In this example, we have a Car class with two methods: setCarDetails and
displayCarInfo. The setCarDetails method takes the car details as parameters
(make, model, and year) and sets the corresponding member variables accordingly.
The displayCarInfo method is responsible for displaying the car information by
printing the values of the member variables.
In the main method, we create two Car objects: car1 and car2. After creating the
objects, we call the setCarDetails method on each object to set the car details. Then,
we call the displayCarInfo method on each object to print the car information.
Question – Why do we need constructors, if we can do
the same thing using methods?
Constructors in Java are crucial for object initialization. Unlike methods that perform
actions on objects, constructors focus on setting up objects from their creation. They
ensure objects start in a valid state, provide standardised initialization, enforce
encapsulation, and support inheritance. Constructors simplify the initialization
process, allow for default values, and enhance code readability. In short,
constructors are essential for proper object setup and initialization in Java.
Difference Between Constructor And Methods In Java
Constructors Methods
Used for object initialization Used for performing actions/calculations
Automatically called when an
object is created
Explicitly called by their name
No return type (not even void) Have a return type, e.g., int, String, void
Same name as the class Have their own distinct names
Can be overloaded with different
parameter lists
Can also be overloaded, but with different
names
Can provide default values for
member variables
Do not provide default values
Focus on setting up the object’s
initial state
Focus on performing specific operations on
the object
Enforce encapsulation by
initializing private member
variables
Can access and modify private variables, but
not responsible for object initialization
Inherited from superclass to
subclass
Inherited like any other method, with no
special inheritance behaviour
Types Of Constructor In Java
In Java, there are three types of constructors: default constructor, parameterized
constructor, and copy constructor.
● Default Constructor: Initializes member variables with default values. No
parameters. It sets the object’s initial state to default values.
● Parameterized Constructor: Accepts parameters to initialize member
variables with specific values. This allows objects to be created with
different initial states based on the values passed to the constructor.
● Copy Constructor: Creates a new object by copying values from another
object of the same class. You can establish separate instances with
identical data by copying values from one object to another, allowing you to
operate with them separately.
Let’s deep dive into every type of constructor one by one.
Default constructor
In Java, a Default Constructor is a special constructor that is automatically provided
by the Java compiler if no other constructor is explicitly defined in a class. It is called
the “default” constructor because it is used when no specific arguments are provided
during object creation.
The Default Constructor’s purpose is to assign default values to an object’s member
variables. These default values are determined by the variable’s data type. Numeric
types, for example, are set to 0, boolean variables are set to false, and reference
types (such as objects or strings) are set to null.
Example:
public class Person {
private String name;
private int age;
// Default Constructor
public Person() {
name = "Unknown";
age = 0;
}
// Other members and methods...
}
In the example, we have a Person class with a default constructor. The default
constructor is defined without any parameters. It initializes the name variable to
“Unknown” and the age variable to 0. These are the default values assigned to the
member variables when a new Person object is created without explicitly providing
any arguments.
The Default Constructor allows you to create objects of the Person class without
specifying any values. For instance, if you create a Person object using Person
person = new Person();, the name will be “Unknown” and the age will be 0.
VISIT
BLOG.GEEKSTER.IN
FOR THE REMAINING

More Related Content

Similar to Constructors In Java – Unveiling Object Creation

Object Oriended Programming with Java
Object Oriended Programming with JavaObject Oriended Programming with Java
Object Oriended Programming with Java
Jakir Hossain
 
New microsoft office word document (2)
New microsoft office word document (2)New microsoft office word document (2)
New microsoft office word document (2)
rashmita_mishra
 
Csharp4 objects and_types
Csharp4 objects and_typesCsharp4 objects and_types
Csharp4 objects and_types
Abed Bukhari
 
Classes & objects new
Classes & objects newClasses & objects new
Classes & objects new
lykado0dles
 

Similar to Constructors In Java – Unveiling Object Creation (20)

Unidad o informatica en ingles
Unidad o informatica en inglesUnidad o informatica en ingles
Unidad o informatica en ingles
 
Object Oriended Programming with Java
Object Oriended Programming with JavaObject Oriended Programming with Java
Object Oriended Programming with Java
 
constructors.pptx
constructors.pptxconstructors.pptx
constructors.pptx
 
[OOP - Lec 13,14,15] Constructors / Destructor and its Types
[OOP - Lec 13,14,15] Constructors / Destructor and its Types[OOP - Lec 13,14,15] Constructors / Destructor and its Types
[OOP - Lec 13,14,15] Constructors / Destructor and its Types
 
New microsoft office word document (2)
New microsoft office word document (2)New microsoft office word document (2)
New microsoft office word document (2)
 
OOP and C++Classes
OOP and C++ClassesOOP and C++Classes
OOP and C++Classes
 
Unit No 2 Objects and Classes.pptx
Unit No 2 Objects and Classes.pptxUnit No 2 Objects and Classes.pptx
Unit No 2 Objects and Classes.pptx
 
Constructor and destructor in oop
Constructor and destructor in oop Constructor and destructor in oop
Constructor and destructor in oop
 
C++ classes tutorials
C++ classes tutorialsC++ classes tutorials
C++ classes tutorials
 
C questions
C questionsC questions
C questions
 
Lecture 4. mte 407
Lecture 4. mte 407Lecture 4. mte 407
Lecture 4. mte 407
 
Lect 1-java object-classes
Lect 1-java object-classesLect 1-java object-classes
Lect 1-java object-classes
 
Csharp4 objects and_types
Csharp4 objects and_typesCsharp4 objects and_types
Csharp4 objects and_types
 
Constructor destructor.ppt
Constructor destructor.pptConstructor destructor.ppt
Constructor destructor.ppt
 
Intro to iOS Development • Made by Many
Intro to iOS Development • Made by ManyIntro to iOS Development • Made by Many
Intro to iOS Development • Made by Many
 
DeclaringConstructir.pptx
DeclaringConstructir.pptxDeclaringConstructir.pptx
DeclaringConstructir.pptx
 
Object Oriented Programming using JAVA Notes
Object Oriented Programming using JAVA Notes Object Oriented Programming using JAVA Notes
Object Oriented Programming using JAVA Notes
 
Classes & objects new
Classes & objects newClasses & objects new
Classes & objects new
 
Sonu wiziq
Sonu wiziqSonu wiziq
Sonu wiziq
 
Chap-2 Classes & Methods.pptx
Chap-2 Classes & Methods.pptxChap-2 Classes & Methods.pptx
Chap-2 Classes & Methods.pptx
 

More from Geekster

More from Geekster (7)

Java Polymorphism: Types And Examples (Geekster)
Java Polymorphism: Types And Examples (Geekster)Java Polymorphism: Types And Examples (Geekster)
Java Polymorphism: Types And Examples (Geekster)
 
JVM Architecture – How It Works.pdf
JVM Architecture – How It Works.pdfJVM Architecture – How It Works.pdf
JVM Architecture – How It Works.pdf
 
Setting Up Java Environment | PDF
Setting Up Java Environment | PDFSetting Up Java Environment | PDF
Setting Up Java Environment | PDF
 
Java Introduction | PDF
Java Introduction |  PDFJava Introduction |  PDF
Java Introduction | PDF
 
OOps Interview questions.pdf
OOps Interview questions.pdfOOps Interview questions.pdf
OOps Interview questions.pdf
 
2 Important Data Structure Interview Questions
2 Important Data Structure Interview Questions2 Important Data Structure Interview Questions
2 Important Data Structure Interview Questions
 
What are the 7 features of Python?pdf
What are the 7 features of Python?pdfWhat are the 7 features of Python?pdf
What are the 7 features of Python?pdf
 

Recently uploaded

DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 

Recently uploaded (20)

DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
 
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 

Constructors In Java – Unveiling Object Creation

  • 1. JAVA ROADMAP Constructors In Java – Unveiling Object Creation A constructor in Java is a unique method used in object-oriented programming to initialize objects of a class. It is automatically invoked when an object is created using the new keyword and has the same name as the class. The main goal of a constructor is to make sure that an object (previously discussed) is correctly initialized and in a valid state before it is used. A valid state denotes that an object is in good and useable condition. In other words, it signifies that all of the crucial information included within the object has been properly configured. Syntax: [access modifier] ClassName([parameters]) { // Constructor body // Initialization code and other statements } In the above syntax: ● [access modifier] specifies the visibility of the constructor, such as public, private, or protected. If no access modifier is specified, it defaults to package-private.
  • 2. ● ClassName is the name of the class to which the constructor belongs. It must match the class name exactly. ● parameters represent any input values that the constructor may accept. Multiple parameters are separated by commas. ● The constructor body contains the initialization code and other statements that execute when the constructor is called. Let’s take the example of a Car object. For the Car object to be in a valid state, it means that its characteristics, like the make (brand), model, and manufacturing year, have been set to meaningful values that make sense for a car. If any of these characteristics are missing or have incorrect values, the Car object would not be in a valid state. Example: public class Car { private String make; private String model; private int year; // Constructor with parameters public Car(String make, String model, int year) { this.make = make; this.model = model; this.year = year; } // Default constructor (no parameters) public Car() { this.make = "Unknown"; this.model = "Unknown"; this.year = 0; } // Other methods and members of the Car class... } We have a Car class with two constructors in this example. The first constructor takes three inputs (make, model, and year) and sets the member variables accordingly. The second constructor is a default constructor that assigns default values to the memberJava variables. Now, let’s create Car objects using these constructors: public class Main {
  • 3. public static void main(String[] args) { Car car1 = new Car("Toyota", "Corolla", 2021); // Constructor with parameters is called, creating a Car object with the provided values Car car2 = new Car(); // Default constructor is called, creating a Car object with default values // Accessing the member variables System.out.println("Car 1: " + car1.make + " " + car1.model + " " + car1.year); System.out.println("Car 2: " + car2.make + " " + car2.model + " " + car2.year); } } Output: Car 1: Toyota Corolla 2021 Car 2: Unknown Unknown 0 In the main method, we create two Car objects: car1 and car2. The first object is created using the constructor with parameters, while the second object is created using the default constructor. ● car1 is created using the constructor with parameters. Its make is set to “Toyota”, model to “Corolla”, and year to 2021. ● car2 is created using the default constructor. Since no specific values are passed, its make and model variables are set to “Unknown”, and the year is set to 0 (default values). Then, we use System.out.println to print the values of make, model, and year for both car1 and car2. The output shows the values assigned to the member variables for each object. Now you must be wondering that the same thing can be done using methods inside the class Car, and… you are right. You can do the same thing in the following way: public class Car { private String make; private String model; private int year; // Method to set the car details public void setCarDetails(String make, String model, int year) { this.make = make; this.model = model; this.year = year;
  • 4. } // Method to display car information public void displayCarInfo() { System.out.println(make + model + year); } // Other methods and members of the Car class... } public class Main { public static void main(String[] args) { Car car1 = new Car(); car1.setCarDetails("Toyota", "Corolla", 2021); Car car2 = new Car(); car2.setCarDetails("Unknown", "Unknown", 0); System.out.print("Car 1: "); car1.displayCarInfo(); System.out.println(); System.out.print("Car 2: "); car2.displayCarInfo(); } } Output: Car 1: Toyota Corolla 2021 Car 2: Unknown Unknown 0 In this example, we have a Car class with two methods: setCarDetails and displayCarInfo. The setCarDetails method takes the car details as parameters (make, model, and year) and sets the corresponding member variables accordingly. The displayCarInfo method is responsible for displaying the car information by printing the values of the member variables. In the main method, we create two Car objects: car1 and car2. After creating the objects, we call the setCarDetails method on each object to set the car details. Then, we call the displayCarInfo method on each object to print the car information. Question – Why do we need constructors, if we can do the same thing using methods?
  • 5. Constructors in Java are crucial for object initialization. Unlike methods that perform actions on objects, constructors focus on setting up objects from their creation. They ensure objects start in a valid state, provide standardised initialization, enforce encapsulation, and support inheritance. Constructors simplify the initialization process, allow for default values, and enhance code readability. In short, constructors are essential for proper object setup and initialization in Java. Difference Between Constructor And Methods In Java Constructors Methods Used for object initialization Used for performing actions/calculations Automatically called when an object is created Explicitly called by their name No return type (not even void) Have a return type, e.g., int, String, void Same name as the class Have their own distinct names Can be overloaded with different parameter lists Can also be overloaded, but with different names Can provide default values for member variables Do not provide default values Focus on setting up the object’s initial state Focus on performing specific operations on the object
  • 6. Enforce encapsulation by initializing private member variables Can access and modify private variables, but not responsible for object initialization Inherited from superclass to subclass Inherited like any other method, with no special inheritance behaviour Types Of Constructor In Java In Java, there are three types of constructors: default constructor, parameterized constructor, and copy constructor. ● Default Constructor: Initializes member variables with default values. No parameters. It sets the object’s initial state to default values. ● Parameterized Constructor: Accepts parameters to initialize member variables with specific values. This allows objects to be created with different initial states based on the values passed to the constructor. ● Copy Constructor: Creates a new object by copying values from another object of the same class. You can establish separate instances with identical data by copying values from one object to another, allowing you to operate with them separately. Let’s deep dive into every type of constructor one by one. Default constructor In Java, a Default Constructor is a special constructor that is automatically provided by the Java compiler if no other constructor is explicitly defined in a class. It is called the “default” constructor because it is used when no specific arguments are provided during object creation. The Default Constructor’s purpose is to assign default values to an object’s member variables. These default values are determined by the variable’s data type. Numeric types, for example, are set to 0, boolean variables are set to false, and reference types (such as objects or strings) are set to null. Example: public class Person { private String name;
  • 7. private int age; // Default Constructor public Person() { name = "Unknown"; age = 0; } // Other members and methods... } In the example, we have a Person class with a default constructor. The default constructor is defined without any parameters. It initializes the name variable to “Unknown” and the age variable to 0. These are the default values assigned to the member variables when a new Person object is created without explicitly providing any arguments. The Default Constructor allows you to create objects of the Person class without specifying any values. For instance, if you create a Person object using Person person = new Person();, the name will be “Unknown” and the age will be 0. VISIT BLOG.GEEKSTER.IN FOR THE REMAINING