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