My neighbor is taking "Intro to Java", and asked me to help explain a few of the first-day concepts. I realized that since I do this everyday, I don't have the beginner's mind, and it's hard to relate some of this stuff from scratch.
The one that's actually not trivial for me to explain is "what the heck is a class?"
Best I have so far:
A variable holds some kind of data; one variable might be a first name, another variable might be your weight in pounds.
A method is a function, it does stuff, and can do stuff with those variables. A method might display your name on screen, or tell you how much weight you should lose to have a good BMI ratio.
An object holds both variables and methods; one object might represent you, a second object might represent me.
A class is kind of the blueprint or template that describes the methods and variables that will be in each object. An object is an instantiated (instance of a) class; an object is something, while the class is simply the plans to make that something.
Continuing the example, we have a Person object, which is instantiated to hold Alice's data, and another Person object instantiated to hold Bob's data, and another for Carol, and so on.
How do I tune this example to make more sense, and/or what's a better approach? The word "instantiated" feels too heavy at this point.
(I think this is a useful question, but is obviously subjective; marked as community wiki.)