James Gosling 1990, “Green Project” 1991, Develop the Language for Household Products => To General Developing Language Java J ames Gosling, A rthur V an Hoff, A ndy Bechtols
Trang 1Programming Java
Java Basics
Incheon Paik
Contents
Applications & Applets
Classes & Objects
Strings & Characters
Trang 2Background / History
Sun Microsystems Inc.
James Gosling
1990, “Green Project”
1991, Develop the Language for Household Products => To
General Developing Language
Java
J ames Gosling, A rthur V an Hoff, A ndy Bechtolsheim
Coffee Materials in Indonesia
Write once, Run everywhere
Spread Rapidly through WWW and Internet
Byte Code and Java Virtual Machine
Existing Development Environment
Source
Code
Compiler(Pentium)
Compiler(PowerPC)
Compiler(SPARC)
Binary File Pentium
PowerPC
SPARC
Binary File
Binary File
%cc Hello.c –o Hello
% Hello
Trang 3 Java Development Environment
Java Compiler (Pentium)
Java Compiler (PowerPC)
Java Compiler (SPARC)
Java Interpreter Pentium
PowerPC
SPARC
Java Interpreter
Java Interpreter
Java
Code
Java ByteCode
(Independent on Platform)
%javac Hello.java
Hello.class created
% java Hello
Byte Code Run JVM
Java Program
Java Application Program
Application
Program written in general programming
language
Applet
Program running in Web Browser Environment
Can be viewed by appletviewer or Web browser
with JVM
Trang 4Classes and Objects
Object
Memory Space to Define State and Operation
Instance of Class
Class
Template of Creating Object
The 3 Principles of Object Oriented
Programming
Encapsulation
Control Access the data and method in program code
Inheritance
Inherit the data and methods of parent class
Polymorphism
Shape
Ellipse Rectangle Triangle
getArea()
getArea() getArea() getArea()
Shape Obj = new Ellipse(); Obj.getArea();
Which Area?
Trang 5The Java Class Libraries
java.applet : Applet related
java.awt : Abstract Window Toolkit
java.awt.event : Event process from awt component
java.awt.image : Image processing
java.beans : JavaBeans Component
java.io : File or Network I/O Support
java.lang : Java Language Support
java.net : Network related functions
java.util : Utility function
Java 2 SDK
Java 2 Software Development Kit (Java 2 SDK)
Java Application or Applet Development and
Running Environment
Java 2 Runtime Environment (JRE)
Java Running Environment
Java 2 Standard Edition
Java 2 Micro Edition
Java 2 Enterprise Edition
Trang 6Start a Java Application
“Hello.java”
class Hello {
public static void main(String args[]) {
System.out.println(“Hello World”);
}
% javac Hello.java
% java Hello
Compile Run
“hello.c”
void main() { printf(“Hello World¥n”);
}
% cc hello.c –o hello
% hello
Hello World
Result
Class Name Main method
Main Function
Variables and Assignments
Variables
Types
char 16bits Unicode character data
boolean Boolean Variable
byte 8 bits signed integer
short 16 bits signed integer
int 32 bits signed integer
long 64 bits signed integer
float 32 bits signed floating point number
double 64 bits signed floating point number
Trang 7Variables and Assignments
int num = 100;
long m = 21234234L
double type : 5 0.8 9e-2 -9.3e-5
float type : 1.5e-3f;
Variable Declaration
type varName;
Value assignments
varName = value;
float x, y, x;
Strings and Characters
String : sequence of character
String s = “Enter an integer value: ” ;
Char c = ‘A’;
Concatenation Operator ‘+’
String s = “Lincoln said: ” + “¥” Four score and seven years ago¥”” ;
Result :
Lincoln said: “Four score and seven years ago”
Unicode
Trang 8Arithmetic Operators
Operators
+ - * / %
+= -= *= /= %=
++
5 / 2 Æ 2 Why isn’t it 2.5 ?
5 % 2 Æ 1
4 / 2 Æ 2
4 % 2 Æ 0
count * num + 88 / val – 19 % count
j += 6; Î j = j + 6;
Type Conversions in Expression
char ch; int i; float f; double outcome;
ch = ‘0’; i = 10; f = 10.2f;
outcome = ch * i / f;
double
double float
int
float
double
Trang 9Type Conversions in Assignment
Widening Conversion
byte b = 127;
int i;
i = b;
Narrowing Conversion
byte b;
int i = 258;
b = (byte) i;
Wrong Conversion
byte b;
int i = 127;
b = i;
Right Conversion (But data may be lost)
byte b;
int i = 127;
b = (byte) i;
Type Casting
Comments
Single Line Comment
int i = 10 ; // i is counter
Multiple Line Comment
/*
Some comments
*/
Documentation Comment
/**
Documentation Comment
*/
Using “javadoc” Tool, make document
Trang 10Arrays ( One Dimensional)
type VarName[]
Definition of One Dimensional Array
int ia[];
varName = new type[size]
Assign Range to One Dimensional Array
ia = new int[10];
type varName[] = new type[size]
Declaration of One Dimensional Array with Range
int ia[] = new int[10];
Arrays ( One Dimensional)
varName.length
Number of elements in Array
Type varName[] = {e0, …, en};
Initialization of One Dimensional Array
int j[] = {0, 1, 2, 3, 4, 5};
int k[];
K = j;
Example 1.15
Trang 11Arrays ( Multi-Dimensional)
type VarName[][];
Definition of Two Dimensional Array
float fa[][];
varName = new type[size1][size2];
Assign Range to Two Dimensional Array
fa = new float[2][3];
type varName[][] = new type[size1][size2];
Declaration of Two Dimensional Array with Range
float fa[] = new float[2][3];
varName.length
Number of elements in Multi-Dimensional Array
Type varName[][] = {{e00, …, e0n}, {e10,…,e1y}, {e20, …, e2z}};
Initialization of Multi-Dimensional Array
Example 1.16
varName[index].length
Number of elements in Each elements of Multi-Dimensional Array
Number of Raw
Trang 12Java Keywords
50 Java Keywords
continue implements return volatile
do instanceof static strictfp
assert (New in 1.5) enum (New in 1.5)
The “assert” was recognized as keyword in JDK1.4 compiler, but we could not use it.
It can be used it from 1.5.
Exercise
Step 1
Refer to this lecture (slide #11)
Step 2 (How to make & run Applet)
(1) Make Applet Program
import java.awt.Graphics;
public class HelloWorldApplet extends java.applet.Applet {
public void paint (Graphics g) {
g.drawString(“Hello World!”,5,25); }
} // end of Applet
(2) Compile(using javac) to create HelloWorldApplet.class
(3) Create HTML file (ex; HelloWorld.html) to include applet
<applet code="HelloWorldApplet.class" width="150" height="25">
(4) Run Applet using Appletviewer or Applet enabling Web browser
% appletviewer HelloWorld.html
Trang 13Exercise
Step 3 (Type Conversion)
Refer to this lecture (slides #16,17)
Step 4 (Array)
Refer to this lecture (slide #22)