Classes and Objects

Classes and Objects

Java is an object-oriented programming language. What this means is that basically everything in Java can be thought of as an object. An object is a collection of properties and methods that describe a single entity. A class is a blueprint for creating those objects.

Creating a Class

Creating a class is simple. Simply use the class keyword and then give it a name.

Let's create a Pet class inside Pet.java:

	
    public class Pet {

    }
	

That's it, a class is defined. Of course, it is empty, so let's give it some properties to work with:

	
    public class Pet {
        String name;
        int weight;
    }
	

Great, now that we have two properties that make up a pet, let's create objects using this class.

Creating an Object

Once we have a class defined, creating an object is easy, just use the new keyword, like this:

	
    Pet pet = new Pet();
	

We now have an object of type Pet. We still haven't actually been able to set the values of name and weight just yet, so let's do that now.

Using a Constructor

A constructor is a special method that literally constructs an object given the parameters you pass in. If all we want to do is set the value of name and weight, this is how the class would look like:

	
    public class Pet {
        String name;
        int weight;

        Pet(String name, int weight) {
            this.name = name;
            this.weight = weight;
        }
    }
	

The constructor takes in the parameters needed to build the object, initializes the values it needs to, and then returns an instance of that class which essentially is now a separate object.

Now you can create a new Pet object like this:

	
    Pet pet = new Pet("Scooby", 4);
	

Let's throw a method in this class so we can see our objects in action.

	
    public class Main {

        public static class Pet {
            String name;
            int weight;

            Pet(String name, int weight) {
                this.name = name;
                this.weight = weight;
            }

            void printInfo() {
                System.out.println("Name: " + name + " Weight: " + weight + " pounds.");
            }
        }

        public static void main(String[] args) {
            Pet pet = new Pet("Scooby", 4);
            pet.printInfo();
        }
    }
	
	
    Name: Scooby Weight: 4 pounds.
	

Multiple Objects

Because classes are just blueprints for objects, we can create multiple objects without any interference between each other. Let's create multiple pets to illustrate this:

	
    public class Main {

        public static class Pet {
            String name;
            int weight;

            Pet(String name, int weight) {
                this.name = name;
                this.weight = weight;
            }

            void printInfo() {
                System.out.println("Name: " + name + " Weight: " + weight + " pounds.");
            }
        }

        public static void main(String[] args) {
            Pet scooby = new Pet("Scooby", 4);
            scooby.printInfo();

            Pet spark = new Pet("Spark", 6);
            spark.printInfo();
        }
    }
	
	
    Name: Scooby Weight: 4 pounds.
    Name: Spark Weight: 6 pounds.