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

Bài giảng lập trình mạng bằng ngôn ngữ java chương 4 dương khai phong

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 (2.93 MB, 43 trang )

www.sites.google.com/site/khaiphong

Giáo viên: Dương Khai Phong
Email:

Lý thuyết: 45 tiết
Thực hành: 30 tiết

ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

Nội dung môn học
1

Tổng quan lập trình java

2

Lập trình hướng đối tượng

3

Lập trình giao diện đồ họa

4

Lập trình mạng cơ bản

5



Ôn tập

ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
A

Hướng đối tượng trong java (OOP)

B

Các khái niệm liên quan OOP

C

Các đặc điểm trong OOP

D

Các lớp cơ bản trong java

ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong


LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
A

Hướng đối tượng trong java (OOP)

 Java là ngôn ngữ lập trình thuần hướng đối tượng.
 Mọi thứ trong một hệ thống được viết bằng ngôn ngữ
java phải được triển khai là đối tượng.
Ví dụ: trong một chương trình quản lý giáo vụ nhà
trường sẽ bao gồm các đối tượng:







sinh viên (student)
giáo viên (teacher)
môn học (course)
thời khóa biểu (schedule)
lớp học (classroom)


ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

B











Các khái niệm liên quan OOP:
Đối tượng (object)
Lớp (class)
Thể hiện (instance)
Gói (package)
Từ khoá truy cập
Hàm khởi tạo (constructor)
Từ khoá this
Mảng các đối tượng
Từ khoá static, final, abstract, native
ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B


Các khái niệm liên quan OOP:

 Đối tượng: (object)
 Đối tượng đại diện cho một thực thể trong thế giới thật.
Ví dụ: 1 ô tô, 1 con người, 1 hình tròn, 1 khoản tiền
 Mỗi đối tượng có một identity, state, và các behavior duy
nhất (state xác định đối tượng, behavior xác định đối tượng
làm cái gì):
 State = tập các data field (properties)
 Behavior = tập các method (functions)
Ví dụ: 1 hình tròn có: Identity (Circle), State (bán kính
R), Behavior (Tính diện tích: ComputeArea)

ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Lớp: (class)
 Lớp là một thiết kế hay mẫu (prototype) chung cho các đối tượng
cùng kiểu.
 Một lớp bao gồm định nghĩa các thuộc tính và các phương thức
chung cho tất cả các đối tượng của cùng một loại nào đó.
Ví dụ: lớp SINHVIEN là một thiết kế chung cho nhiều đối
tượng sinh viên được tạo ra.

 Thể hiện: (instance)
 Mỗi đối tượng là một thể hiện cụ thể của một lớp.
 Gói: (package)
 Là một nhóm các class, interface, các gói khác đã được biên dịch
thành Java bytecode. (tương tự như thư mục trong windows)
ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Khai báo lớp: (class)
class Circle {
double radius = 1.0;
Circle(){
}
Circle(double newRadius){
radius = newRadius;
}
double findArea(){
return radius * radius * 3.14159;
}
}

Data field


Contructors

Methods

ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

Tạo đối tượng của lớp:
class Circle {…}
class Test{
public static void main(…){
Circle myCircle;
myCircle = new Circle();
}
}

Khai báo đối tượng
Tạo đối tượng tham chiếu

Khai báo và tạo đối tượng của lớp trong 1 dòng lệnh:
ClassName objectRef = new ClassName();
Ví dụ: Circle myCircle = new Circle();
ĐH Công nghệ Thông tin



www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Truy nhập đối tượng:
class Circle {…}
class Test{
public static void main(…){
Circle myCircle;
myCircle = new Circle();
myCircle.radius= 5.5;
double S;
S= myCircle.findArea();
}
}

Tham chiếu dữ liệu
Gọi phương thức

ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

B

Các khái niệm liên quan OOP:

 Từ khoá truy cập:


Mặc định: các lớp, biến hoặc dữ liệu có thể được
truy nhập bởi bất kỳ lớp nào trong cùng gói
(package).
 public: lớp, dữ liệu hay phương thức có thể được
truy nhập bởi tất cả các lớp trong bất kỳ gói nào.
 private: dữ liệu hoặc phương thức chỉ có thể được
truy nhập bởi lớp khai báo.
 protected: chỉ các lớp con của lớp đó và các lớp
trong cùng một gói mới được phép tạo các thể
hiện của lớp đó.
ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Hàm khởi tạo: (Constructor)
class Circle{
double radius = 1.0;

Circle(){
Constructor là một dạng đặc
}
Circle(double newRadius){
biệt của phương thức, được
radius = newRadius;
gọi để xây dựng đối tượng.
}
double findArea(){
return radius * radius * 3.14159;
}
}
ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Hàm khởi tạo: (Constructor)
 Đặc điểm của Constructor:
 Một constructor không có tham số được gọi
là default constructor.
 Các Constructor phải có cùng tên với class
của nó.
 Các Constructor không có kiểu dữ liệu trả
về, kể cả kiểu void.

 Các Constructor được gọi khi sử dụng toán
tử new để tạo một đối tượng. Nó đóng vai
trò khởi tạo đối tượng.
ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Từ khoá this:
 Dùng this để:
 thay thế cho đối tượng hiện tại.
 gọi các constructor khác của đối tượng.
class Circle{
double radius = 1.0;
Circle(double radius){
this.radius = radius;
}
}

Dùng từ khoá this để
chỉ rõ radius của đối
tượng hiện tại

ĐH Công nghệ Thông tin



 Ví dụ: xây dựng lớp Rectangle như lược đồ UML sau:
Rectangle
- width: double
- height: double
- color: String

chiều rộng hình chữ nhật
chiều dài hình chữ nhật
màu hình chữ nhật

+ Rectangle()
+ Rectangle(width: double, height:
double, color: String)
+ getWidth(): double
+ setWidth(width: double): void
+ getHeight(): double
+ setHeight(height: double): void
+ getColor(): String
+ setColor(width: String): void
+ findArea(): double
+ findPerimeter(): double

Tạo một HCN với c.dài = 1, c.rộng = 1
Tạo một HCN với c.dài và c.rộng
xác định trong tham số
Trả về chiều rộng HCN
Thiết lập chiều rộng mới cho HCN
Trả về chiều dài HCN
Thiết lập chiều dài mới cho HCN

Trả về màu của HCN
Thiết lập màu mới cho HCN
Trả về diện tích HCN
Trả về chu vi HCN

Ứng dụng viết lớp testRectangle để kiểm tra lớp Rectangle đã
xây dựng, gồm:
 Tạo đối tượng Rectangle. Ấn định chiều dài 40 và chiều
rộng 4, màu vàng.
 Hiển thị các thuộc tính của đối tượng
 tính diện tích hình chữ nhật.


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Mảng các đối tượng:
 Một mảng các đối tượng thực chất là mảng các biến tham chiếu.
 Các bước sử dụng mảng các đối tượng:
 Khai báo và tạo mảng các đối tượng:

Circle[] circleArray = new Circle[10];
 Khởi tạo cho từng đối tượng trong mảng:
for (int i=0; icircleArray[i] = new Circle();
}

ĐH Công nghệ Thông tin


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
B

Các khái niệm liên quan OOP:

 Từ khoá static, final, abstract, native:
 static: cho biết dữ liệu và phương thức là chung cho lớp chứ
không phải của thể hiện (instance).
 final: cho biết một lớp, dữ liệu hay phương thức là cuối, không
được phép overridden bởi một thành phần con nào khác.
 abstract: cho biết một lớp hay phương thức là trừu tượng không
cài đặt gì cả.

 native: cho biết một phương thức được lập trình bởi một ngôn
ngữ lập trình khác. (Ví dụ: native myMethod();  phương thức
myMethod có thể được tạo bởi một ngôn ngữ lập trình khác java)
ĐH Công nghệ Thông tin


 Ví dụ 1: từ khoá static dùng cho thuộc tính dữ liệu

Biến dữ liệu của
thể hiện instance
Biến dữ liệu của lớp



 Ví dụ 2: từ khoá static giữa dữ liệu và phương thức

Error: phương thức static không
được phép truy cập thành dữ liệu
không thuộc static.


 Ví dụ 3: sử dụng phương thức tĩnh static

Đối với phương thức
non-static cần phải có
đối tượng gọi trước nó

Đối với phương thức
static KHÔNG CẦN
phải có đối tượng gọi
trước nó


 Ví dụ 4: từ khoá final cho thuộc tính dữ liệu

Error: đối với thành phần dữ liệu có từ khoá final thì thành phần
dữ liệu đó được xem như hằng số (không gán lại giá trị mới)

 Ví dụ 5: từ khoá abstract cho phương thức
Error: từ khoá abstract
cho biết phương thức
hello là trừu tượng thì
không được phép định

nghĩa. Chỉ có lớp dẫn
xuất mới định nghĩa.


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
C

Các đặc điểm trong OOP:

 Hỗ trợ những nguyên tắc cơ bản của lập trình hướng đối tượng
 Tính đóng gói (encapsulation): là cơ chế che dấu đi một phần
các chi tiết cài đặt, cũng như phần dữ liệu cục bộ của nó, và
chỉ công bố ra ngoài những gì cần công bố để trao đổi với các
đối tượng khác
 Tính kế thừa (inheritance): là sự tái sử dụng các lớp có các
đặc tính chung với nhau để tạo ra các lớp mới.
 Tính đa hình (polymorphism): là cơ chế cho phép cài đặt các
lớp dẫn xuất khác nhau từ một lớp nguồn. Một phương thức
của đối tượng có thể có nhiều kiểu thể hiện khác nhau.

ĐH Công nghệ Thông tin


 Ví dụ 1: khai báo và sử dụng package để thể hiện tính đóng
gói
Cách khai báo một lớp thuộc về một gói package nào đó trong java.
Tập tin triangle.java


Sử dụng gói đã tạo.
Tập tin testpackage.java

Tập tin rectangle.java


 Ví dụ 2: Sử dụng tính kế thừa trong java
Xây dựng lớp cơ sở (Ví dụ: lớp person)

Xây dựng lớp dẫn xuất (Ví dụ: lớp student)
Extends: từ khoá khai báo
kế thừa
Super: từ khoá gọi
phương thức của lớp cha.


www.sites.google.com/site/khaiphong

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
C

Các đặc điểm trong OOP:

 Nhận xét tính kế thừa (inheritance):
 Thừa kế là một quan hệ IS-A (còn thể hiện của một lớp là một
quan hệ HAS-A)
Ví dụ: có lớp cơ sở là Animals  các lớp dẫn xuất như: lớp
Dog, lớp Cat (Dog, Cat IS A animals), còn các thể hiện của
Dog, Cat sẽ có thể các tính chất của animals (HAS-A).
 Một lớp có từ khoá final trước từ khoá class sẽ không được phép

kế thừa.
 Một lớp là final thì không là lớp trừu tượng
abstract final class myclass{…} // Error
 Trong java không có khái niệm lớp tĩnh: static class myclass()
ĐH Công nghệ Thông tin


×