Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #21016 > unrolled thread
| Started by | Lew <lewbloch@gmail.com> |
|---|---|
| First post | 2013-01-06 00:44 -0800 |
| Last post | 2013-01-06 11:47 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to comp.lang.java.programmer
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: "Hello world!" without a public class? Lew <lewbloch@gmail.com> - 2013-01-06 00:44 -0800
Re: "Hello world!" without a public class? Robert Klemme <shortcutter@googlemail.com> - 2013-01-06 11:47 +0100
| From | Lew <lewbloch@gmail.com> |
|---|---|
| Date | 2013-01-06 00:44 -0800 |
| Subject | Re: "Hello world!" without a public class? |
| Message-ID | <40a19d18-6655-4256-85b9-6954e2f10b84@googlegroups.com> |
Stefan Ram wrote:
> »class HelloWorldApp {
> public static void main(String[] args) {
> System.out.println("Hello World!"); // Display the string.
> }
> }
> «
>
> http://docs.oracle.com/javase/tutorial/getStarted/cupojava/win32.html
>
> There is no »public« in front of »class« in Oracles Tutorial!
>
> What should I teach in my classes?
Depends on the kinds of students you have, I should think.
There's pedagogical merit in teaching the good habits first and the
exceptional cases later. So you could begin with only 'public' classes
overall, let alone for the main one, mentioning briefly at first that
there is a way to drop the 'public' that you'll explain later.
As for 'final', that's harder. Hardly anyone in the field uses it,
myself included, because most classes basically aren't inherited so it's
not really risky to leave it out, and also there's a benefit to making
classes heritable for test purposes.
I think as a teacher I would use 'final' nearly always for classes, and
explain to the class (of students) that I'm being picky, but for good
reason. Also I'd mention that heritable classes support a certain style of
test code, and teach it once inheritance had been covered.
> 1.) »public class HelloWorldApp« (because this is most common IIRC)
First time you deal with class definition, show all these forms once.
> 2.) »class HelloWorldApp« (because this is in Oracles tutorial)
Mention that this rarely occurs in practice.
> 3.) »final class HelloWorldApp« (because this class is not designed
> for inheritance and Bloch says that one should not inherit from
> it in this case and the students can as well get used to this
> right from the start)
package-private again - same brief mention.
> 4.) »public final class HelloWorldApp« (combination of »1.)« and »3.)«)
Go with this but explain that practice can differ.
Break the 'final' later when there is a pedagogical and good-code reason to.
Just off the top of my head - I haven't put nearly the thought into this that
you have.
--
Lew
[toc] | [next] | [standalone]
| From | Robert Klemme <shortcutter@googlemail.com> |
|---|---|
| Date | 2013-01-06 11:47 +0100 |
| Message-ID | <akt31nF36svU1@mid.individual.net> |
| In reply to | #21016 |
On 06.01.2013 09:44, Lew wrote: > There's pedagogical merit in teaching the good habits first and the > exceptional cases later. So you could begin with only 'public' classes > overall, let alone for the main one, mentioning briefly at first that > there is a way to drop the 'public' that you'll explain later. +1 > As for 'final', that's harder. Hardly anyone in the field uses it, > myself included, because most classes basically aren't inherited so it's > not really risky to leave it out, and also there's a benefit to making > classes heritable for test purposes. I use it rather frequently on the basis of whether I intend a class for inheritance or not. It's easier to loosen a restriction later than the other way round. Plus, it /might/ help the JVM optimize. But that's really the smallest benefit and the most unimportant reason. > I think as a teacher I would use 'final' nearly always for classes, and > explain to the class (of students) that I'm being picky, but for good > reason. Also I'd mention that heritable classes support a certain style of > test code, and teach it once inheritance had been covered. That's a bit contradictory, isn't it? I mean you say that almost nobody uses it (including you, and also for good reasons) yet you would recommend making it a habit to a beginner. :-) Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.java.programmer
csiph-web