Conditional Expressions and Statements : 08/24/2023
Operations on Variables : 08/23/2023
Variables and Types : 08/22/2023
Welcome to CS 124 : 08/21/2023
Constructors
publicclassDimensions {
doublewidth;
doubleheight;
Dimensions(doublesetWidth, doublesetHeight) {
width=setWidth;
height=setHeight;
}
doublearea() {
returnwidth*height;
}
}
Dimensionsroom=newDimensions(8.8, 10.0);
System.out.println(room.area());
Let’s continue our discussion of Java objects.
Remember that bit of syntax that looked like a method call when we create a new
Java object?
Well, it was!
Next we’ll talk about what it does.
Previously when we created instances of our new object classes, we used new followed by something that looked like a method call to a function accepting no parameters:
classPerson {
Stringname;
doubleage;
}
Persongeoff=newPerson();
geoff.name="Geoff";
geoff.age=41.05;
It turns out that this is exactly what follows new.
Usually when we create a new object we want to set the fields on it right away.
Rather than doing this in the fairly clumsy way shown above, Java provides a better alternative.
Let’s look at it together!
There are a few things to keep in mind about constructors.
First, they must have the same name as the class and cannot declare a return value:
classPerson {
Stringname;
doubleage;
// Only three parts to this method declaration
Person(StringsetName, doublesetAge) {
name=setName;
age=setAge;
}
}
Personyou=newPerson("Great Student", 18);
System.out.println(you.name+" is "+you.age);
You can, however, use return in a constructor if you want to skip some parts of the initialization in certain cases:
classPerson {
Stringname;
doubleage;
// Only three parts to this method declaration
Person(StringsetName, doublesetAge) {
if (setAge<0.0) {
// Don't set name on people with negative age...
return;
}
name=setName;
age=setAge;
}
}
Personunborn=newPerson("New Baby", -0.2);
System.out.println(unborn.name);
Finally, we don’t need to declare a constructor.
If we don’t, Java will include a default constructor that takes no arguments.
Let’s see how that works:
classPerson {
Stringname;
doubleage;
}
Persongeoff=newPerson();
geoff.name="Geoff";
geoff.age=41.05;
Practice: Simple Object Field
Created By: CS 124 Staff
/ Version: 2020.9.0
Create a class called Simple that stores a single int value using a field named value.
Simple should implement a function called setValue that accepts a single int and changes the saved
value. (It should not return a value.)
Simple should also implement a function called getValue that returns the saved value.
Note that you should include public before your class definition for this problem.
We've provided starter code that does that.
If that doesn't fully make sense yet, don't worry.
It will soon.
This problem deadline has passed, but you can continue to practice. Experiment! You will not lose credit.
Homework Restricted to Current CS 124 Students
A publicly-accessible version of this content is available at learncs.online.
Just like with other methods, classes can provide multiple constructors as long as they accept different parameters:
classPerson {
Stringname;
doubleage;
Person(StringsetName, doublesetAge) {
name=setName;
age=setAge;
}
// Useful for really new people, like babies
Person(StringsetName) {
name=setName;
age=0.0;
}
}
Persongeoff=newPerson("Geoff", 41.05);
// Lily is my niece. Super cute. Probably not into Java yet.
Personlily=newPerson("Lily");
System.out.println(geoff.age);
System.out.println(lily.age);
Practice: Simple Object Field 2
Created By: CS 124 Staff
/ Version: 2021.9.0
Create a class called Simple that stores a single String value using a field named data.
Simple should implement a function called setData that accepts a single String and changes the saved
value. (It should not return a value.)
Simple should also implement a function called getData that returns the saved value.
Note that you should include public before your class definition for this problem.
We've provided starter code that does that.
If that doesn't fully make sense yet, don't worry.
It will soon.
This problem deadline has passed, but you can continue to practice. Experiment! You will not lose credit.
Homework Restricted to Current CS 124 Students
A publicly-accessible version of this content is available at learncs.online.
Homework: Simple Object Fields 3
Created By: CS 124 Staff
/ Version: 2022.9.0
Create a class called Location that stores two int values representing the location of a place on the surface
of the Earth.
Location should implement a function called setX that accepts a single int and changes the saved x
value. (It should not return a value.)
Simple should also implement a function called getX that returns the saved x value.
Complete the analogous methods for y.
Note that you should include public before your class definition for this problem.
We've provided starter code that does that.
If that doesn't fully make sense yet, don't worry.
It will soon.
This problem deadline has passed, but you can continue to practice. Experiment! You will not lose credit.
Homework Restricted to Current CS 124 Students
A publicly-accessible version of this content is available at learncs.online.