0% found this document useful (0 votes)
16 views11 pages

Writing Constructors in Java: Msury - Mahunnah@ifm - Ac.tz

Constructors in Java are special methods that initialize objects when they are created. Constructors have the same name as the class and do not have a return type. They set the initial field values of the new object. The example shows a Point class with a constructor that takes x and y coordinates to initialize the point's location.

Uploaded by

steward materu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views11 pages

Writing Constructors in Java: Msury - Mahunnah@ifm - Ac.tz

Constructors in Java are special methods that initialize objects when they are created. Constructors have the same name as the class and do not have a return type. They set the initial field values of the new object. The example shows a Point class with a constructor that takes x and y coordinates to initialize the point's location.

Uploaded by

steward materu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Lecture 4

Writing Constructors in Java

Dr. Mahunnah, M
[email protected]
https://mahunnah.wordpress.com/
Constructors
 A constructor is a special method that is used to set up an object
when it is initially created

 A constructor has the same name as the class

 The Die constructor is used to set the initial face value of each
new die object to one
Constructors
 Note that a constructor has no return type specified in the method
header, not even void

 A common error is to put a return type on a constructor, which


makes it a “regular” method that happens to have the same name
as the class

 The programmer does not have to define a constructor for a class

 Each class has a default constructor that accepts no parameters


Constructor example
public class Point {
int x;
int y;

// Constructs a Point at the given x/y location.


public Point(int initialX, int initialY) {
x = initialX;
y = initialY;
}

public void translate(int dx, int dy) {


x = x + dx;
y = y + dy;
}

...
}
Initializing objects
 Currently it takes 3 lines to create a Point and initialize it:
Point p = new Point();
p.x = 3;
p.y = 8; // tedious

 We'd rather specify the fields' initial values at the start:


Point p = new Point(3, 8); // better!
Constructors
 Constructor: Initializes the state of new objects.
public type(parameters) {
statements;
}

 Runs when the client uses the new keyword.


 No return type is specified; it implicitly "returns" the new object
being created.
 If a class has no constructor, Java gives it a default constructor
with no parameters that sets all fields to 0.
Tracing a constructor call
 What happens when the following call is made?
Point p1 = new Point(7, 2);

p1 x y

public Point(int initialX, int initialY) {


x = initialX;
y = initialY;
}

public void translate(int dx, int dy) {


x += dx;
y += dy;
}
MyPoint Class
public class MyPoint {
public static void main(String[] args) {
// create two Point objects
Point p1 = new Point(5, 2);
Point p2 = new Point(4, 3);
// print each point
System.out.println("p1: (" + p1.x + ", " + p1.y + ")");
System.out.println("p2: (" + p2.x + ", " + p2.y + ")");
// move p2 and then print it again
p2.translate(2, 4);
System.out.println("p2: (" + p2.x + ", " + p2.y + ")");
}
}
OUTPUT:
p1: (5, 2)
p2: (4, 3)
p2: (6, 7)
Multiple constructors
 A class can have multiple constructors.
 Each one must accept a unique set of parameters.

 Exercise: Write a Point constructor with no parameters that


initializes the point to (0, 0).

// Constructs a new point at (0, 0).


public Point() {
x = 0;
y = 0;
}
Common constructor bugs
 Re-declaring fields as local variables ("shadowing"):

public Point(int initialX, int initialY) {


int x = initialX;
int y = initialY;
}

 This declares local variables with the same name as the


fields, rather than storing values into the fields.
Common constructor bugs
 Accidentally giving the constructor a return type:

public void Point(int initialX, int initialY) {


x = initialX;
y = initialY;
}

 This is actually not a constructor, but a method named Point

You might also like