primitive types
Create a new class
public class Dog {
//fields
public String name;
public String owner;
//methods
public void setName(String newName){
name = newName;
}
public void setOwner(String newOwner){
owner = newOwner;
}
public String getName(){
return name;
}
public String getOwner(){
return owner;
}
public void makeNoise(){
System.out.println(name + ":wuff! wuff!");
}
}
public static void main(String[] args) {
Dog myDog = new Dog();
System.out.println("The dog is called: " + myDog.getName());
}
Add the following code in the main method:
This is how a primitive type is declared
Dog myDog = new Dog();
Just think of myDog as a remote control to a Dog
1. We declare a reference variable
2. We create a object of type Dog
3. We link the reference and the object
Dog myDog
new Dog();
Dog myDog = new Dog();
Dog myDog = new Dog();
So let's set the dog's name!
Add the following code into the Dog class:
public class Dog {
//add only this code below, don't change the whole class
public Dog(String newName){
name = newName;
}
//rest of the code from previous exercise remains here
}
Dog myDog = new Dog();
Dog myDog = new Dog("fred");
System.out.println("The dog is called: " + myDog.getName());
Try to do this by yourself. The solution is on the next slide
public Dog(String newName, String newOwner){
name = newName;
owner = newOwner;
}
public static void main(String[] args) {
Dog myDog = new Dog("fred");
Dog dogWithOwner = new Dog("benny", "Michael");
System.out.println("The dog is called: " + myDog.getName() +
" and his owner is: " + myDog.getOwner());
System.out.println("The dog is called: " + dogWithOwner.getName() +
" and his owner is: " + dogWithOwner.getOwner());
}
public void setOwner(String newOwner){
owner = newOwner;
}
public static void main(String[] args) {
Dog myDog = new Dog("benny", "Michael");
System.out.println("The dog is called: " + myDog.getName() +
" and its owner is: " + myDog.getOwner());
myDog.setOwner("Iris");
System.out.println("The dog is called: " + myDog.getName() +
" and its new owner is: " + myDog.getOwner());
}
public void setOwner(String newOwner){
//method body
}
A method has:
void - means the method does not return anything
public String getOwner(){
return owner;
}
If you declare a method to return a value, you must return a value of the declared type!
public String getOwner(){
return 27;
}
public class Cat {
public String name;
public String owner;
public Cat(String newName){
name = newName;
}
public Cat(String newName, String newOwner){
name = newName;
owner = newOwner;
}
public void setOwner(String newOwner){
owner = newOwner;
}
public String getName(){
return name;
}
public String getOwner(){
return owner;
}
public void makeNoise(){
System.out.println(name + ": meow!, meouw!");
}
}
public static void main(String[] args) {
Dog myDog = new Dog("Benny", "Michael");
System.out.println(myDog.getOwner() + " has a dog called " + myDog.getName());
Cat myCat = new Cat("Jenny", "Michelle");
System.out.println(myCat.getOwner() + " has a cat called " + myCat.getName());
}
public class Cat {
public String name;
public String owner;
public Cat(String newName){
name = newName;
}
public Cat(String newName, String newOwner){
name = newName;
owner = newOwner;
}
public void setOwner(String newOwner){
owner = newOwner;
}
public String getName(){
return name;
}
public String getOwner(){
return owner;
}
public void makeNoise(){
System.out.println(name +
": meow!, meouw!");
}
}
public class Dog {
public String name;
public String owner;
public Dog(String newName){
name = newName;
}
public Dog(String newName, String newOwner){
name = newName;
owner = newOwner;
}
public void setOwner(String newOwner){
owner = newOwner;
}
public String getName(){
return name;
}
public String getOwner(){
return owner;
}
public void makeNoise(){
System.out.println(name
+ ":wuff! wuff!");
}
}
It can be a dog or it can be a cat.
It's an Animal!
public class Animal {
public String name;
public String owner;
public void setOwner(String newOwner){
owner = newOwner;
}
public String getName(){
return name;
}
public String getOwner(){
return owner;
}
}
public class Dog extends Animal{
public Dog(String newName){
name = newName;
}
public Dog(String newName, String newOwner){
name = newName;
owner = newOwner;
}
public void makeNoise(){
System.out.println(name + ":wuff! wuff!");
}
}
public class Cat extends Animal{
public Cat(String newName){
name = newName;
}
public Cat(String newName, String newOwner){
name = newName;
owner = newOwner;
}
public void makeNoise(){
System.out.println(name + ": meow!, meouw!");
}
}
public class Cat extends Animal{}
public class Dog extends Animal{}
public class Cat extends Animal{}
public class Dog extends Animal{}
public void setName(String newName){
name = newName;
}
public void makeNoise(){
System.out.println("I am an unknown animal so I keep quiet");
}
public static void main(String[] args) {
Animal myDog = new Dog("Benny", "Michael");
System.out.println(myDog.getOwner() + " has a dog called " + myDog.getName());
myDog.makeNoise();
Animal myCat = new Cat("Jenny", "Michelle");
System.out.println(myCat.getOwner() + " has a cat called " + myCat.getName());
myCat.makeNoise();
Animal unknownAnimal = new Animal();
unknownAnimal.setName("Mickey");
unknownAnimal.makeNoise();
}
Animal myDog = new Dog("Benny", "Michael");
Animal myCat = new Cat("Jenny", "Michelle");
Animal animal = new Dog("Benny", "Michael");
public class Animal {
public String name;
public String owner;
//....
}