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 debugger 🐞 to step through code and inspect variables

OO Terminology

Constructors

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:
    • 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
    • byte, short, int, long, float, double, boolean, char
      •  
  • All other types are reference types
    • They are used to reference 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

Hypothesis driven debugging: making careful educated guesses, with plans for how to validate or invalidate them.

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 Felix Grund

CPSC210 - B3 Classes and Objects

  • 2,107