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

bài giảng lập trình java cơ bản chương 3 gv võ hoàng phương dung chương 3 lớp trong java

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 (301.48 KB, 55 trang )

L
L


P TRÌNH JAVA
P TRÌNH JAVA
Chương 3
LỚP TRONG JAVA
GV: Võ Hoàng Phương Dung
2/25
N
N


i dung
i dung

Các khái niệm trong lập trình hướng đối tượng

Khai báo lớp

Các lớp lồng nhau

Lớp Abstract

Gói

Phạm vi truy cập
 Interface

Thừa kế và đa hình



Đối tượng (Object)
• Thuộc tính (fields)
• Hành vi (methods)
3/25
C
C
á
á
c kh
c kh
á
á
i ni
i ni


m
m
Rectangle
Width: 50cm
Height: 30cm
Color: Yellow
Draw()
changeSize()

Thuộc tính (fields) là dữ liệu trình bày các đặc
điểm về một đối tượng
• Mọi đối tượng của một lớp phải có cùng các thuộc
tính nhưng giá trị của các thuộc tính thì có thể khác

nhau
• Một thuộc tính của đối tượng có thể nhận các giá trị
khác nhau tại các thời điểm khác nhau

Ví dụ: đối tượng hình chữ nhật có các thuộc tính
chiều dài, chiều rộng.
4/25
C
C
á
á
c kh
c kh
á
á
i ni
i ni


m
m

Phương thức (method) là cách đáp ứng chức
năng tác động lên dữ liệu của đối tượng
• Các phương thức xác định cách thức hoạt động
của một đối tượng và được thực thi khi đối tượng
cụ thể được tạo ra

Ví dụ: các hoạt động chung của một lớp hình
chữ nhật là tính chu vi và diện tích.

5/25
C
C
á
á
c kh
c kh
á
á
i ni
i ni


m
m

Lớp (Class)
• Là tập hợp các đối tượng cùng loại
• Là khuôn mẫu tạo ra đối tượng
• Là 1 kiểu dữ liệu phần mềm
6/25
C
C
á
á
c kh
c kh
á
á
i ni

i ni


m
m
Lớp: Rectangle
Đối tượng: RectangleA
Đối tượng: RectangleB

Các tính chất của lập trình hướng đối tượng
• Tính đóng gói
• Tính thừa kế
• Tính đa hình
7/25
C
C
á
á
c kh
c kh
á
á
i ni
i ni


m
m

Tính đóng gói

• Đóng gói là tiến trình che giấu việc thực thi chi
tiết một đối tượng
• Giới hạn quyền truy cập đến các thành phần của
đối tượng
• Cơ chế cho việc che dấu thông tin
8/25
C
C
á
á
c kh
c kh
á
á
i ni
i ni


m
m

Thừa kế (Inheritance)
• Xây dựng lớp mới (subclass) từ lớp cũ (superclass)
• Lớp mới có tất cả thuộc tính và phương thức của
lớp cũ và thêm vào một số đặc tính riêng khác.
• Các lớp con có thể định nghĩa lại các phương thức
được thừa kế để xử lý các thuộc tính riêng của
chúng
• Ví dụ: Lớp xe đạp leo núi và lớp xe đạp đua là
những lớp con của lớp xe đạp. Lớp xe đạp được

gọi là lớp cha
9/25
C
C
á
á
c kh
c kh
á
á
i ni
i ni


m
m

Tính đa hình
• Phương thức cùng tên có thể được thực hiện khác
nhau đối với các đối tượng, các lớp khác nhau.
• Ví dụ: hai lớp Hình chữ nhật và hình tròn cùng có
các phương thức tính chu vi, diện tích. Nhưng
cách tính chu vi của đối tượng hình chữ nhật và
hình tròn lại khác nhau.
10/25
C
C
á
á
c kh

c kh
á
á
i ni
i ni


m
m

Cú pháp:
class name{
// Khai báo thuộc tính
// Khai báo phương thức
}
11/25
Khai b
Khai b
á
á
o l
o l


p
p

Khai báo thuộc tính
• Cú pháp: <type><name>[=value];
• Ví dụ

class Circle {
double radius = 1.0;
int color;
}
12/25
Khai b
Khai b
á
á
o l
o l


p
p

Khai báo phương thức :
• Cú pháp:
<returned value><name> (<parameters>){
<code>;
}
• Ví dụ
public class Circle {
double radius = 1.0;
public double findArea(){
return radius * radius * 3.14159;
}
}
13/25
Khai b

Khai b
á
á
o l
o l


p
p

Khai báo phương thức khởi tạo
• Constructor (phương thức tạo): là một dạng đặc
biệt của phương thức, được gọi để xây dựng đối
tượng

Không có giá trị trả về

Phải cùng tên với tên lớp
• Ví dụ:
class Circle {
double radius = 1.0;
Circle(){}
Circle(double rad){
radius = rad;
}
}
14/25
Khai b
Khai b
á

á
o l
o l


p
p

Ví dụ
class Circle {
double radius = 1.0;
int color;
Circle(){}
Circle(double newRadius, int newColor){
radius = newRadius;
color=newColor;
}
void setRadius(double rad){radius=rad;}
double getRadius(){return radius;}
double findArea(){
return radius * radius * 3.14159;
}
}
15/25
Khai b
Khai b
á
á
o l
o l



p
p
Khai báo & tạo đối tượng

Khai báo đối tượng
• Cú pháp: className objectName;
• Ví dụ: Circle myCircle;

Tạo đối tượng
• Cú pháp:
objectName = new className();
• Ví dụ:
myCircle=new Circle();
myCircle=new Circle(5);
16/25

Khai báo & tạo đối tượng
• Cú pháp: className objName=new className();
• Ví dụ:
Circle myCircle=new Circle();
Circle myCircle=new Circle(5);
17/25
Khai báo & tạo đối tượng

Tham chiếu dữ liệu của đối tượng:
• Cú pháp: objectReference.data
• Ví dụ:
myCircle.radius


Gọi phương thức của đối tượng:
• Cú pháp: objectReference.method
• Ví dụ:
myCircle.findArea()
myCircle.setRadius(6);
18/25
Khai báo & tạo đối tượng
Ví dụ
public class Main {
public static void main(String args[]) {
Circle myCircle=new Circle(2,1);
doule area = myCircle.findArea()
System.out.println("Area is " + area);
}
}
19/25

Là 1 tham chiếu đến đối tượng hiện tại

Ví dụ
class Circle {
double radius = 1.0;
int color;
Circle(double radius, int color){
this.radius = newRadius;
this.color=newColor;
}
Circle(newColor){
this(0,newColor);

}
}
20/25
Mở rộng – Từ khóa this

Thuộc tính static
• Ví dụ:
static double radius=1.0
;

Phương thức static
• Ví dụ:
static double findArea(){
return radius * radius * 3.14159;
}
 Có thể được truy cập qua tên lớp
• Ví dụ:
Circle.radius;
Circle.findArea();
21/25
Mở rộng – Từ khóa static

Tất cả các đối tượng cùng 1 lớp chia sẻ các
biến static trong lớp đó

Phương thức static
• Chỉ có thể gọi các phương thức static khác
• Chỉ truy cập thuộc tính static
• Không thể dùng từ khóa this để truy cập
22/25

Mở rộng – Từ khóa static

Java cho phép định nghĩa 1 lớp bên trong 1 lớp
khác

Cấu trúc
class OuterClass {

static class StaticNestedClass {

}
class InnerClass {

}
}
23/25
Các lớp lồng nhau

Ví dụ
class Outer {
int outer_x = 100;
void test() {
Inner inner = new Inner();
inner.display();
}
class Inner {
void display() {
System.out.println("display: outer_x = " + outer_x); }
}
}

public class Main {
public static void main(String args[]) {
Outer outer = new Outer();
outer.test();
}
}
24/25
Các lớp lồng nhau

Lớp bên ngoài không thể truy cập dữ liệu của
lớp bên trong trực tiếp

Ví dụ
public class Main {
int outer_x = 100;
class Inner {
int y = 10;
void display() {
System.out.println("display: outer_x = " + outer_x);
}
}
void showy() {
System.out.println(y);
}
}
25/25
Các lớp lồng nhau

×