![]() |
Jupyter at Bryn Mawr College |
|
|
Public notebooks: /services/public/dblank / CS206 Data Structures / 2017-Spring / Notebooks |
Topics:
An object is a new type of thing, like String, int, or float.
You define a new type of object using the class
keyword.
You create an instance of an object using the new
keyword.
The simplest kind of class:
class Dog {
}
Dog dog1 = new Dog();
Dog dog2;
dog2 = dog1;
A bit more complicated:
class Dog {
String name;
Dog(String name) { // constructor
this.name = name;
}
void speak() {
printf("woof, woof! My name is %s", this.name);
}
}
Making an instance
:
Dog dog1 = new Dog("Snoopy");
dog1.name
Making a bunch of instances:
Dog dog2 = new Dog("Gracie");
Dog dog3 = new Dog("Louis");
Dog dog4 = new Dog("Mr. Puddles");
Dog dog5 = new Dog("Kirena");
Dog dog6 = new Dog("Pepper");
Dog dog7 = new Dog("Woofie");
Dog dog8 = new Dog("Boo");
dog1.speak();
dog2.speak();
dog3.speak();
dog4.speak();
dog5.speak();
dog6.speak();
dog7.speak();
dog8.speak();
Another new type:
class Student {
String name;
Student(String name) {
this.name = name;
}
}
Student student1 = new Student("Kevin");
Student student2 = new Student("Taylor");
student1.name == student2.name
class Node {
String name;
Node next;
Node(String name) {
this.name = name;
}
}
Node node = new Node("Kevin");
node.next = new Node("Elizabeth");
node.name
node.next.name
node.next.next = new Node("Chad");
class Node {
String name;
Node next;
Node(String name) {
this.name = name;
}
void append(Node new_node) {
if (next == null) {
this.next = new_node;
} else {
this.next.append(new_node);
}
}
}
node = new Node("a");
node.append(new Node("b"));
node.name
node.next.name
class Node {
String name;
Node next;
Node(String name) {
this.name = name;
}
void append(Node new_node) {
if (next == null) {
this.next = new_node;
} else {
this.next.append(new_node);
}
}
void print() {
System.out.print(name + " ");
if (this.next != null) {
this.next.print();
}
}
}
node = new Node("a");
node.append(new Node("b"));
node.print();