Presentation is loading. Please wait.

Presentation is loading. Please wait.

Constructors. Defining Constructors  A constructor is a special kind of method that is designed to perform initializations, such as giving values to.

Similar presentations


Presentation on theme: "Constructors. Defining Constructors  A constructor is a special kind of method that is designed to perform initializations, such as giving values to."— Presentation transcript:

1 Constructors

2 Defining Constructors  A constructor is a special kind of method that is designed to perform initializations, such as giving values to instance variables.  A constructor is a method that is called when a new object is created.  A constructor can perform any action you want, but it is meant to perform initializations.  Constructors serve very much the same purpose as set methods.

3 Defining Constructors (cont’d)  Unlike set methods, constructors are called automatically whenever you create an object using the new operator.  Constructors have the same name as the class.  Constructors are normally overloaded so there are multiple definitions of the constructor, each with different numbers or types of parameters.

4 Differences between Constructor and Set Methods  Headings of constructor methods do not have the word void. They do not return anything, but unlike other methods that don’t return values, the word void is omitted.  Unlike set methods, the constructors give values to all the instance variables even though there may not be an argument for each instance variable.

5 Differences between Constructor and Set Methods (cont’d)  Whenever you define at least one constructor, you should be sure to include a constructor with zero parameters. Such a constructor is called a default constructor.

6 Using Constructors  Constructors are called at the time that you use new to create an object.  Whenever a class definition does not have a constructor definition, Java automatically creates a default constructor, that is, one with zero parameters.  However, once you add at least one constructor, then you are in charge of all constructors, i.e., no default constructor is created by Java.

7 Using Constructors (cont’d)  When you create a new object with the operator new, you must always include a call to a constructor after the operator new. PetRecord fish = new PetRecord(“Wanda”, 2, 0.25);  If we don’t specify any arguments, the default constructor is invoked. PetRecord newBorn = new PetRecord();

8 Using Constructors (cont’d)  A constructor can be called only when you create a new object with the operator new.  newBorn.PetRecord(“Fang”, 1, 150.0); is invalid.  Since you cannot call a constructor for an object after it is created, you need some other way to change the values of the instance variables of an object.  That is the purpose of the set methods, e.g., newBorn.set(“Fang”, 1, 150.0);

9 More about Constructors  Constructors are not usually included in class diagrams.  Constructors can invoked other methods in the class, like set methods.  For most classes you create, you should also define a default constructor.

10 An Example Using Constructors /** Class for basic pet records: name, age, and weight. */ public class PetRecord { private String name; private int age;//in years private double weight;//in pounds public void writeOutput( ) { System.out.println("Name: " + name); System.out.println("Age: " + age + " years"); System.out.println("Weight: " + weight + " pounds"); } public PetRecord(String initialName, int initialAge, double initialWeight) { name = initialName; if ((initialAge < 0) || (initialWeight < 0)) { System.out.println("Error: Negative age or weight."); System.exit(0); } else { age = initialAge; weight = initialWeight; } }

11 An Example Using Constructors (cont’d) public void set(String newName, int newAge, double newWeight) { name = newName; if ((newAge < 0) || (newWeight < 0)) { System.out.println("Error: Negative age or weight."); System.exit(0); } else { age = newAge; weight = newWeight; } } public PetRecord(String initialName) { name = initialName; age = 0; weight = 0; }

12 An Example Using Constructors (cont’d) public void set(String newName) { name = newName; //age and weight are unchanged. } public PetRecord(int initialAge) { name = "No name yet."; weight = 0; if (initialAge < 0) { System.out.println("Error: Negative age."); System.exit(0); } else age = initialAge; }

13 An Example Using Constructors (cont’d) public void set(int newAge) { if (newAge < 0) { System.out.println("Error: Negative age."); System.exit(0); } else age = newAge; //name and weight are unchanged. } public PetRecord(double initialWeight) { name = "No name yet"; age = 0; if (initialWeight < 0) { System.out.println("Error: Negative weight."); System.exit(0); } else weight = initialWeight; }

14 An Example Using Constructors (cont’d) public void set(double newWeight) { if (newWeight < 0) { System.out.println("Error: Negative weight."); System.exit(0); } else weight = newWeight; //name and age are unchanged. } public PetRecord( ) { name = "No name yet."; age = 0; weight = 0; }

15 An Example Using Constructors (cont’d) public String getName( ) { return name; } public int getAge( ) { return age; } public double getWeight( ) { return weight; } }

16 Using Constructors and set Methods import java.util.*; public class PetRecordDemo { public static void main(String[] args) { PetRecord usersPet = new PetRecord("Jane Doe"); System.out.println("My records on your pet are inaccurate."); System.out.println("Here is what they currently say:"); usersPet.writeOutput( ); Scanner keyboard = new Scanner(System.in); System.out.println("Please enter the correct pet name:"); String correctName = keyboard.nextLine( ); System.out.println("Please enter the correct pet age:"); int correctAge = keyboard.nextInt( ); System.out.println("Please enter the correct pet weight:"); double correctWeight = keyboard.nextDouble( ); usersPet.set(correctName, correctAge, correctWeight); System.out.println("My updated records now say:"); usersPet.writeOutput( ); } }


Download ppt "Constructors. Defining Constructors  A constructor is a special kind of method that is designed to perform initializations, such as giving values to."

Similar presentations


Ads by Google