Tải bản đầy đủ (.pdf) (54 trang)

Java Fundamentals

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (239.81 KB, 54 trang )

JavaJava
FundamentalsFundamentals
@uit.edu.vn
Khoa Mạng máy tính và Truyền thôngKhoa Mạng máy tính và Truyền thông
Đại học Công nghệ Thông tinĐại học Công nghệ Thông tin
Nội dungNội dung
 Giới thiệu JavaGiới thiệu Java
 Ứng dụng JavaỨng dụng Java
 OOP trong JavaOOP trong Java
 Wrapper ClassesWrapper Classes
 StringString
 Exception HandlingException Handling
 Nhập/xuất dữ liệuNhập/xuất dữ liệu
Giới thiệu Java [1]Giới thiệu Java [1]
 Ngôn ngữ lập trình hướng đối tượngNgôn ngữ lập trình hướng đối tượng
 Ngôn ngữ thông dịchNgôn ngữ thông dịch
 Độc lập hệ nền (MultiĐộc lập hệ nền (Multi--platform / Platformplatform / Platform--
Independent)Independent)Independent)Independent)
Giới thiệu Java [2]Giới thiệu Java [2]
 Ngôn ngữ giống C/C++Ngôn ngữ giống C/C++
 Không có khái niệm con trỏKhông có khái niệm con trỏ
 Hủy đối tượng tự độngHủy đối tượng tự động
 Biến môi trường CLASSPATH: chỉ đến Biến môi trường CLASSPATH: chỉ đến
thư mục / zip file / jar file chứa các class thư mục / zip file / jar file chứa các class
thư việnthư viện
Java Development KitJava Development Kit
 Bộ công cụ phát triển Java (Windows)Bộ công cụ phát triển Java (Windows)
Thư mục <j2sdk_home>/binThư mục <j2sdk_home>/bin
javac.exejavac.exe: Java Compiler: Java Compiler
 javac <java_source_file.java>javac <java_source_file.java> javac <java_source_file.java>javac <java_source_file.java>
java.exejava.exe: Java Interpreter: Java Interpreter


 java <java_class_file.class>java <java_class_file.class>
Thực thi ứng dụng JavaThực thi ứng dụng Java
CompileCompile
Java Source FileJava Source File
(.java)(.java)
Ứng dụng JavaỨng dụng Java
Java APIJava API
Máy ảo JavaMáy ảo Java (JVM)(JVM)
Hệ thống phần cứng máy tínhHệ thống phần cứng máy tính
Java Class FileJava Class File
(.class)(.class)
InterpretInterpret
Ứng dụng JavaỨng dụng Java
HelloWorldApp.javaHelloWorldApp.java
public class HelloWorldApp{public class HelloWorldApp{
public static void main(String[] args){public static void main(String[] args){
System.out.println(“HelloWorld”);System.out.println(“HelloWorld”);System.out.println(“HelloWorld”);System.out.println(“HelloWorld”);
}}
}}
Kiểu dữ liệuKiểu dữ liệu
 Primitive TypesPrimitive Types
bytebyte
charchar
booleanboolean
 Reference TypesReference Types
arrayarray
classclass
interfaceinterfacebooleanboolean
shortshort
intint

longlong
floatfloat
doubledouble
interfaceinterface
Chuyển đổi kiểu dữ liệu [1]Chuyển đổi kiểu dữ liệu [1]
 Một kiểu dữ liệu được chuyển đổi sang Một kiểu dữ liệu được chuyển đổi sang
một kiểu dữ liệu khácmột kiểu dữ liệu khác
 Ví dụVí dụ
float c = 34.89675f;float c = 34.89675f;float c = 34.89675f;float c = 34.89675f;
int b = (int)c + 10;int b = (int)c + 10;
c = b;c = b;
 Có hai cách chuyển đổi kiểu dữ liệu: tự Có hai cách chuyển đổi kiểu dữ liệu: tự
động và ép kiểuđộng và ép kiểu
Chuyển đổi kiểu dữ liệu [2]Chuyển đổi kiểu dữ liệu [2]
 Khi dữ liệu ,với một kiểu dữ liệu cho Khi dữ liệu ,với một kiểu dữ liệu cho
trước, được gán cho một biến có kiểu dữ trước, được gán cho một biến có kiểu dữ
liệu khác, quá trình chuyển đổi kiểu dữ liệu khác, quá trình chuyển đổi kiểu dữ
liệu tự động thực hiện nếu thõa các điều liệu tự động thực hiện nếu thõa các điều liệu tự động thực hiện nếu thõa các điều liệu tự động thực hiện nếu thõa các điều
kiện sau:kiện sau:
Hai kiểu dữ liệu tương thích nhauHai kiểu dữ liệu tương thích nhau
Kiểu dữ liệu đích lớn hơn kiểu dữ liệu nguồnKiểu dữ liệu đích lớn hơn kiểu dữ liệu nguồn
 Ép kiểu dữ liệu là sự chuyển đổi dữ liệu Ép kiểu dữ liệu là sự chuyển đổi dữ liệu
tường minh. Nó có thể làm mất thông tintường minh. Nó có thể làm mất thông tin
Các luật mở rộng kiểu dữ liệu Các luật mở rộng kiểu dữ liệu
 Tất cả các giá trị kiểu Tất cả các giá trị kiểu bytebyte and and shortshort
được mở rộng thành kiểu được mở rộng thành kiểu intint
 NếuNếu mộtmột toántoán hạnghạng cócó kiểukiểu longlong,, kiểukiểu dữdữ
liệuliệu củacủa toàntoàn biểubiểu thứcthức sẽsẽ đượcđược mởmở rộngrộng
thànhthành kiểukiểu longlongthànhthành kiểukiểu longlong
 NếuNếu mộtmột toántoán hạnghạng cócó kiểukiểu floatfloat,, kiểukiểu

dữdữ liệuliệu củacủa toàntoàn biểubiểu thứcthức sẽsẽ đượcđược mởmở
rộngrộng thànhthành kiểukiểu floatfloat
 NếuNếu mộtmột toántoán hạnghạng cócó kiểukiểu doubledouble,, kiểukiểu
dữdữ liệuliệu củacủa toàntoàn biểubiểu thứcthức sẽsẽ đượcđược mởmở
rộngrộng thànhthành kiểukiểu doubledouble
BiếnBiến
 Khai báo (giống C/C++)Khai báo (giống C/C++)
kiểukiểu--dữdữ--liệu tênliệu tên--biến[=giábiến[=giá--trị];trị];
 Ví dụVí dụ
double d = 5.5;double d = 5.5;double d = 5.5;double d = 5.5;
MảngMảng
 Khai báoKhai báo
 kiểukiểu--dữdữ--liệu tênliệu tên--biến[];biến[];
 kiểukiểu--dữdữ--liệu tênliệu tên--biến[]=biến[]=
newnew kiểu_dữ_liệu[số_pt];kiểu_dữ_liệu[số_pt];
 kiểukiểu--dữdữ--liệu tênliệu tên--biến[]=biến[]=
{gtrị1, gtrị2, ...};{gtrị1, gtrị2, ...};
 Ví dụVí dụ
int a[];int a[];
int a[] = new int [10];int a[] = new int [10];
float af[] = {5.3, 7.6, 8.9, 3.0};float af[] = {5.3, 7.6, 8.9, 3.0};
Cấu trúc điều khiểnCấu trúc điều khiển
 Cấu trúc rẽ nhánhCấu trúc rẽ nhánh
 ifif--elseelse
 switchswitch--casecase
 Cấu trúc lặpCấu trúc lặp Cấu trúc lặpCấu trúc lặp
 while while
 dodo--while while
 forfor
Class và ObjectClass và Object

 Lớp (class) định nghĩa một kiểu dữ liệu Lớp (class) định nghĩa một kiểu dữ liệu
mớimới
 Đối tượng (object) thuộc một lớp trong Đối tượng (object) thuộc một lớp trong
Java luôn được cấp phát động, sử dụng từ Java luôn được cấp phát động, sử dụng từ
khóa khóa newnewkhóa khóa newnew
 Biến có kiểu dữ liệu là lớp có thể tham Biến có kiểu dữ liệu là lớp có thể tham
chiếu đến một đối tượng thuộc lớpchiếu đến một đối tượng thuộc lớp
 Ví dụVí dụ
My_Class object;My_Class object;
object = new My_Class();object = new My_Class();
My_ClassMy_Class
objectobject
ClassClass
 Khai báoKhai báo
accessaccess--specifier modifier specifier modifier
classclass <tên<tên--class>class>
[[extendsextends <tên<tên--supersuper--class>] class>]
[[implementsimplements <d/s<d/s--interface>] {interface>] {[[implementsimplements <d/s<d/s--interface>] {interface>] {
/* /*
* class body* class body
*/*/
}}
 accessaccess--specifier:specifier:
 public, public,
 none (default)none (default)
 modifier:modifier:
 abstractabstract
 finalfinal
Thuộc tínhThuộc tính
 Khai báoKhai báo

accessaccess--specifier modifier specifier modifier
<khai<khai--báobáo--biến>;biến>;
 accessaccess--specifier:specifier:
 publicpublic
 protectedprotected
 none (default)none (default)
 privateprivate
 modifier:modifier:
 staticstatic
 finalfinal
Phương thức [1]Phương thức [1]
 KhaiKhai báobáo
accessaccess--specifier modifier specifier modifier
kiểukiểu--dữdữ--liệu tênliệu tên--phươngphương--thức(thức(
danhdanh--sáchsách--thamtham--số) {số) {
}}
 accessaccess--specifier:specifier:
 publicpublic
 protectedprotected
 none (default)none (default)
 privateprivate
 modifier:modifier:
 staticstatic
 finalfinal
 abstractabstract
Phương thức [2]Phương thức [2]
 Nguyên tắc truyền tham số:Nguyên tắc truyền tham số:
 Kiểu dữ liệu là kiểu cơ sở: truyền bằng tham số trịKiểu dữ liệu là kiểu cơ sở: truyền bằng tham số trị
 Kiếu dữ liệu là kiểu tham chiếu: truyền bằng tham Kiếu dữ liệu là kiểu tham chiếu: truyền bằng tham
chiếuchiếu

 OverloadingOverloading: các phương thức trong : các phương thức trong
cùng một class có cùng tên nhưng khác cùng một class có cùng tên nhưng khác
danh sách tham số.danh sách tham số.
 OOverriding:verriding: các phương thức giống các phương thức giống
nhau nhưng được khai báo trong các lớp nhau nhưng được khai báo trong các lớp
khác nhau có quan hệ kế thừa.khác nhau có quan hệ kế thừa.
Phương thức [3]Phương thức [3]
 Ví dụVí dụ
void f(int i) { … }void f(int i) { … }
void g(My_Class o) { … }void g(My_Class o) { … }
Truyền tham trịTruyền tham trị
int k=5;int k=5;int k=5;int k=5;
f(5);f(5);
f(k);f(k);
Truyền tham chiếuTruyền tham chiếu
My_Class obj = new My_Class();My_Class obj = new My_Class();
g(obj);g(obj);
ConstructorConstructor
 Có cùng tên với tên lớp và không có kiểu Có cùng tên với tên lớp và không có kiểu
trả vềtrả về
 Được tự động gọi thực hiện ngay khi đối Được tự động gọi thực hiện ngay khi đối
tượng thuộc lớp được tạo ratượng thuộc lớp được tạo ra
 Phương thức khởi tạoPhương thức khởi tạo
Không tham số: phương thức khởi tạo mặc Không tham số: phương thức khởi tạo mặc
địnhđịnh
Có tham sốCó tham số
 Tùy thuộc vào cách khởi tạo đối tượng mà Tùy thuộc vào cách khởi tạo đối tượng mà
phương thức khởi tạo tương ứng được gọi phương thức khởi tạo tương ứng được gọi
thực hiệnthực hiện
Kế thừaKế thừa

NHANVIENNHANVIEN
String maNV;String maNV;
String hotenNV;String hotenNV;
……
double tinhLuong();double tinhLuong();
NVHDNVHD
int ngaycong;int ngaycong;
……
……
NVBCNVBC
 Lớp dẫn xuất kế thừa tập các thuộc tính, Lớp dẫn xuất kế thừa tập các thuộc tính,
phương thức được khai báo trong lớp cơ phương thức được khai báo trong lớp cơ
sởsở
double tinhLuong();double tinhLuong();
……
NVBCNVBC
int hsluong;int hsluong;
……
……
Kế thừa & ConstructorKế thừa & Constructor
 Lệnh gọi thực thi phương thức khởi tạo Lệnh gọi thực thi phương thức khởi tạo
của lớp cơ sở phải là câu lệnh đầu tiên của lớp cơ sở phải là câu lệnh đầu tiên
trong hàm khởi tạo của lớp dẫn xuấttrong hàm khởi tạo của lớp dẫn xuất
 Nếu trong phương thức khởi tạo của lớp Nếu trong phương thức khởi tạo của lớp  Nếu trong phương thức khởi tạo của lớp Nếu trong phương thức khởi tạo của lớp
dẫn xuất không gọi (tường minh) phương dẫn xuất không gọi (tường minh) phương
thức khởi tạo của lớp cơ sở thì phương thức khởi tạo của lớp cơ sở thì phương
thức khởi tạo mặc định của lớp cơ sở luôn thức khởi tạo mặc định của lớp cơ sở luôn
được tự động gọi thực hiệnđược tự động gọi thực hiện
Ví dụVí dụ
class A {class A {

A () {A () {
}}
class B extends A {class B extends A {
B () {B () {
[super();][super();]
......
}}
B (int i, int j) {B (int i, int j) {
}}
A (int i) {A (int i) {
}}
}//end class A}//end class A
super(i);super(i);
......
}}
B (int k) {B (int k) {
......
}}
}//end class B}//end class B
Overriding & Phạm vi truy cậpOverriding & Phạm vi truy cập
 Phạm vi truy cập của các phương thức Phạm vi truy cập của các phương thức
overriding trong lớp dẫn xuất phải bằng overriding trong lớp dẫn xuất phải bằng
hoặc rộng hơn trong lớp cơ sởhoặc rộng hơn trong lớp cơ sở
 Thứ tự truy xuấtThứ tự truy xuất Thứ tự truy xuấtThứ tự truy xuất
 publicpublic
 protectedprotected
 none (default)none (default)
 privateprivate
rộngrộng
hẹphẹp

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×