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

Bài giảng lập trình hướng đối tượng đối tượng và lớp TS nguyễn mạnh hùng

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 (338.63 KB, 23 trang )

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

Đối tượng và lớp
Giảng viên: TS. Nguyễn Mạnh Hùng
Học viện Công nghệ Bưu chính Viễn thông (PTIT)


Nội dung






Đối tượng
Trừu tượng hóa đối tượng thành lớp
Khai báo lớp trong Java
Khai báo và sử dụng đối tượng
Bài tập

2


Đối tượng và lớp


Đối tượng (1)
Một chiếc CIVIC:
Hãng: HONDA
Màu:
bạc


Dung tích xilanh: 2.4
Giá : 30 000$
Chạy theo hướng xác định
Dừng lại
Tự động báo động
Kính chống đạn
Túi hơi

4


Đối tượng (2)
Một chiếc CIVIC:
Hãng: HONDA
Màu:
bạc
Dung tích xilanh: 2.4
Giá : 30 000$
Tự động báo động
Chạy theo hướng xác định
Dừng lại
Kính chống đạn
Túi hơi

Tên đối tượng: CIVIC
Các đặc điểm:
Hãng: HONDA
Màu:
bạc
Dung tích xilanh: 2.4

Giá : 30 000$
Các tính năng:
Tự động báo động
Chạy theo hướng xác định
Dừng lại
Kính chống đạn
Túi hơi

5


Trừu tượng hóa đối tượng (1)
Tên đối tượng: CIVIC

Tên chung: Xe hơi

Các đặc điểm:
Hãng: HONDA
Màu:
bạc
Dung tích xilanh: 2.4
Giá : 30 000$

Các đặc điểm chung:
Hãng sản xuất:
Màu xe:
Dung tích xilanh:
Giá :

Các tính năng:

Tự động báo động
Chạy theo hướng xác định
Dừng lại
Kính chống đạn
Túi hơi

Các tính năng chung:
Chạy theo hướng xác định
Dừng lại

6


Trừu tượng hóa đối tượng (2)
Tên chung: Xe hơi

Tên: Xe hơi

Các đặc điểm chung:
Hãng sản xuất:
Màu xe:
Dung tích xilanh:
Giá :

Các thuộc tính:
Hãng sản xuất:
Màu xe:
Dung tích xilanh:
Giá :


Các tính năng chung:
Chạy theo hướng xác định
Dừng lại

Các hành động:
Chạy theo hướng xác định
Dừng lại

7


Bài tập
Trừu tượng hóa các đối tượng để thành lớp:

Người

Sinh viên

Môn học

8


Khai báo lớp trong Java


Khai báo lớp
public class Car{
...
}


Khai báo phạm vi

Khai báo tên lớp

Từ khóa cho
khai báo lớp

10


Khai báo thuộc tính cho lớp
public class Car{
private String productor;
private String color;
private float capacity;
private int price;
}

//
//
//
//
//

lớp xe ô tô
tên nhà sản xuất
màu xe
dung tích xilanh
giá xe


11


Hàm khởi tạo
public class Car{
private String productor;
private String color;
private float capacity;
private int price;

//
//
//
//
//

lớp xe ô tô
tên nhà sản xuất
màu xe
dung tích xilanh
giá xe

public Car(){
productor = "";
color = "";
capacity = 0.0;
price = 0;
}
}


12


Nạp chồng hàm khởi tạo
public class Car{
private String productor;
private String color;
private float capacity;
private int price;

//
//
//
//
//

lớp xe ô tô
tên nhà sản xuất
màu xe
dung tích xilanh
giá xe

public Car(){
productor = "";
color = "";
capacity = 0.0;
price = 0;
}
public Car(String v1, String v2, float v3, int v4){

productor = v1;
color = v2;
capacity = v3;
price = v4;
}
}

13


Biến this
public class Car{
private String productor;
private String color;
private float capacity;
private int price;

//
//
//
//
//

lớp xe ô tô
tên nhà sản xuất
màu xe
dung tích xilanh
giá xe

public Car(){

productor = "";
color = "";
capacity = 0.0;
price = 0;
}
public Car(String productor, String color, float capacity,
int price){
this.productor = productor;
this.color = color;
this.capacity = capacity;
this.price = price;
}
}
14


Phương thức của lớp
public class Car{
private String productor;
private String color;
private float capacity;
private int price;

//
//
//
//
//

lớp xe ô tô

tên nhà sản xuất
màu xe
dung tích xilanh
giá xe

public void setProductor(String productor){
this.productor = productor;
}
public String getProductor(){
return productor;
}
}

15


Đóng gói dữ liệu
public class Car{
private String productor;
private String color;
private float capacity;
private int price;

//
//
//
//
//

lớp xe ô tô

tên nhà sản xuất
màu xe
dung tích xilanh
giá xe

public void setProductor(String productor){
this.productor = productor;
}
public String getProductor(){
return productor;
}
}

Không cho truy nhập
trực tiếp vào dữ liệu

Chỉ cho truy nhập
gián tiếp qua phương
thức

16


Bài tập


Định nghĩa lớp sinh viên với các thuộc tính:
mã sinh viên
Họ và tên
Tuổi

Điểm tổng kết
Mức học bổng
Viết phương thức xác định mức học bổng
của sinh viên
17


Khai báo và sử dụng đối tượng


Khai báo/khởi tạo đối tượng
public class Test{
public static void main(String args[]){
Car myCar; // khai báo đối tượng
// khởi tạo đối tượng
myCar = new Car();
System.out.println(myCar.getProductor());
// khởi tạo lại đối tượng
myCar = new Car("HONDA", "White", 2.4, 30000);
System.out.println(myCar.getProductor());
}
}
Chạy chương trình:
>java Test
kết quả là gì?

19


Biến static

public class Car{
// lớp xe ô tô
private String productor; // tên nhà sản xuất
private String color;
// màu xe
private float capacity;
// dung tích xilanh
private int price;
// giá xe
static int sold;
// số xe đã bán
}
public class Test{
public static void main(String args[]){
Car myCar, hisCar;
System.out.println(Car.sold);
hisCar = new Car();
hisCar.sold++;
myCar = new Car("HONDA", "White", 2.4, 30000);
myCar.sold++;
System.out.println(Car.sold);
}
}

20


Lệnh nào lỗi?
public class Test{
public static void main(String args[]){

1:
Car myCar, hisCar;
2:

System.out.println(myCar.getProductor());

3:

myCar = new Car("HONDA", "White", 2.4, 30000);

4:

System.out.println(myCar.productor);

5:

hisCar = myCar;

6:

System.out.println(hisCar.getProductor());

7:

System.out.println(myCar.setProductor("HONDA"));
}

}

21



Bài tập




Viết chương trình nhập dữ liệu sinh viên,
theo lớp đã định nghĩa, từ bàn phím
In thông tin sinh viên ra màn hình, bao gồm
cả mức học bổng

22


Questions?



×