Chương 3
Ngơn Ngữ Java
Trường Đại học Cơng nghệ Sài gịn
Khoa Công nghệ Thông tin
Mục Tiêu
Phiên dịch một chương trình Java
Hiểu biết cơ bản ngôn ngữ Java
Kiểu dữ liệu
Trường Đại học Công nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Java Program Structure
Môi trường
Khai báo Class
Tokens:
Các định danh.
Từ khóa.
Tóan tử.
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
VD Java program
// This is a simple program called “First.java”
class First
{
public static void main(String args[])
{
System.out.println(“My first program in Java”);
}
}
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Biên dịch và chạy
C:\jdk1.4\bin>javac First.java
C:\jdk1.4\bin>java First
Kết quả:
My first program in Java
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
Truyền các đối số dòng lệnh
class Pass
{
public static void main(String parameters[])
{
System.out.println("This is what the main method
received");
System.out.println(parameters[0]);
System.out.println(parameters[1]);
System.out.println(parameters[2]);
}
}
Trường Đại học Công nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Truyền các đối số dịng lệnh(tt…)
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Cơ Sở Của Ngôn Ngữ Java
Classes & Methods
Data types
Variables
Operators
Control structures
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Classes in Java
Cú pháp khai báo Class
class Classname
{
var_datatype variablename;
:
met_datatype methodname(parameter_list)
:
}
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
VD class
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
Nested Classes
Định nghĩa một class bên trong một class khác
gọi là ‘Nesting’.
class OuterClass {
... class NestedClass { ... }
}
Được chia vào các dạng:
Static: được gọi là “static nested classes “ dùng làm help
Non-static: được gọi là “inner classes “
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Các dạng Data
Primitive Data Types
Byte
Char
Boolean
Short,int,long
Float, double
Reference data types
Array
Class
Interface
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
Chuyển kiểu
Một dạng dữ liệu được chuyển vào một dạng khác
Ẩn: Thấp->Cao:
byte --> short --> int --> long --> float --> double
For example:
double x;
int n = 5;
x = n;
n = x;//không hợp lệ
Hiện:
float c = 34.89675f;
int b = (int)c + 10;
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
So Sánh 2 Dạng Dữ liệu
primitive data
class
Đơn giản nhất.
Phức tạp hơn.
Khơng thể phân chia
Nhóm của các dạng
Chỉ có trị khơng method
khác(primitive hay class)
VD:
Bao gồm data và methods
int - integer
VD:
double – floating point (real)
SavitchIn
char - character
String
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
Biến (Variables)
Khai báo biến gồm 3 phần:
Kiểu dữ liệu.
tên
Giá trị khởi tạo.
Cú pháp:
datatype identifier [=value][, identifier[=value]...];
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Tên biến
Qui định
Khơng bắt đầu với số.
Chứa số,kí tự, (_) và $
(tránh dùng)
Phân biệt hoa và thường
(ThisName và thisName là
khác nhau)
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
Nên
Nên đặt tên có nghĩa
(eggsPerBasket hơn là count)
Bắt đầu với kí tự thường.
Hoa đầu từ (eggsPerBasket hơn
là eggsperbasket)
Tránh dùng $.
OOP JAVA
Từ khóa
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
Khai báo Array
Có 3 cách:
datatype identifier [ ]; // lúc này chưa dùng được vì chưa có kích thước or value
datatype identifier [ ] = new datatype[size];
datatype identifier [ ]= {value1,value2,….valueN};
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Các phương thức trong Class
Định nghĩa một tác vụ trên một đối tượng.
Cú pháp:
access_specifier modifier datatype method_name(parameter_list)
{
//body of method
}
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
VD
class Temp {
static int x = 10;
// variable toàn cục
public static void show( ) { // method
System.out.println(x);
}
public static void main(String args[ ]) {
Temp t = new Temp( );
// object 1
t.show( );
// method call
Temp t1 = new Temp( );
// object 2
t1.x = 20;
t1.show( );
}
}
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
Phạm Vi truy cập của Method
public
private
Protected
default
Trường Đại học Công nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Method Modifiers
static
abstract
final
native
synchronized
volatile
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thông tin
OOP JAVA
Methods Overloading và Overriding
Methods Overloading
Overloaded
Methods:
Ở trong cùng một Class
Có cùng tên phương thức
Có tham số truyền khác nhau
Phương thức Overload là một đặc trưng của tính đa hình trong
thời điểm biên dịch.
Methods Overriding
Overridden Methods:
Ở trong Class cha và Class con.
Được định nghĩa lại trong class con.
Phương thức Overridden là một đặc trưng của tính đa hình
trong thời điểm runtime. (Binding Dynamic)
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Khởi tạo Class
Là một phương thức dùng khởi tạo các biến thành viên của Class
Tên giống với tên Class và khơng có trị trả về.
Được gọi khi một đối tượng được khởi tạo.
Các dạng:
Hiện constructors
Ẩn constructors
Trường Đại học Cơng nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA
Khởi dựng các class dẫn xuất
Có cùng tên như Class con.
Lệnh khởi dụng Class cha nên là lệnh đầu tiên trong phương thức khởi
dựng của Class con.
Trường Đại học Công nghệ Sài gịn
Khoa Cơng nghệ Thơng tin
OOP JAVA