COMP 110 Introduction to Programming Tyler Johnson Feb
COMP 110: Introduction to Programming Tyler Johnson Feb 25, 2009 MWF 11: 00 AM-12: 15 PM Sitterson 014
Announcements Lab 5 due tomorrow by midnight Extending Program 3 to Monday by 5 pm A sample midterm has been posted 2 COMP 110: Spring 2009
Questions? 3 COMP 110: Spring 2009
Lab 4 4 COMP 110: Spring 2009
Program 3 5 COMP 110: Spring 2009
Today in COMP 110 In-Class Exercise Constructors 6 COMP 110: Spring 2009
In-Class Exercise Work in Groups 7 COMP 110: Spring 2009
Constructors Section 6. 1 in text 8 COMP 110: Spring 2009
Creating Objects Student jack = new Student(); Why does this look like a method call? Because it is This is a call to a special method called a constructor 9 COMP 110: Spring 2009
Constructors A constructor is a special method that is called when an object is created using new The purpose of a constructor is to perform initializing actions e. g. initialize the instance variables of an object 10 COMP 110: Spring 2009
Constructors The purpose of a constructor is similar to that of a mutator (setter) Used to set the value of variable(s) However, constructors create an object in addition to initializing it 11 COMP 110: Spring 2009
Example: Pet class public class Pet { private String name; private int age; private double weight; public Pet() { name = “No name yet. ”; age = 0; weight = 0; } } 12 public Pet(String init. Name, int init. Age, double init. Weight) { name = init. Name; age = init. Age; weight = init. Weight; } COMP 110: Spring 2009
Constructors A constructor must have the same name as its class The constructor for the class Pet is Pet() The constructor for the class Student is Student() Constructors do NOT specify a return type Not even void 13 COMP 110: Spring 2009
Constructors The classes you have used up to this point use a constructor created automatically by Java Gives default values to instance variables • May not be what you want You can specify how instance variables should be initialized by creating your own constructors 14 COMP 110: Spring 2009
Constructors w/ Parameters Like methods, constructors can have parameters public Pet(String init. Name, int init. Age, double init. Weight) { name = init. Name; age = init. Age; weight = init. Weight; } 15 COMP 110: Spring 2009
Default Constructor A constructor that takes no arguments is called a default constructor public Pet() { name = “No name yet. ”; age = 0; weight = 0; } Java automatically defines a default constructor if you do not define any constructors 16 COMP 110: Spring 2009
Multiple Constructors You can define multiple constructors All have the same name, but different parameters Group their definitions together 17 COMP 110: Spring 2009
Constructors You cannot call a constructor on an existing object Pet my. Pet = new Pet(); my. Pet("Roberto", 1, 150. 0); //error Must use mutators on objects that have already been created my. Pet. set. Pet("Roberto", 1, 150. 0); //ok 18 COMP 110: Spring 2009
Calling Methods within Constructors Just like calling methods within methods /*constructor*/ public Pet(String init. Name, int init. Age, double init. Weight) { } set. Pet(init. Name, init. Age, init. Weight); //have the mutator perform the set /*mutator*/ public void set. Pet(String new. Name, int new. Age, double new. Weight) { } 19 name = new. Name; age = new. Age; weight = new. Weight; COMP 110: Spring 200919
Programming Demo Grade Distribution A class to display the distribution of letter grades in a class Given the number of A, B, C, D, and F’s, compute the percentage of each type of grade • e. g. 15% A’s, 30% B’s, 30% C’s, 15% D’s, 10% F’s Include accessors and mutators for each type of grade Draw a bar graph of the grade distribution 20 COMP 110: Spring 2009
Programming Demo Output Each * == 2 percent 0 10 20 30 40 50 60 70 80 90 100 | | | ************************* A ******* B *****C *****D ***F 21 COMP 110: Spring 2009
Friday Recitation No new lab will be posted Get help finishing Program 3 Ask questions about lecture material for midterm 22 COMP 110: Spring 2009
- Slides: 22