Bài giảng Lập trình Java - Chương 2: Lập trình hướng đối tượng ngôn ngữ Java

pptx
Số trang Bài giảng Lập trình Java - Chương 2: Lập trình hướng đối tượng ngôn ngữ Java 50 Cỡ tệp Bài giảng Lập trình Java - Chương 2: Lập trình hướng đối tượng ngôn ngữ Java 2 MB Lượt tải Bài giảng Lập trình Java - Chương 2: Lập trình hướng đối tượng ngôn ngữ Java 10 Lượt đọc Bài giảng Lập trình Java - Chương 2: Lập trình hướng đối tượng ngôn ngữ Java 61
Đánh giá Bài giảng Lập trình Java - Chương 2: Lập trình hướng đối tượng ngôn ngữ Java
4.6 ( 8 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

LOGO Phát triển UD CSDL 2 Chương 2: Lập trình hướng đối tượng ngôn ngữ JAVA Nội dung • Kế thừa – Khai báo kế thừa – Phạm vi sử dụng private, protected, public – Một số từ khoá thông dụng • Final method & Final Class • Abstract class & Interface • Array List • Tạo tài liệu Java doc • Tạo UML Class diagrams Khai báo kế thừa 1 2 3 4 5 package tenpackage; public class TenLopCha { //Khai báo các thuộc tính //Khai báo các phương thức } 1 2 3 4 5 package tenpackage; public class TenLopCon extends TenLopCha{ //Khai báo các thuộc tính //Khai báo các phương thức } Object là lớp cơ sở nhất trong Java. Trong trường hợp một lớp không khai báo kế thừa từ bất kỳ lớp nào thì lớp Object chính là lớp cha của nó Khai báo kế thừa 1 2 3 4 5 package quanly; public class GiangVien { //Khai báo các thuộc tính //Khai báo các phương thức } 1 2 3 4 5 package bt1; public class GiangVienCoHuu extends GiangVien{ //Khai báo các thuộc tính //Khai báo các phương thức } Phạm vi • protected: Được sử dụng trực tiếp: – Bên trong lớp – Các lớp cùng package – Các lớp con (cùng hoặc khác package) • private: – Được sử dụng trực tiếp bên trong lớp • public: Được sử dụng trực tiếp – Bên trong lớp – Bên ngoài lớp – Các lớp con cùng hoặc khác package + Các lớp khác cùng hoặc khác package Một số từ khoá thông dụng • Truy xuất lớp hiện tại: this • Truy xuất đến lớp cha: super • Chỉ định phương thức khởi tạo của lớp cha: super(), super(…) • Cài đặt lại phương thức của lớp cha @Override public KieuDuLieu tenPhuongthuc(…) Lưu ý: phương thức static không được phép Override • Gọi phương thức của lớp cha: super.tenPhuongThuc(...) • Kiểm tra thể hiện của đối tượng: instanceOf Một số từ khoá thông dụng • instanceOf 1 2 3 4 5 6 7 8 9 A a = new A(); B b = new B(); if (a instanceof A) { System.out.println(“a is an instance of A"); } if (b instanceof B) { System.out.println(“b is an instance of B"); } Final method • Final Method là một phương được khai báo với từ khóa final 1 2 3 4 //Ví dụ: final public void TenPhuongThuc () { ... } • Final Method không được phép override ở lớp kế thừa • Các phương thức tạo không được phép khai báo với từ khóa final Final method 1 2 3 4 5 6 public class GiangVien { ... private String name; public final String getName () {. . .} public final void setName () {. . .} } 1 2 3 4 5 6 7 8 public class GiangVienCoHuu extends GiangVien{ ... @Override public String getName(){ . . .} 🗷 @Override } public void setName(){ . . .} 🗷 Lỗi: Không thể Override một phương thức final Final Class • Final Class là một lớp được khai báo với từ khóa final • Final Class không cho phép kế thừa • Ví dụ: – Integer, Double, Float, Long là các Final Class – A là Final Class 🡪 Các l ớp khác không thể kế thừa được lớp A Final Class 1 2 3 public final class A{ ... } 1 2 3 public class B extends A{ 🗷 ... } Lỗi: Không thể kế thừa một lớp final Abstract Class • Hình ảnh: Abstract Class • Abstract Class là một lớp được khai báo với từ khóa abstract. 1 2 3 public abstract class GiangVien { … } • Abstract Class có thể chứa các phương thức abstract hoặc phương thức có cài đặt • Phương thức abstract là phương thức không có cài đặt 1 2 3 4 5 public abstract class GiangVien { ... public void nhap(){...} public abstract double tinhLuong(); } Abstract Class • Abstract Class không thể tạo thể hiện GiangVien gv = new GiangVien() 🗷 • Abstract Class có thể giữ tham chiếu đối tượng của các Sub Class 1 2 3 4 GiangVien gv = new GiangVienCoHuu() 🗹 GiangVienCoHuu gvch = new GiangVienCoHuu() 🗹 GiangVien gv = new GiangVienThinhGiang() 🗹 GiangVienThinhGiang gvtg = new GiangVienThinhGiang() 🗹 Abstract Class • Nếu các Sub Class không phải là Abstract Class thì: – Bắt buộc phải cài đặt lại tất cả các phương thức abstract của lớp cha. – Không bắt buộc cài đặt lại các phương thức không là abstract của lớp cha. • Nếu các Sub Class là Abstract Class thì không bắt buộc phải cài đặt lại phương thức abstract / không abstract của lớp cha Abstract Class 1 package qlgv; 2 public abstract class GiangVien{ 3 //Khai báo các thuộc tính 4 ... 5 //Khai báo và cài đặt các phương thức không là abstract 6 ... 7 //Khai báo các phương phức abstract 8 public abstract double tinhLuong(); 9 } Abstract Class • Sub Class GiangVienCoHuu bắt buộc cài đặt lại phương thức abstract tinhLuong() của lớp GiangVien. • Sub Class GiangVienThinhGiang bắt buộc phải cài đặt lại phương thức abstract tinhLuong() của lớp GiangVien. Abstract Class 1 package qlgv; 2 public class GiangVienCoHuu extends GiangVien{ 3 ... 4 @Override 5 public double tinhLuong() 6 { 7 ... 8 9 } } Abstract Class 1 package qlgv; 2 public class GiangVienThinhGiang extends GiangVien{ 3 ... 4 @Override 5 public double tinhLuong() 6 { 7 ... 8 9 } } Interface • Được khai báo với từ khóa interface public interface Hinh{…} • Interface chứa: – Các hằng số – Các phương thức abstract (không có cài đặt) 1 public interface Hinh{ 2 public static final double PI=3.14; 3 public void tinhDienTich(); 4 public void tinhChuVi(); 5 } Interface • Một interface có thể kế thừa từ nhiều interface khác 1 public interface IA{…} 2 public interface IB{…} 3 public interface IC extends IA, IB {…} 1 public class A{…} 2 public interface IB{…} 3 public interface IC{…} 4 public class B extends A implements IB, IC{…} • Một lớp có thể kế thừa từ 1 lớp và có thể cài đặt lại từ nhiều interface Nếu một lớp khi implements từ một inteface thì lớp đó phải cài đặt lại tất cả các phương thức abstract của interface Interface 1 public interface Hinh { 2 public double tinhDienTich(); 3 public double tinhChuVi(); } 1 public class HinhTamGiac implements Hinh{ 2 @Override 3 public double tinhDienTich(){ 4 ... 5 } 6 @Override 7 public double tinhChuVi(){ 8 ... Interface 1 public interface Hinh { 2 public double tinhDienTich(); 3 public double tinhChuVi(); } 1 public class HinhTron implements Hinh{ 2 @Override 3 public double tinhDienTich(){ 4 ... 5 } 6 @Override 7 public double tinhChuVi(){ 8 9 ... } Interface 1 public interface Hinh { 2 public double tinhDienTich(); 3 public double tinhChuVi(); 4 } 1 public class HinhChuNhat implements Hinh{ 2 @Override 3 public double tinhDienTich(){ 4 ... 5 } 6 @Override 7 public double tinhChuVi(){ 8 9 ... } Bài tập: Hình học • Xây dựng các lớp HinhHoc, HinhChuNhat, HinhTamGiac, HinhTron và viết chương trình cho phép: – Nhập vào một mảng hình học (có thể là HinhChuNhat, HinhTamGiac, HinhTron) – Xuất ra mảng các hình học – Tính tổng diện tích – Tính tổng chu vi – Tìm hình có chu vi lớn nhất / nhỏ nhất & Xuất ra – Tìm hình có diện tích lớn nhât / nhỏ nhất & Xuất ra – Kiểm tra tam giác đều, hình vuông – … Bài tập: Hình học LOGO Phát triển UD CSDL 2 Array List ArrayList ArrayList - Tạo Array List • Thư viện – import java.util.ArrayList; • Tạo ArrayList rỗng – ArrayList list = new ArrayList (); • Tạo ArrayList từ Collection khác – ArrayList list = new ArrayList (Collection c); • Kiểu dữ liệu E: Kiểu tham chiếu – Kiểu dữ liệu E hợp lệ: Kiểu tham chiếu. VD: Integer, Float, Double, String, Object, PhanSo, HocSinh, . . . – Kiểu dữ liệu E không hợp lệ: Kiểu giá trị. VD: int, float, double, boolean ,… ArrayList - Tạo Array List • Ví dụ tạo ArrayList hợp lệ: 1 2 3 4 5 6 7 8 //Mảng 1 chiều String ArrayList list1 = new ArrayList (); //Mảng 1 chiều PhanSo ArrayList list2 = new ArrayList (); //Mảng 1 chiều PhanSo ArrayList list3 = new ArrayList (list2); //Mảng 2 chiều HocSinh ArrayList > list4 = new ArrayList > (); • Ví dụ tạo ArrayList không hợp lệ: – – – ArrayList list1 = new ArrayList (); ArrayList list2 = new ArrayList (); ArrayList list3 = new ArrayList (); ArrayList - Một số phương thức thông dụng • Tạo ArrayList: new – ArrayList list = new ArrayList () • Thêm vào cuối: add (E element) – list.add (new PhanSo(1,2)); – list.add (new PhanSo(3,4)); • Cập nhật: set (int index, E element) – list.set(0, new PhanSo(2,3)); ArrayList - Một số phương thức thông dụng • Xóa: remove (E element), remove (int index) • Xóa toàn bộ: clear () – Ví dụ: list.remove (0); list.remove (ps); list.clear(); • Lấy kích thước: size() int n = list.size(); ArrayList - Một số phương thức thông dụng • Lấy phần tử: get (int index) PhanSo ps = list.get(2); • Kiểm tra tồn tại: contains() boolean kq = list.contains(ps); Tạo Java Doc • Java Doc: – Tạo tài liệu mô tả cấu trúc, diễn giải các thành phần của project. – Giúp cho mã nguồn rõ ràng hơn, dễ dàng cho việc chia sẽ, mở rộng và nâng cấp về sau. • Cách thực hiện: – R-Click trên Project 🡪 Generate Java Doc Tạo Java Doc • Cách viết comment để tạo tài liệu Java Doc: /** * Nội dung comment * * @thamso1 Giá trị * @thamso2 Giá trị */ Tạo Java Doc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 /** * Lớp Hình Chử Nhật * * @author He thong thong tin */ public class HinhChuNhat extends HinhHoc { /** * * @return Chu vi của hình chử nhật = (dai + rong) * 2 */ @Override public double TinhChuVi(){ … } /** * Hàm khởi tạo mặc định */ public HinhChuNhat() {…} /** * Hàm khởi tạo có đầy đủ tham số * @param ten tên của hình * @param dai chiều dài của hình chử nhật * @param rong chiều rộng của hình chử nhật */ public HinhChuNhat(String ten, double dai, double rong) {…} } Tạo Java Doc Tạo Java Doc Phát sinh bởi Generate Javadoc Tạo UML Class Diagram • Cách 1: – B1: Cài đặt UML Plugin cho Netbeans: • Here is how to install on 7.1 • Add a new configuration to update centers: Tools -> Plugins -> Settings > Add • As the URL copy the following into the textbox: http://dlc.sun.com.edgesuite.net/netbeans/updates/6.9/uc/m1/dev/cat alog.xml • Now on the tab Available Plugins there should be UML in category UML. Install the plugin, and its done..!! Tạo UML Class Diagram Tạo UML Class Diagram • Cách 1: – B2: R-Click ở project 🡪 Ch ọn Reverse Engineering 🡪 Create New UML Project Tạo UML Class Diagram Tạo UML Class Diagram • Cách 2: Sử dụng yWorks UML doclet – Download yWorks UML Doclet: • http://www.yworks.com/en/downloads.html#yFiles – Giải nén file yworks-uml-doclet-3.0_02-jdk1.5.zip. Ghi nhớ thư mục đã giải nén – Cấu hình tham số lúc tạo Java Doc: – Chọnksg project 🡪 R_Click🡪 Properties🡪Documenting🡪Additional javadoc Options -docletpath "C:\yworks-uml-doclet-3.0_02-jdk1.5\lib\ydoc.jar" -resourcepath "C:\yworksuml-doclet-3.0_02-jdk1.5\resources" -doclet ydoc.doclets.YStandard –umlautogen C:\yworks-uml-doclet-3.0_02-jdk1.5 : Đường dẫn giải nén yWorks UML doclet Tạo UML Class Diagram Kết quả
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.