Upload
ava-nash
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
COMP 110:Introduction to Programming
Tyler JohnsonFeb 25, 2009
MWF 11:00AM-12:15PMSitterson 014
COMP 110: Spring 20092
Announcements
Lab 5 due tomorrow by midnight
Extending Program 3 to Monday by 5pm
A sample midterm has been posted
COMP 110: Spring 20093
Questions?
COMP 110: Spring 20094
Lab 4
COMP 110: Spring 20095
Program 3
COMP 110: Spring 20096
Today in COMP 110
In-Class Exercise
Constructors
COMP 110: Spring 20097
In-Class Exercise
Work in Groups
COMP 110: Spring 20098
Constructors
Section 6.1 in text
COMP 110: Spring 20099
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
COMP 110: Spring 200910
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
COMP 110: Spring 200911
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
COMP 110: Spring 200912
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; }
public Pet(String initName, int initAge, double initWeight) { name = initName; age = initAge; weight = initWeight; }}
COMP 110: Spring 200913
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
COMP 110: Spring 200914
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
COMP 110: Spring 200915
Constructors w/ Parameters
Like methods, constructors can have parameters
public Pet(String initName, int initAge, double initWeight) { name = initName; age = initAge; weight = initWeight; }
COMP 110: Spring 200916
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
COMP 110: Spring 200917
Multiple Constructors
You can define multiple constructors
All have the same name, but different parameters
Group their definitions together
COMP 110: Spring 200918
Constructors
You cannot call a constructor on an existing object
Pet myPet = new Pet();myPet.Pet("Roberto", 1, 150.0); //error
Must use mutators on objects that have already been created
myPet.setPet("Roberto", 1, 150.0); //ok
COMP 110: Spring 200919
Calling Methods within Constructors
Just like calling methods within methods
/*constructor*/public Pet(String initName, int initAge, double initWeight) {
setPet(initName, initAge, initWeight); //have the mutator perform the set}
/*mutator*/public void setPet(String newName, int newAge, double newWeight) {
name = newName; age = newAge; weight = newWeight;}
19
COMP 110: Spring 200920
Programming Demo
Grade DistributionA class to display the distribution of letter grades in a classGiven 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 gradeDraw a bar graph of the grade distribution
COMP 110: Spring 200921
Programming Demo
OutputEach * == 2 percent
0 10 20 30 40 50 60 70 80 90 100| | | | | | | | | | |****************************************************** A************** B*********C*****D***F
COMP 110: Spring 200922
Friday
Recitation
No new lab will be postedGet help finishing Program 3Ask questions about lecture material for midterm