Re: beginning java...nublet drowning. throw me a lifeline?
markspace wrote:
Justin Fondriest wrote:
Ok...so is this saying "a car has an engine", with regard to code
would be more like "a car (class)"--as in every car class--"has an
engine(object)"?
This is more or less correct. Don't forget that the engine is also a class,
and not an object, until you instantiate the Car, then you have both a Car
object and an Engine object;
class Car {
Engine engine = new Engine();
}
There's no objects in the above code until someone calls "new Car()".
Now whether I am right or wrong...could someone take maybe 3 minutes
to explain what composition is in layman's terms?
You were pretty close.
does it have anything to do with the "import" feature that you put in
a program before you "instantiate"(?) the class?
Nope, not a darn thing.
You should google around for these concepts, too. Perhaps the most essential
skill in programming is the ability to find out stuff when there's no one
around to ask. What research did you do before asking here?
The Java tutorials discuss 'import'. 'import' has no functional action in a
program. It is simply a declaration to the compiler which of several possible
packages you mean to use for a given name.
Composition - "has-a" - the meaning of "has-a" is intended to be as in English
- something has something.
Inheritance or Extension (in the Java sense) - "is-a" - the meaning of "is-a"
is intended to be as in English - something is something.
The Car analogy is very simplified, remember, but it makes the case.
Is an engine a car?
Is a car an engine?
No. "is-a" doesn't apply, so we do not see 'public class Car extends Engine'.
In our model (but not necessarily in real life), a car "has an" engine, so we
use the "has-a" cue, meaning the class 'Car' has (yep, has) an element to
represent the engine.
public class Car
{
private Engine engine; // + associated get...(), set...() methods
}
Putting a member inside a class definition is called "composition" because a
class's shape, or structure, is composed of those members.
For most purposes, composition is better than inheritance in Java.
--
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg