From: Mike Barnard on 11 Jun 2010 19:12 Hi all I am a TOTAL newbie, as discussed in another thread. I have finally gotten the book Head First Java and I'm as far as page 9. This describes a first .java file as follows. public class MyFirstApp{ public static void main (String[] args) { system.out.println("Hello world"); system.out.println("It's me"); } } I have a command line compiler set up and the code is entered via a plain text editor. (NoteTabPro for now if anyone cares.) This is my result... G:\java\Projects>javac MyFirstApp.java MyFirstApp.java:2: cannot find symbol symbol : class string location: class MyFirstApp public static void main (string[] args) { ^ MyFirstApp.java:3: package system does not exist system.out.println("Hello world"); ^ MyFirstApp.java:4: package system does not exist system.out.println("It's me"); ^ 3 errors G:\java\Projects> So I note that the caret is actually pointing at the "s" of string. I know Java is case sensitive so I've tried it with both lower and upper case in the source. I get the same result. The caret is pointing to the dot in the system.out in the 2nd and 3rd errors. So, has Java changed since the book was printed? Or am I making a basic mistake? Thank you. Mike.
From: Arne Vajhøj on 11 Jun 2010 19:19 On 11-06-2010 19:12, Mike Barnard wrote: > I have a command line compiler set up and the code is entered via a > plain text editor. (NoteTabPro for now if anyone cares.) This is my > result... > > G:\java\Projects>javac MyFirstApp.java > MyFirstApp.java:2: cannot find symbol > symbol : class string > location: class MyFirstApp > public static void main (string[] args) { > ^ > MyFirstApp.java:3: package system does not exist > system.out.println("Hello world"); > ^ > MyFirstApp.java:4: package system does not exist > system.out.println("It's me"); > ^ > 3 errors Java is case sensitive. string must be String system most be System Arne
From: Rick Umali on 11 Jun 2010 19:25 Mike Barnard <m.barnard.trousers(a)thunderin.co.uk>: > G:\java\Projects>javac MyFirstApp.java > MyFirstApp.java:2: cannot find symbol > symbol : class string > location: class MyFirstApp > public static void main (string[] args) { > ^ > MyFirstApp.java:3: package system does not exist > system.out.println("Hello world"); > ^ > MyFirstApp.java:4: package system does not exist > system.out.println("It's me"); > ^ > 3 errors System in System.out.println should be capitalized as well. IIRC, the Head First books have downloadable code, so you can compare for sure. Good luck! -- Rick Umali / www.rickumali.com
From: Mike Barnard on 11 Jun 2010 19:35 On Sat, 12 Jun 2010 00:12:44 +0100, Mike Barnard <m.barnard.trousers(a)thunderin.co.uk> wrote: Wow, that was quick. I hope your time zones are a bit more friendly than mine! It's half past midnight here. Thank you. Lesson one. Examine each character of code for Case! I shall get onto it.
From: Lew on 11 Jun 2010 23:22 Mike Barnard wrote: > Wow, that was quick. I hope your time zones are a bit more friendly > than mine! It's half past midnight here. Ah, Summer Time! What we Yanks call "Daylight Savings Time", which causes pedants to remind us that technically it's called "Daylight Saving Time". It's the level of nitpickiness that is relevant. We humans get away with "Daylight Savings Time" or "system.out"; when we make that kind of mistake in source code all heck breaks loose. Arne Vajhøj wrote: >> Java is case sensitive. Mike Barnard wrote: > Thank you. Lesson one. Examine each character of code for Case! I > shall get onto it. There's more, when you're ready. By convention, Java case is not arbitrary, though the language /per se/ largely permits it to be. You are free in theory to name a class 'myclass' and a do-something method 'do_something()', but in practice you'll make every professional Java programmer cringe. Few will be polite enough not to tell you so. Nor should they be. People largely follow the Sun Java Coding Conventions <http://java.sun.com/docs/codeconv/index.html> There's some wiggle. People will tolerate either brace-placement variant, and other varying allowances of style, but the basic naming rules are: Use camel case - make compound words with each word part (except maybe the first) capitalized, as in 'PileDriver' or 'makeSomethingHappen()'. Go ahead, spell things out - cut-and-paste will save you back the few microergs of extra typing energy that meaningful, unabbreviated names cost. Type names (interfaces and classes) begin with an upper-case letter. You don't need to put "Interface" or "Class" into the names, just the name of the type or implementation itself. Example: 'List' and 'ArrayList', an interface and a concrete implementation of that interface. Interfaces tend to name a quality, like 'Serializable', 'Iterable'. They often have single-word names, 'Queue', sometimes double, like 'ResultSet'. Class names tend to show more concreteness: 'PriorityBlockingQueue<E> implements Queue<E>, Iterable<E>, ...' Method and variable names begin with a lower-case letter. private int degree; public int size(); public int remainingCapacity(); You don't use underscores. With a major exception - constant variables. A constant variables is either an enum value name or a variable that doesn't change because it's 'final' and obeys certain compile-time rules of constancy. People think loosely of other kinds of final variable as "constants" also. You convey constancy by spelling the name in all upper-case, using underscores to separate word parts instead of camel case. protected static final int STANDARD_DEGREE = 17; public static final String MODULE_NAME = "Soyuz 17"; private final Status BIRTH_STATUS = Status.INNOCENT; Now it's easy to remember that 'System', a class, begins with upper case, and 'out', a static variable, with lower case, thus 'System.out'. 'print()', an instance method, begins with lower case, thus 'System.out.print(something)' -- Lew
|
Next
|
Last
Pages: 1 2 Prev: sync vs async webservices Next: Display image selected from JFileChooser |