h1. 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: {section:border=false} {column}{column} {column:width=500px} {code:title=Cat.java| linenumbers} public class Cat{ private int age; private String name; public Cat(String name, int age){ this.name = name; this.age = age; } public String getName(){ return name; } public String sayHello(){ return "Hello World! My name is " + name + " and I am " + age + " years old."; } } {code} {column:width=10px}{column} {column:width=500px} {code:title=CatsTheMusical.java} public class CatsTheMusical{ public static void main(String[] args){ Cat mist = new Cat("Mr. Mistoffelees",8); System.out.println(mist.sayHello); } } {code} {column} {column}{column} {section} Lets make sure we understand how this works. First, lets talk about the contents of the file {{Cat.java}}. * _Fields_: The class {{Cat}} has two fields, {{name}} and {{age}}. Each field has a _type_, which ensures that we can only store a {{String}} in {{name}} and an {{int}} in age. The word {{private}} before each field indicates that the field can only be accessed from within the class {{Cat}}. In Java, by convention most fields are private, and if you want to be able to access them from outside the class, you add _getter_ and _setter_ methods (we will get to these shortly). * _Constructors_: The class {{Cat}} has a single constructor {{public Cat(String name, int age){...}}}. Constructors are used to create instances of the class. An example of the invoking the constructor can be seen in {{CatsTheMusical.java}}. * _Methods_: Here, we included a method {{getName()}} in class {{Cat}}. |