Khai báo lớp 1public class Human{ // lớp người private String name ; // tên private String birthday ; // ngày sinh private int gende ; // giới tính } // lớp sinh viên kế thừa từ lớp ngư
Trang 1Lập trình hướng đối tượng
Mảng các đối tượng
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)
Trang 2Nội dung
Mảng các đối tượng
Quan hệ liên kết giữa các lớp
Bài tập
Trang 3Mảng các đối tượng
Trang 4Khai báo lớp (1)
public class Human{ // lớp người
private String name ; // tên
private String birthday ; // ngày sinh
private int gende ; // giới tính
}
// lớp sinh viên kế thừa từ lớp người
public class Student extends Human{
private float finalNote ; // điểm trung bình chung
}
Trang 5Khai báo lớp (2)
public class Human{ // lớp người
private String name ; // tên
private String birthday ; // ngày sinh
private int gende ; // giới tính
public Human(String name , String birthday , int gende ){
}
}
// lớp sinh viên kế thừa từ lớp người
public class Student extends Human{
private float finalNote ; // điểm trung bình
public Student(String name , String birthday , int gende , float
finalNote ){
super( name , birthday , gende );
this finalNote = finalNote;
}
}
Trang 6Khai báo lớp (3)
public class Human{ // lớp người
private String name ; // tên
private String birthday ; // ngày sinh
private int gende ; // giới tính
public void show(){
System.out.println( "name: " + name + " birthday: " + birthday + " gende: " + gende);
}
}
// lớp sinh viên kế thừa từ lớp người
public class Student extends Human{
private float finalNote ; // điểm trung bình
public void show(){
System.out.println( "name: " + getName() + " birthday: " + getBirthday() + " gende: " + getGende() + " note: " + finalNote);
Trang 7Mảng đối tượng
public class Test{
public static void main(String args[]){
// khai báo các đối tượng của lớp sinh viên Student[] myStudents = new Student[10];
for ( int i=0; i<myStudents.length(); i++){
myStudents[i] = new Student( "A" , "1/1/2011" , 1, 7.64); // do something more
myStudents[i].show();
} }
}
Chạy chương trình:
>java Test
Kết quả là gì?
Trang 8Bài tập
Định nghĩa mỗi ô trong trò sudoku như một
lớp đối tượng
Cả ô số là một mảng hai chiều các đối
tượng
Trang 9Liên kết giữa các đối tượng
Trang 10Ví dụ (1)
Bài toán quản lí điểm của sinh viên:
Mỗi sinh viên có thể học nhiều môn học
Mỗi môn học có thể có nhiều sinh viên
Mỗi sinh viên, với mỗi môn học, có điểm
của môn học đó
Làm thế nào thiết kế các lớp tương ứng?
Trang 11Ví dụ (2)
Sinh viên :
Tên
Ngày sinh
Giới tính
Chức năng:
get/set tên
get/set ngày sinh
get/set giới tính
Show thông tin cá nhân
Môn học :
Tên
Hệ số Phòng học
Chức năng:
get/set tên get/set hệ số get/set phòng học Show thông tin môn học
Điểm :
Sinh viên Môn học
Điểm
Chức năng:
get/set Sinh viên get/set Môn học get/set điểm
Trang 12Ví dụ (3)
Trang 13Lớp Student
public class Student{ // lớp sinh viên
private String name ; // tên
private String birthday ; // ngày sinh
private int gende ; // giới tính
// các phương thức khởi tạo
// các phương thức get/set
public void show(){
System.out.println( "name: " + name + " birthday: " + birthday + " gende: " + gende);
}
}
Trang 14Lớp Subject
public class Subject{ // lớp môn học
private String name ; // tên
private String room ; // phòng học
private int coefficient ; // hệ số tín chỉ
// các phương thức khởi tạo
// các phương thức get/set
public void show(){
System.out.println( "name: " + name + " room: " + room + " coefficient: " + coefficient);
}
}
Trang 15Lớp Note
public class Note{ // lớp điểm
private Student student ; // sinh viên
private Subject subject ; // môn học
private int note ; // điểm môn học
// các phương thức khởi tạo
// các phương thức get/set
}
Trang 16Bài tập (1)
Viết các phương thức get/set cho các
thuộc tính student và subject
Viết chương trình nhập điểm cho 1 sinh
viên học 5 môn học
Viết chương trình nhập điểm cho một môn
học có 5 sinh viên
Trang 17Bài tập (2)
Vẽ sơ đồ quan hệ và viết các thuộc tính của
lớp cho: Bài toán đặt phòng khách sạn
Mỗi khách sạn có nhiều phòng
Mỗi phòng có thể có nhiều khách hàng
khác nhau ở các thời điểm khác nhau
Mỗi khách hàng có thể ở nhiều phòng khác
nhau ở các thời điểm khác nhau
Mỗi khách hàng chỉ ở một phòng khách
sạn tại một thời điểm nhất định
Trang 18Questions?