Practical Coding in Java

Learn to write and validate your own code

Darren Kessner, PhD

(revised September 1, 2025)

Previous: 4. Classes and Objects

Person

//
// Person.java
//


public class Person
{
    // constructor function

    public Person(String nameIn)
    {
        name = nameIn;
    }

    public void greeting()
    {
        System.out.println("Hello, my name is " + name);
        System.out.println("and I have this many heads: " + headCount);
    }

    // = assignment (assigning to a variable)
    // == comparison (true or false)

    // (public) accessor functions
    // getter (accessor) / setter (mutator)

    public void setName(String newName)
    {
        name = newName;  
    }

    public String getName()
    {
        return name;
    }

    // for us:  all member variables will be private
    private String name;

    // static == shared by all objects of the class
    // final == variable cannot be changed (after initialization)
    // e.g Math.PI and Math.E (public static final)
    private static final int headCount = 1;
}
//
// PersonTest.java
//


public class PersonTest
{
    public static void main(String[] args)
    {
        System.out.println("Hello, Person!");


        Person drkessner = new Person("Dr. Kessner");

        // error: private access
        //drkessner.name = "Dr. Kessner";
       
        //drkessner.setName("Dr. Kessner");        
        drkessner.greeting();

        System.out.println("That guy's name is " + drkessner.getName());


        Person luna = new Person("Luna");
        luna.greeting();
    }
}

Output:

Hello, Person!
Hello, my name is Dr. Kessner
and I have this many heads: 1
That guy's name is Dr. Kessner
Hello, my name is Luna
and I have this many heads: 1

Next: