system development with java lecture 2. rina zviel-girshin @asc2 errors a program can have three...
TRANSCRIPT
System development with Java
Lecture 2
Rina Zviel-Girshin @ASC 2
Errors
• A program can have three types of errors:• Syntax and semantic errors – called compile-
time errors• Run-time errors – occur during program
execution• Logical errors
Rina Zviel-Girshin @ASC 3
Errors
• Compile-time errors occur during program compilation and an executable version of the program is not created.
• Run-time errors occur during program execution and cause abnormal program termination.
• Logical errors occur during program execution and produce incorrect results.
Rina Zviel-Girshin @ASC 4
Java Syntax
• To write without syntax mistakes you have to know Java syntax.
SyntaxSyntax -
the study of the patterns of formation of sentences and phrases from words and of the rules for the formation of grammatical sentences in a language.
Rina Zviel-Girshin @ASC 5
Java Syntax
• Case-sensitive• Semi-colon (;) is line terminator• Curly braces ({,}) used for block structure• Several keywords
Rina Zviel-Girshin @ASC 6
Comments
There are two kinds of comments: • /* text */ A traditional comment: all the text from
the ASCII characters /* to the ASCII characters */ is ignored.
• // text An end-of-line comment: all the text from the ASCII characters // to the end of the line is ignored.
Rina Zviel-Girshin @ASC 7
Comments
Comments do not nest. • /* and */ have no special meaning in comments
that begin with //. • // has no special meaning in comments that begin
with /* or /**.
As a result, the text: /* this comment /* // /** ends here: */is a single complete comment.
Rina Zviel-Girshin @ASC 8
Identifiers
An identifier is:an unlimited-length sequence of Java letters
and Java digits, the first of which must be a Java letter.
An identifier cannot have the same spelling (Unicode character sequence) as:
• a keyword, • boolean literal, • the null literal
Rina Zviel-Girshin @ASC 9
Unicode
• Letters and digits may be drawn from the entire Unicode character set (The character set that uses 16 bit per character).
• Identifier can be written in most writing scripts in use in the world today, including:
Hebrew,Chinese, Japanese, KoreanPractically all languages
Rina Zviel-Girshin @ASC 10
Identifiers examples
• Uppercase and lowercase are different.
All the following are different identifiers:
MY my My mY my1
Examples of identifiers are:
String i3
isLetterOrDigit מונה
MAX_VALUE
Rina Zviel-Girshin @ASC 11
KeywordsThe following are reserved words called keywords
and cannot be used as identifiers:
abstractbooleanbreakbytebyvaluecasecastcatchcharclassconstcontinue
defaultdodoubleelseextendsfalsefinalfinallyfloatforfuturegeneric
gotoifimplementsimportinnerinstanceofintinterfacelongnativenewnull
operatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitch
synchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile
Rina Zviel-Girshin @ASC 12
True, False, Null
While true and false might appear to be keywords, they are technically Boolean literals.
Similarly, while null might appear to be a keyword, it is technically the null literal.
Rina Zviel-Girshin @ASC 13
Literals A literal is a source code representation of a value of:
• a primitive type,• the String type,• the null type
Kinds of Literals: IntegerLiteral FloatingPointLiteral
BooleanLiteral CharacterLiteralStringLiteralNullLiteral
Rina Zviel-Girshin @ASC 14
Integer Literals
An integer literal may be expressed in:• decimal (base 10), • hexadecimal (base 16), • octal (base 8)
Rina Zviel-Girshin @ASC 15
Hexadecimal numeral
• A hexadecimal numeral consists of the leading characters 0x or 0X followed by one or more hexadecimal digits.
• It can represent a positive, zero, or negative integer. • Hexadecimal digits with values 10 through 15 are
represented by the letters a through f or A through F, respectively.
HexDigit is one of:
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
Rina Zviel-Girshin @ASC 16
Octal numeral
• An octal numeral consists of a digit 0 followed by one or more of the digits 0 through 7.
• It can represent a positive, zero, or negative integer.
• Octal numerals always consist of two or more digits.
Rina Zviel-Girshin @ASC 17
Example
Examples of int literals:
02 0372
0xDadaCafe 1996
0x00FF00FF • the same number in decimal octal hexadecimal:
3 03 0x3
15 017 0xF
Rina Zviel-Girshin @ASC 18
Zero
• 0 is always considered to be a decimal numeral.• The numerals 0, 00, and 0x0 all represent exactly
the same integer value – zero value.
Rina Zviel-Girshin @ASC 19
Floating-Point Literals• A floating-point literal has the following parts:
• a whole-number part, • a decimal point (represented by an ASCII period character), • a fractional part, • an exponent (is indicated by a letter e or E followed by an
optionally signed integer),
• and a type suffix. • At least one digit, in either the whole number or
the fraction part, and either a decimal point, an exponent, or a float type suffix are required. All other parts are optional.
Rina Zviel-Girshin @ASC 20
Floating-Point Literals
• A floating-point literal is of type float if it is suffixed with an ASCII letter F or f; otherwise its type is double and it can optionally be suffixed with an ASCII letter D or d.
Examples of float literals:
1e1f 2.f .3f 0f 3.14f 6.022137e+23f
Examples of double literals:
1e12..30.03.14
Rina Zviel-Girshin @ASC 21
Boolean Literals
• The boolean type has two values, represented by the literals true and false
• A boolean literal is always of type boolean.
BooleanLiteral is one of:
true false
Rina Zviel-Girshin @ASC 22
Character Literals
• A character literal is expressed as a character or an escape sequence, enclosed in single quotes.
• The single-quote, or apostrophe, character is \u0027 - .
• A character literal is always of type char.
Examples of char literals:
'a‘ '%‘ '\t‘ '\\‘ '\u03a9‘
'\uFFFF‘ '\177'
Rina Zviel-Girshin @ASC 23
Unicode Character Type
•A char value stores a single character from the Unicode character set.
•The values range is between 0 and 65535.
•The amount of memory it requires: 16 bit or 2 bytes.
•The Unicode character set uses 16 bits per character.
Rina Zviel-Girshin @ASC 24
Part of the Unicode Set0x3041 …
0x05B0 …
0x77CD …
0x0021 …
…
Rina Zviel-Girshin @ASC 25
ASCII
• The ASCII character set is still the basis for many other programming languages.
• The ASCII character set uses 8 bits (one byte) per character.
• ASCII is a subset of Unicode.
Rina Zviel-Girshin @ASC 26
Part of the ASCII Set
0x21 …
…0xB9
Rina Zviel-Girshin @ASC 27
String Literals • A string literal consists of zero or more characters
enclosed in double quotes. • A string literal is always of type String.
Examples of string literals: "" // the empty string
"This is a string" // a string containing 16 characters
"This is a " + // actually a string-valued constant expression,
"two-line string" // formed from two string literals
Rina Zviel-Girshin @ASC 28
Escape Sequences for Character and String Literals
• The character and string escape sequences allow for the representation of some non-graphic characters as well as the single quote, double quote, and backslash characters in character literals and string literals.
Rina Zviel-Girshin @ASC 29
Escape Sequences for Character and String Literals
Escape Sequence:\ b /* \u0008: backspace BS */\ t /* \u0009: horizontal tab HT */\ n /* \u000a: linefeed LF */\ f /* \u000c: form feed FF */\ r /* \u000d: carriage return CR */\ " /* \u0022: double quote " */\ ' /* \u0027: single quote ' */\ \ /* \u005c: backslash \ */
Rina Zviel-Girshin @ASC 30
The Null Literal
• The null type has one value, the null reference, represented by the literal null, which is formed from ASCII characters.
• A null literal is always of the null type.
Rina Zviel-Girshin @ASC 31
Separators
The following nine ASCII characters are the separators (punctuators):
( ) { } [ ] ; , .
Rina Zviel-Girshin @ASC 32
Operators
The following 37 tokens are the operators, formed from ASCII characters:
= > < ! ~ ? :
== <= >= != && || ++
-- + - * / & |
^ % << >> >>> += -=
*= /= &= |= ^= %=
Rina Zviel-Girshin @ASC 33
Programming style
• Java is a free-format language. • There are no syntax rules about how the program
has to be arranged on a page. You can write entire program in one line.
• But as a matter of good programming style, you should lay out your program on the page in a way that will make its structure as clear as possible.
Rina Zviel-Girshin @ASC 34
Programming style
• Some advises:• Put one statement per line. • Use indentation to indicate statements that
are contained inside control structures. • Write comments.• Give your variables names that make sense.
Rina Zviel-Girshin @ASC 35
Style ExampleBad:
public class
Stam
{ public static void
main(String args[]){System.out.println("Hello!“);}}
Better:
// style example – outputs “Hello!”
public class Hello
{
public static void main(String args[])
{
System.out.println("Hello!");
}
}
Rina Zviel-Girshin @ASC 36
Any Questions?