What is a class?

In Java, all code is associated with a class. Classes have fields and methods. Here is an example of two simple classes:

public class Cat{
  private int age;
  private String name;
  private Cat friend;

  public Cat(String name, int age){
    this.name = name;
    this.age = age;
    this.friend = null;
  }

  public Cat(String name, int age, Cat friend){
    this.name = name;
    this.age = age;
    this.friend = friend;
  }

  public String getName(){
    return name;
  }

  public String getFriend(){
    if(friend == null){
      return "I am have no friends :(";
    }
    else{
      return "My friend is " + friend.getName();
    }
  }

  public String sayHello(String aboutMe){
    return "Hello World!  My name is " + name 
        + " and I am " + age + " years old."
        + " I am " + aboutMe+".";
  }
}

public class CatsTheMusical{
  public static void main(String[] args){
    Cat mist = new Cat("Mr. Mistoffelees",8);
    System.out.println(mist.sayHello("magical"));
  }
}

Lets make sure we understand how this works. First, lets talk about the contents of the files Cat.java.

Now that we have the basic terminology down, lets examine some of the finer points:

Here, we included a method getName() in class Cat.