Basic
Java
Syntax
COMP
401,
Spring
2014
Lecture
2
1/14/2014
Comments
Single
line
comments:
// This is a comment.!
MulBple
line
comments:
/*!
All of these lines.!
Are commented.!
*/!
A
Word
About
Types
Value
Types
Integers
Real
numbers
Booleans
Character
Reference
Types
String
Array
Objects
typed
by
their
class
Classes
themselves
Values
types
are
dened
enBrely
by
their
value.
Reference
types
are
structures
in
memory.
Address
in
memory
uniquely
idenBes
them.
The
value
of
a
variable
that
holds
a
reference
type
is
this
address.
Value
Types
Integers
byte, short, int, long!
Dierence
is
in
size
(1,
2,
4,
or
8
bytes)
No
unsigned
version
Decimal
(255),
hexidecimal
(0x),
and
binary
(0b11111111)
literal
formats
Real
Numbers
float, double!
Dierence
is
in
precision.
Characters
char!
Characters
in
Java
are
16-bit
Unicode
values
Literals
use
single-quote:
c
Non-printable
escape
sequence:
\u####
where
#
is
hex
digit.
Example:
\u00F1
for
Logical
boolean!
Literals
are
true
and
false
Packages,
classes,
and
methods,
oh
my!
A
package
is
a
collecBon
of
classes.
Dened
by
a
package
statement
at
the
beginning
of
a
source
code
le.
Example:
package lec02.ex01;!
All
classes
dened
in
the
le
belong
to
that
package.
A
class
is
a
collecBon
of
funcBons
(for
now).
Dened
by
class
keyword
followed
by
a
block
of
code
delimited
by
curly
braces.
Example:
class {!
/* Class definition. */!
}!
A
method
is
just
another
name
for
a
funcBon
or
procedure
and
is
a
sequence
of
Java
statements.
Dened
within
a
class.
Syntax:
a
method
header
or
signature
followed
by
a
block
of
code
delimited
by
curly
braces.
Method
Signature
Almost
everything
you
need
to
know
about
a
method
is
in
its
signature.
5
parts
to
a
method
signature
Access
modier
public,
private,
protected,
or
default
(i.e.,
not
specied)
Method
type
static
or
default
(i.e.,
not
specied)
The
keyword
staBc
indicates
that
this
is
a
class
method.
If
the
keyword
staBc
is
not
present,
then
this
is
an
instance
method.
Return
type
The
type
of
value
returned
by
the
method
as
a
result.
If
there
is
no
result,
then
this
is
indicated
by
the
keyword
void.
Method
name
Must
start
with
a
leher,
$,
or
_
Can
contain
lehers,
numbers,
$,
or
_
Parameter
list
In
parenthesis,
comma-separated
list
of
parameter
variables.
If
the
method
has
no
parameters,
then
just:
()
Each
parameter
variable
name
is
preceded
by
a
type
declaraBon.
Method
Signature
Examples
public static void main(String[] args)!
!
int foo (int a, MyType b, double c)!
!
protected static void bar()!
!
static String toUpperCase(String s)!
!
static private Secret my_secret()!
UnBl
we
know
a
lihle
more
All
of
the
methods
in
my
examples
today
are
going
to
be
public
class
methods.
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Return
statement
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Return
statement
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
Variable
declaraBon
Syntax:
type name;!
type name1, name2, name3;!
type name = value;!
A
variable
is
valid
within
the
block
of
statements
where
the
declaraBon
occurs.
This
is
known
as
the
scope
of
the
variable.
The
declaraBon
must
occur
before
the
variable
is
used.
Method
parameter
names
are
treated
as
if
they
were
variables
declared
within
the
method
body.
Variable
Names
Variable
names
should
start
with
a
leher
and
can
contain
lehers,
digits,
$,
or
_
Can
not
start
with
digit
Can
not
contain
whitespace
or
punctuaBon
other
than
$
or
_
In
general,
use
of
punctuaBon
in
variable
names
is
discouraged.
Case
sensiBve
Can
not
be
a
keyword
Legal:
foo,
bar,
a_variable,
var123
Legal
but
not
considered
good:
var_with_$,
_badness
Illegal:
1var,
while,
break,
this
has
whitespace
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Return
statement
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
Assignment
Syntax:
variable = expression;!
Note:
single
equals
for
assignment.
Lep
hand
side
must
be
some
sort
of
variable
that
can
be
assigned.
Expression
must
produce
a
value
that
matches
the
type
of
the
variable.
Expressions
A
sequence
of
symbols
that
can
be
evaluated
to
produce
a
value.
Can
be
used
wherever
a
value
is
expected.
Types
of
expressions:
Literal
values:
123
Variable
names:
a_variable
Public
class/object
elds:
Math.PI
Value
as
a
result
of
a
method
call:
foo()
Expressions
combined
by
operators:
4+3*2
Operators
Unary:
+,
-,
!,
++,
--
ArithmeBc:
+,
-,
/,
*,
%
RelaBonal:
==,
!=,
>,
>=,
<,
<=
Boolean:
&&,
||
Ternary:
?:
expression
?
if_true
:
if_false
Bitwise:
~,
<<,
>>,
>>>,
&,
|,
^
Be
aware
of
precedence
Can
be
controlled
by
explicitly
grouping
with
()
Be
aware
of
context
Some
operators
do
dierent
things
depending
on
the
types
of
the
values
they
are
applied
to.
Assignment
and
Unary
Operators
Most
numeric
operators
have
an
assignment
form.
Easy
syntax
for
applying
the
operator
to
a
variable
and
assigning
the
result
back
to
the
same
variable.
Examples:
a
+=
3
//
Equivalent
to
a
=
a
+
3
b
*=
4
//
Equivalent
to
b
=
b
*
4
Unary
operators
++
and
Used
with
integer
typed
variables
to
increment
and
decrement.
Usually
used
as
a
statement
unto
itself:
a++;
//
Equivalent
to
a
=
a
+
1;
b--;
//
Equivalent
to
b
=
b
1;
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Return
statement
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
CondiBonal
ExecuBon:
if-else
if-else
if (expression) {!
!block!
} else if (expression) {!
!block!
} else {!
!block!
}!
20
if
example
if (score > 90) {!
!System.out.println(You
} else if (score > 80) {!
!System.out.println(You
} else if (score > 70) {!
!System.out.println(You
} else if (score > 60) {!
!System.out.println(You
} else {!
!System.out.println(You
}!
!
got an A!);!
got a B.);!
got a C?);!
got a D :-();!
failed);!
CondiBonal
ExecuBon:
switch
switch (expression) {! Works
with
basic
value
data
types
case value:!
Works
with
String
as
!statements!
of
Java
7
!break;!
ExecuBon
starts
at
case value:!
rst
matching
case
!statements!
value
!break;!
or
default
if
provided
and
no
...!
case
matches
default:!
ConBnues
unBl
break
!statements!
statement
or
end
of
} !
switch.
Switch
Example
switch (c) {!
!case 'a': !
!case 'e': !
!case 'i':!
!case 'o': !
!case 'u': !
!!System.out.println("Vowel");!
!!break;!
!default: !
!!System.out.println("Consonant");!
}!
!
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Return
statement
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
Loops:
while
while (expression) {!
!block!
}!
!
do {!
!block!
} while (expression);!
while
example
int sum = 0;!
int n = 1;!
while (n < 11) {!
sum += n;!
n++;!
}!
System.out.println(The sum of 1 to 10 is: + sum);!
Loops:
for
for (init; test; update) {!
!block!
}!
for
example
int sum = 0;!
for(int n=1; n<11; n++) {!
sum += n;!
}!
System.out.println(The sum of 1 to 10 is: + sum);!
!
Note
that
variable
n
is
declared
as
part
of
init
expression
in
for
loop.
This
is
a
common
programming
idiom
if
loop
variable
is
only
needed
for
the
loop.
Scope
of
variable
is
limited
to
the
loop
block.
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Return
statement
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
Calling
Methods
Calling
a
class
method:
ClassName.methodName(parameter values);!
Calling
an
instance
method:
objectReference.methodName(parameter values);!
Above
parameter
values
is
a
comma
separated
list
of
values.
A
value
can
be
also
be
an
expression
that
results
in
a
value.
Must
match
in
number
and
type
according
to
methods
signature.
A
method
call
that
returns
a
value
can
be
part
of
an
expression.
int
max_Bmes_min
=
max(a,
b,
c)
*
min(a,
b,
c);
Inside
a
method
The
body
of
a
method
is
a
sequence
of
statements.
A
statement
ends
in
a
semi-colon
Types
of
statements:
Variable
declaraBon
Assignment
CondiBonal
Loop
Method
call
Return
statement
Blocks
Zero
or
more
statements
enclosed
in
curly
braces
{
}
Allowed
anywhere
a
single
statement
is
allowed.
And
vice
versa
Return
Syntax:
return expression;!
Ends
execuBon
of
a
method
and
returns
the
value
of
the
expression
as
the
result
of
the
method.
Must
match
type
declared
in
method
signature.
If
method
return
type
is
void,
then
simply:
return;!
Java
ExecuBon
Model
Your
program
is
always
execuBng
within
the
context
of
some
method.
Starts
o
in
the
main
class
method
dened
in
whatever
class
you
told
the
program
to
start
with.
ExecuBon
context
includes:
Variable
names
that
are
in
scope.
Parameter
names.
When
you
call
a
method:
Current
context
is
saved.
A
new
context
is
created.
Method
parameter
names
are
mapped
to
values
provided
when
method
was
called.
As
method
executes,
declared
variables
become
part
of
this
new
context.
When
a
method
returns:
Current
context
is
destroyed.
Context
where
method
call
occurred
is
restored.
This
is
why
recursion
works.
Strings
String
class
Sequence
of
chars
Some
common
methods:
length()
charAt(int
idx)
concat(String
otherString)
Can
also
use
+
equals(Object
obj)
Be
careful
about
using
==
substring(int
start,
int
end)
trim()
Strings
are
immutable
OperaBons
that
change/alter
a
string
are
really
giving
you
a
new
one.
a = A String ;!
a.length();!
!9!
a.charAt(3);!
!t
a.concat(am I);!
!A
String
am
I
a + am I;!
Same
as
above
a.equals(B string);!
!false
a.substring(2,5);!
Stri
a.trim();!
A
String
!
Arrays
Container
for
a
xed
number
of
values
with
the
same
type.
Zero
based
indexing.
Variables
for
arrays
declared
by
using
[]
aper
type.
Type
of
the
variable
is
Array
Type
of
each
entry
is
specied
by
type
name
before
[]
Empty
arrays
can
be
created
with
new
keyword.
Size
must
be
provided.
What
do
I
mean
by
empty?
Literal
array
syntax
can
be
used
to
create
array
from
literal
values
(or
expressions).
int[] iarray;!
!Declared, but not created.!
iarray = new int[10];!
!Now its created, but
uninitialized.!
len = iarray.length;!
!Length available as public
field. Note, not a method.!
iarray[0] = 3;!
!0th item set!
iarray[-1];!
!Illegal index!
iarray[10];!
!Index out of bounds!
int[] iarray = {1,2,(2+1)};!
!Declared and items
initialized all in one.!