CPSC 210
B3: Classes & Objects
Learning Goals
- Distinguish between primitive and reference variables
- Use an ArrayList to store data
- Identify "active" (or: instantiated) objects at a point of execution in code
- Use the IntelliJ debugger 🐞 to step through code and inspect variables
OO Terminology Reminder
Constructors
(special type of method)
Methods
Fields
ArrayList in Java
- Used to store data of arbitrary size
- In Racket, you treated (listof X) as built-in, where X is a type parameter
- Similarly, ArrayList<E> is part of the Java library and E is a type parameter that represents the type of data to be stored in the list
1
2
3
4
0
...
Types in Java
-
Java primitive (built-in) types; they "fit" in a variable
-
byte, short, int, long, float, double, boolean, char
-
byte, short, int, long, float, double, boolean, char
-
All other variable types are reference types
-
They are used to refer to an object
-
-
They are used to refer to an object
Person
object
Person p = new Person();
p
int count = 4;
count 4
Lecture Ticket Review
Which of the following are valid Java code segments?
int y = 3;
A a;
a = new A();
B b = make B();
int x = 3;
x.add(1);
Q1
public class Person {
private String name;
public Person () {
this.name = "Unnamed Person";
}
public void setName(String name) {
this.name = name;
System.out.println("Now my name is " +
this.name);
}
public String getName() {
return name;
}
}
public class Main {
public static void main(String[] args) {
Person harry = new Person();
Person hermione = new Person();
harry.setName("Harry");
hermione.setName("Hermione");
ArrayList<Person> people =
new ArrayList<>();
people.add(harry);
people.add(harry);
people.add(hermione);
Person someone = people.get(1);
someone.setName("Ron");
}
}
Q2
Lecture Lab: Buggy Pizza
- Look inside the Pizza class
- What is the constructor?
- What are the fields?
- What are the methods?
2. When you run your PizzaTopper project, it should print out:
And instead you’re getting:
There are a couple of things wrong! Make hypotheses for each bug and solve as you go!
pizza1 pizza has 1 toppings
pizza2 pizza has 2 toppings
null has 0 toppings
null has 0 toppings
Extra: Git Branching
Branch: main
Branch: myfavoriteanimal
Create
Branch
Merge
Branch
Commits
B3: Classes & Objects
The End - Thank You!
CPSC210 - B3 Classes and Objects
By Steven Wolfman
CPSC210 - B3 Classes and Objects
- 398