That makes you sound somewhat something like Humpty Dumpty in Alice Through the Looking‑Glass.
Harry Kar wrote:. . . meta-something : it's not something but a thing that somewhat describes something as meta-data meta-class meta-model etc
Campbell Ritchie wrote:I still disagree. I think what you are describing is the development process, not the finished product. Though we know there are some people who let the customers finish the development
Of course many software products are sold as tools to make something different; maybe that is what you mean....
Campbell Ritchie wrote:... in the case of the circular saw I mentioned earlier, it needs to be installed. Unless I connect it to a source of energy, it will do nothing. I can only cut wood with it if I provide it with electricity. Nothing we can make exists in isolation. Yes, you must have hardware to run software on. Yes, you mist have a floor to put the circular saw on, and electricity to make it work.
Campbell Ritchie wrote:That is difficult to understand, partially because of the abbreviations, which will be incomprehensible to some people, but I think we are agreeing with each other now.
No, you are the only person who ever says metaproduct
Harry Kar wrote:. . . now officially we can call a metaproduct . . .
Maurizio Gasparro wrote:
now, I know that is the "main" Method of the Class and then I can create other Methods within or outside the Class
and use them whenever I need them.
That's fine, I've got it! (I think...)
Harry Kar wrote: ...you have to decide what class is your main class and put there your public static main() method that is the entry point in a Java
application(and in a C like application too)
But then there are statements (which in this case are also Methods of a class but let's forget about this for a moment) like these: that are part of the Method body.
Why is that line there?
Harry Kar wrote:. . .
The main method is probably so called for historical reasons because the main() function is used to start a C application.
Harry Kar wrote:. . . you have to decide what class is your main class and put there your public static main() method that is the entry point in a Java
application(and in a C like application too)
Most people on this forum don't know C or C++. They are different languages, so for those few who do, your reminder that they are so different is useful
To elaborate a bit more is worth to say some more things
Regardless if you know about C, C++ . . . .
This confusion . . .
I would dispute that. A program uses objects, and objects use other objects as part of the program. You have shown yourself that starting programs from different classes causes different results. The difference between results demonstrates that they are different programs. If you go back to weakest precondition semantics, you will find that the weakest precondition for one program to produce the postcondition that the screen contains “...twist...” is true and for the other it is false. They are therefore different programs.
there is no division between Java programs and Java objects . . .
As described earlier, those are different programs.
Each class in a program/application can have its own main() method. The programmer may decide to start the program using the main() method of any class in the application.
E.g. suppose you have two classes, the Dancers and the Singers.
That is not actually true; it is possible programmatically to call the main() method,
. . . Lets put down few lines of example code . . .
Even if your class has a main() method, it will never be executed unless that class is invoked by the Java interpreter(java). It is easy to confuse the class constructor, which is called every time an object is created, and the main() method, which is only
called when the class is used to “start-up” a Java program/application. . . .
That is potentially a useful concept, but it is not a disctinction most people make. Most people create a single class containing a main() method and probably a private constructor and nothing else. That method is used to start the application and nothing else. It would not usually manage the application. Don't say working class because that can easily be confused with the well‑known category of worker classes.
. . . Make a clear distinction between application classes and the working classes in your design. An application class is designed to act as an entry-point and overall manager for your application.
. . . enforce this distinction . . . by convention . . . add an “App” suffix to all such application classes . . . .
ou are again creating your own terms and conventions, which nobody else uses. There is enough difficulty to being a beginning programmer without people adding confusion with new terminology
Larger, maybe, but please justify why you said such code would be sluggish.
Test code placed in a main() method is compiled into byte-codes and is delivered along with your finished application, making it larger and subsequently more sluggish.
That isn't true; there are much simpler ways to disable main() methods. You are right that modern practice is to have separate classes for doing the testing, but your next sentence now shows your two‑category classification failing: are testing classes application classes or working classes?
. . . if you put a test-bed main() method in every class, you cannot prevent users(of your classes) from running your test code, without actually commenting out the main method . . .
. . . The bodies of a class’s methods are where the real work of an object-oriented program takes place. . . .
You should write a test-bed program for every class you develop, but keeping the test code outside of your working classes is probably a better strategy.
Some poeple would disagree, saying that the fields (data) are more important than the methods.
Declarations aren't statements in Java®.
. . . Declaration Statements[ . . .
I have told you before to Quote Your Sources. I tried searching for that quote and was led to a flash‑cards website, so that wouldn't give a formal definition of an expression statement. Some of that sort of training websites are full of errors, but I was unable to find out enough to be sure.
Expression Statements[/b]: An expression statement is, formally, “a combination of operands and operators, that, when evaluated, produces a
value.” . . .
. . . but you then go on to describe an expression. System.out.println("Campbell"); is an expression statement in Java®.
Expressions and expression statements are not exactly the same thing . . .
That isn't an expression statement in Java®.
. . . the following expression statement will do so: x = y = 0;
Don't say branching or looping, which are both implementation details. It is selection, and iteration or recursion. It is easy enough to prove that iteration and recursion are mutually equivalent in terms of their weakest precondition effects.
. . . selection/branching and looping.
Charles Nduka wrote:Hi,
In my opinion:
Objects are instances of a class. eg.
TableAndChairs tc1 = new TableAndChairs();
This means, creating a reference to a class you create, so as to give you access to call up an attribute or property of the class eg.
to call up the class from another class - new TableAndChairs();
to call up a method (not main method - new TableAndChairs().tc1();
to call up a variable - new TableAndChairs().tc1().sum;
new TableAndChairs(); is an instance of a class
tc1() is calls up a method
tc1().sum calls up a default or public variable called 'sum'