Upload
edmund-tucker
View
214
Download
1
Embed Size (px)
Citation preview
Basic Java Syntax
CSE301University of Sunderland
Harry R Erwin, PhD
Key Resources to Help You Learn Java
• You need to own and read Flanagan, Java in a Nutshell, 5th edition. My lectures are not enough to teach you Java.
• You need access to Flanagan’s other Nutshell books.
• You need an up-to-date Java 1.5 (or newer) compiler and run-time environment.
• You need access to eclipse 3.1.1• You need to explore the Sun tutorials http://java.sun.com/docs/books/tutorial/index.html
Unicode
• Java is written in the Unicode character set.
• Unicode characters are stored in 16 bits (some Far Eastern languages require 21) and can represent almost all written languages.– A– å– π
• Java programs can be written in ASCII or Latin-1 characters, which most text editors support.
• Unicode can be used anywhere in a Java program.
Comments
• Single-line comments: //…………..• Multi-line comments: /*…..*/• Doc comments:
– Begin with /**….– Provide embedded documentation– End with */– Worth investigating further, because they allow you to write self-documenting codefiles. This is an easy way to meet some of the project requirements.
– Extended in Java 5 (discussed in two weeks)
Scope of Names
• The ‘scope’ of a declaration is the region of the program within which the entity can be referred to using a simple name.
• Types must be imported or declared to be in scope.
• Members have class or interface scope.• Method parameters have method scope.• Local variables have block scope.• When a name is hidden by another name, you must provide the full name. Sometimes (method parameters, for example) there is no full name you can use.
Identifiers
• Begin with a letter, underscore (_), or currency symbol (€$¥£).
• Contain any number of letters, numbers, underscores, and currency symbols.
• Avoid the currency symbols as compilers use them.
• Remember Unicode. The following are legal identifiers:– π– Ö
Primitive Data Types
– boolean– char– short– byte– int– long– float– double
• Have machine-independent formats and default values. Know them! I usually ask a question on them in the TCT or exam.
String
• Contains Unicode text• Constant—unlike C and C++ strings.• A class, not a primitive type• Literals consist of anything between a pair of double quotes. To include a double quote in a string, use \”
• Supports operator overloading (+, +=). This is the only place in Java where operator overloading takes place.
Type Conversions
• Integer to floating point are automatic.
• char to/from integer and floating point
• Widening conversions (e.g., short to long) are safe.
• Narrowing conversions are dangerous. You need to understand why. I usually ask a question on this in the TCT or exam.
Classes and Arrays
• Reference types.• Created using the new operator
– new type(args); // an object– new type[dim]; // 1-D array– new type[dim1][dim2] etc; //larger arrays
• A class or array object is null (does not exist) until it is initialized.
• Interfaces are reference types, too.• Discussed in the next lecture.
Operators
• Generally as in C or C++. See the earlier lecture.
• Typecasting is handled by (type)var; , not type(var);!
Statements
• Generally as in C/C++. See the earlier lecture.
• Additional:– synchronized (threads)– throw (an exception)– try/catch/finally (to handle exceptions)
– All the new Java 5 stuff (discussed in two weeks).
Methods
• Correspond to functions in C or C++, but are always associated with a class.
• Defined by their signature:– Name– Arguments– Return type (differs from C++, may be void)– Checked exceptions thrown– Method modifiers: public, static, abstract, final, native, private, protected, synchronized.
Method Modifiers
• public—can be called from anywhere• static—defined at the class, not instance level
• abstract—must be defined by a subclass to be called
• final—no changes allowed• native—calls native code• private—hidden from other classes• protected—visible in same package and subclasses
• synchronized—supports multithreading
Summary
• Java is not C or C++• Everything is either a primitive type or a reference type.
• Primitive types have default values, while reference types do not exist until they are initialized.
• Java smells like C and C++, but a language that smells may not be to your liking… 8)