JAVA BASICS
Getting Started
► The java Development Kit-JDK .
► In order to get started in java
programming, one needs to get a recent
copy of the java JDK. This can be obtained
for free by downloading it from the Sun
Microsystems website, [Link]
► Once you download and install this JDK you
are ready to get started. You need a text
editor as well(Notepad)
2
To run java program
► Java instructions need to translated into
an intermediate language called
bytecode(.class)
► Then the bytecode is interrupted into a
particular machine language (Object
code)
3
What is needed
► Compiler: A program that translates
program written in a high level language
into the equivalent machine language
► Java Virtual machine: which make java
programs machine independent
4
Java virtual machine
► The Java Virtual Machine is software
that interprets Java bytecode
► Java programs executed in JVM
► JVM is a virtual rather than a physical
machine
► The JVM is typically implemented as a
run time interrupter
► Translate java bytecode instructions
into object code
5
Java Features
► Java is both compiled and interpreted.
javac
java
► Java is fully object oriented.
6
Java Features
► Java is easy to learn.
► Java is machine and platform
independent.
“WRITE ONCE, RUN ANY WHERE!”
7
Java Features
► Java depends on dynamic linking of
libraries.
8
API
► The application program interface (API)
contains predefined classes and
interfaces for developing Java
programs.
► The Java language specification is stable, but
the API is still expanding.
9
Java IDE Tools
► A Java development tool is software
that provides an integrated
development environment (IDE) for
rapidly developing Java programs.
► Borland JBuilder
► NetBeans Open Source by Sun
► Jcreator
► Eclipse Open Source by IBM
► ….
10
Characteristics of Java
► Java Is Simple
► Java Is Object-Oriented
► Java Is Distributed
► Java Is Interpreted
► Java Is Robust
► Java Is Secure
► Java Is Portable
► Java's Performance
► Java Is Multithreaded
11
A Simple Java Program
// My First Program!!
public class HelloWorld {
public static void main(String[] args){
[Link](“Hello World!”);
}
}
12
Anatomy of a Java Program
► Comments
► Package
► Reserved words
► Modifiers
► Statements
► Blocks
► Classes
► Methods
► The main method
13
Naming Conventions
► Class and Interface names:
CaptializedWithInternalWordsCaptialized
► Method names:
firstWordLowercaseButInternalWordsCapitalize
d()
► Variable names:
firstWordLowercaseandInternalWordsLowered
► Constants: UPPER_CASE_WITH_UNDERSCORES
14
Standard Output
► println() places a newline character at
the end of whatever is being printed
out.
► The following lines:
► [Link](“This is being printed
out");
[Link](“on two separate
lines.");
results in 2 lines of output.
► [Link](“These lines will be");
[Link](“printed on the same
line");
15
Identifiers
► Identifiers are the names of variables,
methods, classes, packages and
interfaces.
► An identifier is a sequence of
characters that consist of letters,
digits, underscores (_), and dollar signs
($), must start with a letter, an
underscore (_), or a dollar sign ($).
► It cannot start with a digit.
► An identifier cannot be a reserved word
(public, class, static, void, method,…)
16
Note
► Java is case sensitive.
► File name has to be the same as class name in file.
► Need to import necessary class definitions.
17
Variables
► Each variable must be declared before
it is used.
► The declaration allocates a location in
memory to hold values of this variable.
► Variable types can be:
► primitive
► reference to an object(Non-Primitive)
18
Variable Declarations
► The syntax of a variable declaration is
data-type variable-name;
► Example:
int total;
long count, sum;
double unitPrice;
► Assign values:
total = 0;
count = 20, sum=50;
unitPrice = 57.25;
19
Variable Declarations, cont.
► Declaring and Initializing in One Step
int total=0;
long count=20, sum=50;
double unitPrice = 57.25;
20
Variable Declaration
Example
public class DeclarationExample {
public static void main (String[] args) {
int weeks = 14;
long numberOfStudents = 120;
double averageFinalGrade = 78.6;
char ch=‘a’;
[Link](weeks);
[Link](numberOfStudents);
[Link](averageFinalGrade);
[Link](ch);
}
}
21
Constants
► We may declare that a variable is a
constant and its value may never
change.
final datatype CONSTANTNAME = VALUE;
final double PI = 3.14159;
final int CHINA_OLYMPICS_YEAR = 2008;
22
Primitive Data Types
23
Integers
► There are four integer data types, They
differ by the amount of memory used to
store them.
Type Bits Value Range
byte 8 -128 … 127
short 16 -32768 … 32767
int 32 about 9 decimal digits
long 64 about 18 decimal digits
24
Floating Point
► There are two floating point types.
Type Bits Range Precision
(decimal digits) (decimal digits)
float 32 38 7
double 64 308 15
25
Characters
► A char value stores a single character
from the Unicode character set.
► A character set is an ordered list of
characters and symbols.
► ‘A’, ‘B’, ‘C’, … , ‘a’, ‘b’, … ,‘0’, ‘1’, … , ‘$’, …
► The Unicode character set uses 16 bits
(2 bytes) per character.
26
Boolean
► A boolean value represents a
true/false condition.
► The reserved words true and false
are the only valid values for a boolean
type.
► The boolean type uses one bit.
27
Numeric Type Conversion
Consider the following statements:
byte i = 100;
long k = i * 3 + 4;
double d = i * 3.1 + k / 2;
28
Conversion Rules
► When performing a binary operation
involving two operands of different types,
Java automatically converts the operand
based on the following rules:
► If one of the operands is double, the other is
converted into double.
► Otherwise, if one of the operands is float, the
other is converted into float.
► Otherwise, if one of the operands is long, the
other is converted into long.
► Otherwise, both operands are converted into
int.
29
Type Casting
► Implicit casting
double d = 3; (type widening)
► Explicit casting
int i = (int)3.0; (type narrowing)
int i = (int)3.9; (Fraction part is truncated)
► What is wrong? int x = 5 / 2.0;
30
Data Type Conversion
Examples
double f, x;
int j;
f = 5;
f = 5.0 / 2;
f = x * j;
f = 5 / 2;
f = (float) j / 5;
j = (int) f;
j = (int) 5.0 / 2.0;
31
Operators
32
Basic Arithmetic Operators
Operator Meaning Type Example
+ Addition Binary total = cost + tax;
- Subtraction Binary cost = total – tax;
* Multiplication Binary tax = cost * rate;
/ Division Binary salePrice = original / 2;
% Modulus Binary remainder = value % 5;
33
Combined Assignment
Operators
Value of variable after
Operator Example Equivalent
operation
+= x += 5; x = x + 5; The old value of x plus 5.
-= y -= 2; y = y – 2; The old value of y minus 2
The old value of z times
*= z *= 10; z = z * 10;
10
The old value of a divided
/= a /= b; a = a / b;
by b.
The remainder of the
%= c %= 3; c = c % 3; division of the old value of
c divided34by 3.
Operator Precedence
► Multiplication, division, and remainder
(%) have a higher precedence than
addition and subtraction.
► Operators with same precedence
evaluate from left to right.
► Parenthesis can be used to force order
of evaluation.
35
Increment and Decrement
Operators
Operator Meaning Example Description
Increments var by 1 and
evaluates the new value
++ preincrement ++var in var after the
increment.
Evaluates the original
++ postincrement var++ value in var and
increments var by 1.
Decrements var by 1
and evaluates the new
–– predecrement --var value in var after the
decrement.
Evaluates the original
–– postdecrement var-- value in var and
decrements
36 var by 1.
Increment and Decrement
Operators, cont.
37
Comparison Operators
Operator Meaning
< less than
<= less than or equal to
> greater than
>= greater than or equal to
== equal to
!= not equal to
38
Boolean Operators
Operator Meaning
! not
&& and
|| or
^ exclusive or
39
Control Statements
40
if Statement
if (booleanExpression) if (radius >= 0)
{ {
statement(s); area = radius * radius * PI;
} [Link]("The area"
“ for the circle of radius "
+ "radius is " + area);
}
41
if...else Statement
if (booleanExpression)
{
statement(s)-for-the-true-case;
}
else
{
statement(s)-for-the-false-case;
}
42
if...else Statement
Example
if (radius >= 0)
{
area = radius * radius * 3.14159;
[Link]("The area for the “
+ “circle of radius " + radius +
" is " + area);
}
else
{
[Link]("Negative input");
}
43
Multiple Alternative
if Statements
44
switch Statements
switch (switch-expression)
The switch-expression must {
yield a value of char, byte, case value1:
short, or int type and must statement(s)1;
always be enclosed in
parentheses. break;
case value2:
statement(s)2;
The value1, ..., and valueN
must have the same data type break;
as the value of the …
switch-expression. case valueN:
Note that value1, ..., and statement(s)N;
valueN are constant break;
expressions, meaning that default:
they cannot contain variables
statement(s)-for-default;
in the expression.
}
45
while Loop
while int count = 0;
(loop-continuation-condit
while (count < 100)
ion)
{
{
[Link]("
// loop-body; Welcome to Java!");
Statement(s); count++;
} }
46
do-while Loop
do
{
// Loop body;
Statement(s);
}
while
(loop-continuation-conditio
n);
47
for Loops
for (initial-action; int i;
loop-continuation-condi 1 2 4
tion;
for (i = 0; i < 100; i++)
action-after-each-itera
tion) { 3
{ [Link](
// loop body; "Welcome to Java!");
Statement(s); }
}
48
Methods
49
Methods
A method is a collection of statements
that are grouped together to perform
an operation.
50
Methods
► Modifier is like public, private and
protected.
► returnType is the data type of the
value the method returns.
► Some methods perform the desired
operations without returning a value.
► In this case, the returnType is the
keyword void.
51
Methods
► Parameters are Variables which
defined in the method header.
► Method body contains a collection
of statements that define what the
method does.
52
Benefits of Methods
► Write a method once and reuse it
anywhere.
► Information hiding: Hide the
implementation from the user.
► Reduce complexity.
53
Calling a Method
► If the method returns a value
► int larger = max(3, 4);
► If the method returns void, a call to the
method must be a statement.
► [Link]("Welcome to Java!");
54
Overloading Methods
► The max method that was used
earlier works only with the int data
type.
► what if you need to find which of
two floating-point numbers has the
maximum value?
► The solution is to create another
method with the same name but
different parameters, This is
referred to as method overloading.
55
Overloading Methods, Cont.
► The Java compiler determines which
method is used based on the method
signature.
► You cannot overload methods based on
different modifiers or return types
only.
56
Example
public class TestMethodOverloading {
/** Main method */
public static void main(String[] args) {
// Invoke the max method with int parameters
[Link]("The maximum between 3 and 4 is "+ max(3, 4));
// Invoke the max method with the double parameters
[Link]("The maximum between 3.0 and 5.4 is"+ max(3.0,5.4));
/** Return the max between two int values */
public static int max(int num1, int num2) {
if (num1 > num2)
return num1;
else
return num2;
/** Find the max between two double values */
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
57
Scope of Local Variables
► A local variable: a variable defined inside
a method.
► Scope: the part of the program where the
variable can be referenced.
► The scope of a local variable starts from
its declaration and continues to the end
of the block that contains the variable. A
local variable must be declared before it
can be used.
58
Strings
► Strings are objects that are treated by
the compiler in special ways:
► Can be created directly using “xxxx”
► Can be concatenated using +
String myName = “John Jones”;
String hello;
hello = “Hello World”;
hello = hello + “!!!!”;
int year = 2008;
String s = “See you in China in “ + year;
59
Arrays
60
Arrays
► Array is used to store a collection of
data of the same type.
► Instead of declaring individual variables,
such as number0, number1, ..., and number99.
► You declare one array variable such as
numbers and use numbers[0], numbers[1], and
..., numbers[99] to represent individual
variables.
61
Arrays
62
Arrays
► Declaring Array
► dataType [] arrayRefVar;
► Example:
► int[] arrayName;
► Creating Arrays
− arrayRefVar = new dataType[arraySize];
► Example:
− arrayName = new int[5];
63
Arrays
► When we need to access the array we
can do so directly as in:
for (int i=0; i<5; i++)
{
[Link]( arrayName[i] );
} // end for
64
Example
double[] myList = new double[10];
for (int i = 1; i < [Link]; i++)
{
myList[i]=i;
}
for (int i = 1; i < [Link]; i++)
{
[Link](i);
}
65
Array Initializers
► Declaring, creating, initializing in one step:
double [] myList = {1.9, 2.9, 3.4, 3.5};
► This shorthand syntax must be in one
statement and it’s equivalent to the
following statements:
double [] myList = new double[4];
myList[0] = 1.9;
myList[1] = 2.9;
myList[2] = 3.4;
myList[3] = 3.5;
66
Passing Arrays to Methods
public static void printArray(int[] array) {
for (int i = 0; i < [Link]; i++) {
[Link](array[i] + " ");
}
}
Invoke the method
int[] list = {3, 1, 2, 6, 4, 2};
printArray(list);
Invoke the method
printArray(new int[]{3, 1, 2, 6, 4, 2});
Anonymous array
67
Returning an Array from a
Method
public static int[] reverse(int[] list)
{
int[] result = new int[[Link]];
for (int i = 0, j = [Link] - 1;
i < [Link]; i++, j--) {
result[j] = list[i];
}
return result;
}
int[] list1 = {1, 2, 3, 4, 5, 6};
int[] list2 = reverse(list1);
68
Two-dimensional Arrays
// Declare array ref var
dataType[][] refVar;
// Create array and assign its reference to
variable
refVar = new dataType[10][10];
// Combine declaration and creation in one
statement
dataType[][] refVar = new dataType[10][10];
// Alternative syntax
dataType refVar[][] = new dataType[10][10];
69
Declaring Variables of
Two-dimensional Arrays and
Creating Two-dimensional
Arrays
int[][] matrix = new int[10][10];
or
int matrix[][] = new int[10][10];
matrix[0][0] = 3;
for (int i = 0; i < [Link]; i++)
for (int j = 0; j < matrix[i].length; j++)
matrix[i][j] = (int)([Link]() * 1000);
70
Declaring, Creating, and
Initializing Using Shorthand
Notations
► You can also use an array initializer to
declare, create and initialize a
two-dimensional array. For example,
int[][] array
int[][] array = new int[4][3];
= {
array[0][0] = 1; array[0][1] = 2;
{1, 2, 3}, array[0][2] = 3;
{4, 5, 6},
Same
array[1][0] = 4; array[1][1] = 5;
{7, 8, 9},
as array[1][2] = 6;
{10, 11, array[2][0] = 7; array[2][1] = 8;
array[2][2] = 9;
12}
array[3][0] = 10; array[3][1] = 11;
}; array[3][2] = 12;
71
Lengths of Two-dimensional
Arrays
int[][] x = new int[3][4];
72
Lengths of Two-dimensional
Arrays, cont.
int[][] array = { [Link]
{1, 2, 3}, array[0].length
{4, 5, 6}, array[1].length
{7, 8, 9}, array[2].length
{10, 11, 12} array[3].length
};
array[4].length
ArrayIndexOutOfBoundsExceptio
n
73
Objects and Classes
74
Objects
•An object has both a state and
behavior.
•The state defines the object, and the
behavior defines what the object
does.
75
Classes
► Classes are constructs that define
objects of the same type.
► A Java class uses variables to define
data fields and methods to define
behaviors.
► Additionally, a class provides a special
type of methods, known as
constructors, which are invoked to
construct objects from the class.
76
Classes
77
Constructors
Constructors are a special kind of
methods that are invoked to construct
objects.
Circle()
{
}
Circle(double newRadius)
{
radius = newRadius;
}
78
Constructors, cont.
► Constructor name is the same as the
class name.
► Constructors do not have a return
type—not even void.
► Constructors are differentiated by the
number and types of their arguments.
► An example of overloading
► If you don’t define a constructor, a
default one will be created.
79
Constructors, cont.
► A constructor with no parameters is
referred to as a no-arg constructor.
► Constructors are invoked using the new
operator when an object is created.
► Constructors play the role of initializing
objects.
80
Example
public class Circle
{
public static final double PI = 3.14159; // A constant
public double r;// instance field holds circle’s radius
// The constructor method: initialize the radius field
public Circle(double r) { this.r = r; }
// Constructor to use if no arguments
public Circle() { r = 1.0; }
// The instance methods: compute values based on radius
public double circumference() { return 2 * PI * r; }
public double area() { return PI * r*r; }
}
81
Declaring Object Reference
Variables
To reference an object, assign the
object to a reference variable.
To declare a reference variable, use the
syntax:
ClassName objectRefVar;
Example:
Circle myCircle;
82
Creating Objects Using
Constructors
new ClassName();
Example:
new Circle();
new Circle(5.0);
83
Declaring/Creating Objects
in a Single Step
ClassName objectRefVar = new ClassName();
Example:
Circle myCircle = new Circle();
84
Accessing Objects
► Referencing the object’s data:
[Link]
[Link]
► Invoking the object’s method:
[Link](arguments)
[Link]()
85
Visibility Modifiers and
Accessor/Mutator Methods
► By default, the class, variable, or
method can be accessed by any class in
the same package.
► public: The class, data, or method is
visible to any class in any package.
► private: The data or methods can be
accessed only by the declaring class.
The get and set methods are used to read and
modify private properties.
86
Why Data Fields Should Be
private?
► To protect data.
► To make class easy to maintain.
87
Java Scoping Visibility
88
public class Student { Example public class BirthDate {
private int id; private int year;
private BirthDate birthDate; private int month;
private int day;
public Student(int ssn, int year, int
month, int public BirthDate(int newYear,
day) { int newMonth, int
id = ssn; newDay) {
birthDate = new BirthDate(year, month, year = newYear;
day); month = newMonth;
} day = newDay;
}
public int getId() {
return id; public void setYear(int
} newYear) {
year = newYear;
public BirthDate getBirthDate() { }
return birthDate; public class Test { }
} public static void main(String[] args) {
} Student student = new Student(111223333, 1970, 5, 3);
BirthDate date = [Link]();
[Link](2010); // Now the student birth year is
changed!
} 89
}
Instance
Variables, and Methods
► Instance variables belong to a specific instance.
► Instance methods are invoked by an instance of the class.
90
Scope of Variables
► The scope of instance and class
variables is the entire class. They can
be declared anywhere inside a class.
► The scope of a local variable starts
from its declaration and continues to
the end of the block that contains the
variable. A local variable must be
initialized explicitly before it can be
used.
91
The this Keyword
► Use this to refer to the object that
invokes the instance method.
► Use this to refer to an instance data
field.
► Use this to invoke an overloaded
constructor of the same class.
92
Example
93