Re: "How do you arrive at classes?"
On Tuesday, January 13, 2015 at 11:58:00 PM UTC-5, Stefan Ram wrote:
I keep simplifying and simplifying my Java course:
during the first 40 hours all programs have one single
class declaration only!
Now, a student asked me: =BBHow do you arrive at classes?=AB,
in the sense of: =BBHow do you get to know which classes
should be declared in your code, especially when there
is more than one class declaration in the program?=AB.
(It might have a slight subtext, that he expects =BBreal
programs=AB to have multiple classes [which is not even wrong!].)
His question made sense, since I have very rarely or never
shown them programs with multiple class declarations!
(I showed already some =BBadvanced=AB stuff like non-static
method declarations, and simple JavaFX windows with
method literals, but all in a single class.) For example:
public class Main extends javafx.application.Application
{ public void start( final javafx.stage.Stage window )
{ final javafx.scene.control.TextField text
= new javafx.scene.control.TextField( "10" );
text.setOnAction
( e ->
{ text.setText
( java.lang.String.valueOf
( 3 * java.lang.Integer.valueOf
( text.getText() ).intValue() )); });
final javafx.scene.Scene scene
= new javafx.scene.Scene( text );
window.setScene( scene ); window.show(); }}
This was /all/ explained, they know method interfaces,
but not yet programs with multiple class declarations.
I tried to answer the question =BBHow do you arrive at
classes?=AB in the classroom, kind-a stuttering, because
I was not prepared for this question. Now, I am curious:
How would /you/ answer this question?
(An answer like =BBhigh cohesion, low coupling=AB might still
be too abstract. Can you find a reasonable answer that a
beginner can understand? They know non-static fields and
non-static methods [both use and declaration], variables,
common statements and expressions, instance creation
expression, references, reference variable and parameters.
So a good answer would be =BBhands-on=AB and build directly on
these terms. What of the OOA/OOD rules can be most easily
comprehended by a beginner?)
Hi,
I hope I'm not too lake. Take a look at:
Wirfs-Brock, R., B. Wilkerson, and L. Wiener, Designing object-oriented sof=
tware1990, Englewood Ciffs, NJ: Prentice Hall.
The book explains in plain English how to arrive at classes.
(I find this book much better than Wirfs-Brock's more recent book:
Wirfs-Brock, R. and A. McKean, Object Design: Roles, Responsabilities, and =
Collaborations 2002 Addison Wesley.)
HTH
Jomar