Thứ Năm, 5 tháng 1, 2012

Vấn đề đa hình trong Java – Phân biệt abstract và interface

abstract (lớp trừu tượng):
class không cụ thể, chứa những method nhưng không có dòng lệnh thi hành phương thức đó, việc thi hành method được giao lại cho các lớp kế thừa lớp đó
Một lần nữa chúng ta khẳng định abstract là một class không thể biết và định nghĩa các phương thức nhưng không có sự thi hành cụ thể, việc thi hành các phương thức này được giao lại cho các class kế thừa.
Ví dụ:
thức ăn là một class trừu tượng cho các class cụ thể như cơm, cháo.
Class thức ăn có phương thức mùi vị nhưng khi nói mùi vị của thức ăn chung chung ta không định nghĩa được, nhưng class cơm kế thừa từ class thức ăn thì có mùi vị là khô, class cháo có mùi vị là có mùi vị là lỏng
interface (giao diện):
Interface là giao diện của một lớp đối tượng. Interface của một class là phần đặc tả các method của class đó nhưng không bao gồm phần cài đặt, việc cài đặt các method này được giao lại cho các class kế thừa từ các interface này.
Một class kế thừa một interface nào thì bắt buộc phải cài đặt tất cả các method của interface đó
Một đối tượng có thể đưa ra nhiều interface của mình, và class kế thừa interface nào phải cài đặt đầy đủ các method của interface đó. Java không cho phép đa kế thừa (một class của Java không thể có hơn một class cha) nhưng nhờ đặc điểm này (interface) cho phép cài đặt nhiều giao diện để thừa hưởng thêm các vùng và method của những interface này.
Interface được khai báo như là một lớp nhưng các thuộc tính là hằng (final) và các phương thức là abstract (có nghĩa là các phương thức đều rỗng dù không có từ khóa abstract) và trong các lớp sử dụng interface phải cài đặt các phương thức này
Để một class kế thừa một giao diện ta dùng từ khóa implements (thay vì extends)

Đề bài: Viết chương trình quản lý thông tin học sinh. Gồm các thông tin sau: Họ tên, Năm sinh, Giới tính, Điểm HK 1, điểm HK 2, điểm tổng kếtxếp loại.
Trong đó:
-         Họ tên: họ tên đầy đủ của học sinh
-         Năm sinh: năm học sinh ra đời.
-         Giới tính: là Nam hoặc Nữ
-         Điểm học kỳ 1,  điểm học kỳ 2: điểm trung bình học kỳ 1, học kỳ 2 của học sinh (chỉ lấy 1 chữ số hàng thập phân)
-         Điểm tổng kết được tính bằng: (Điểm HK1  + 2* (Điểm HK2 ))/3
(Lưu ý: kết quả lấy 1 chữ số hàng thập phân).
-         Xếp loại được tính như sau:
o   9 ≤ điểm tổng kết  ≤ 10 là xuất sắc.
o   8 ≤ điểm tổng kết  < 9 là giỏi.
o   6.5 ≤ điểm tổng kết  < 8 là khá.
o   5 ≤ điểm tổng kết  < 6.5 là trung bình.
o   3.5  ≤ điểm tổng kết  <5 là yếu.
o   Điểm tổng kết < 3.5 là kém.
Ví dụ:
Họ tên
Năm sinh
Giới tính
Điểm HK1
Điểm HK2
Tổng kết
Xếp loại
Trần Văn Tèo
1996
Nam
8
7.5
7.7
Khá
Nguyễn Thị Tý
1996
Nữ
9
8
8.3
Giỏi
Nguyễn Thị Sún
1997
Nữ
5
6
5.7
Trung bình
Em hãy sử dụng chương trình trên để quản lý thông tin của lớp mình trong năm học lớp 10 và lập trình thêm nhằm thực hiện các yêu cầu sau:
1.      Xuất ra thông tin chi tiết của từng học sinh.
Ví dụ:
THONG TIN CHI TIET CUA TUNG HOC SINH
1. Hoc sinh thu nhat:
      + Ho ten: Nguyen Van A
       + Nam sinh: 1996
      + Gioi tinh: Nam
      + Diem HK1: 7.0
      + Diem HK2: 8.0
      + Diem tong ket: 7.7
      + Xep loai: Kha

2. Hoc sinh thu hai:
     + Ho ten: Nguyen Thi No
     + Nam sinh: 1994
     + Gioi tinh: Nu
     + Diem HK1: 8.0
     + Diem HK2: 8.0
     + Diem tong ket: 8.0
     + Xep loai: Gioi

2.      Xuất ra màn hình họ tên và năm sinh của các học sinh nữ có tuổi > 15
Ví dụ:
DANH SACH HOC SINH NU CO DO TUOI > 15
* Hoc sinh nu thu nhat:
        + Ho ten: Nguyen Thi No
                    + Nam sinh: 1994
* Hoc sinh nu thu hai:
        + Ho ten: Tran Nhu Quynh
+ Nam sinh: 1993

3.      Xuất ra màn hình toàn bộ thông tin của những học sinh có học lực yếu trong học kỳ 1.
Ví dụ:
DANH SACH HOC SINH YEU TRONG HOC KY 1
* Hoc sinh nu thu nhat:
      + Ho ten: Nguyen Thi No
                  + Nam sinh: 1994
                  + Diem HK1: 2.0
                  + Diem HK2: 8.0
                  + Diem tong ket: 6.0
                  + Xep loai: TB
* Hoc sinh nu thu hai:
      + Ho ten: Tran Nhu Quynh
+ Nam sinh: 1993
                  + Diem HK1: 7.0
                  + Diem HK2: 8.0
                  + Diem tong ket: 7.7
                  + Xep loai: Kha

4.      Xuất ra màn hình họ tên của những học sinh có kết quả học tập ở học kỳ 2 tiến bộ hơn học kỳ 1 và xếp loại cả năm loại giỏi.
Ví dụ:
DANH SACH HOC SINH TIEN BO TRONG HOC KY II
 Nguyen Thi No + Tran Nhu Quynh

5.      Sắp xếp danh sách học sinh theo thứ tự giảm dần của điểm tổng kết.
Ví dụ:
* Hoc sinh thu nhat: Nguyen Van A, Diem tong ket: 8.7
* Hoc sinh thu hai: Nguyen Thi No, Diem tong ket: 8.0

6.      Xuất ra màn hình họ tên của học sinh có điểm tổng kết lớn nhất và học sinh có điểm tổng kết nhỏ nhất.
Ví dụ:
HOC SINH GIOI NHAT LOP:
*********************************
  Nguyen Van A, Diem tong ket: 8.9  
*********************************

HOC SINH CO DIEM THAP NHAT LOP!!!!
  Nguyen Thi No, Diem tong ket: 4.0

7.      Xuất ra màn hình những học sinh có họ là “Nguyen”.
Ví dụ
DANH SACH NHUNG HOC SINH CO HO LA NGUYEN
+  NGUYEN THI NO
+ NGUYEN VAN A
BẢNG 1 - NHÓM TỰ ĐÁNH GIÁ
Stt
Tên thành viên
Công việc được giao
Mức độ hoàn thành (%)
1



2



3



4



5



6



7









BẢNG 2- ĐÁNH GIÁ CỦA GIÁO VIÊN
Stt
Mục đánh giá

Tiêu chí đánh giá
Tổng điểm

Xuất đầy đủ thông tin
Thông tin chính xác
Xuất đúng định dạng
Có sự sáng tạo

Câu 1 (20đ)
10
5
5



Câu 2 (10đ)






Câu 3 (15đ)






Câu 4 (15đ)






Câu 5(20đ)






Câu 6(10đ)






Câu 7(10đ)






Sáng tạo







File đính kèm: