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 cung cấp cho người học các kiến thức: Kế thừa, final method and final class, abstract class and interface, tạo tài liệu Java doc,... Mời các bạn cùng tham khảo.
Trang 2• 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 <E>
• T o tài li u Java doc ạ ệ
Trang 3Khai báo kế thừa
public class TenLopCha {
//Khai bao cac thu c tinh ọ
//Khai bao cac ph uo ng th c ư
public class TenLopCon extends TenLopCha{
//Khai bao cac thu c tinh ọ
//Khai bao cac ph uo ng th c ư
}
Object là l p c s nh t trong Java Trong trơ o ơ â uơ ng h p m t l p không khai báo k th a t b t ky l p nào thì l p Object chính là l p cha c a ơ ộ ơ ế ừ ừ â ơ ơ ơ u nó
Trang 4public class GiangVien {
//Khai bao cac thu c tinh ọ //Khai bao cac ph uo ng th c ư
Trang 6• Truy xu t l p hi n t i: â ơ ệ ạ this
• Truy xu t đ n l p cha: â ế ơ super
• Ch đ nh ph i i uo ng th c kh i t o c a l p cha: ư ơ ạ u ơ super(), super(…)
• Cài đ t l i ph ạ ạ uo ng th c c a l p cha ư u ơ
@Override
public KieuDuLieu tenPhuongthuc (…)
L u y: phu uong th c static không đư uơc phep Override
• G i ph o uo ng th c c a l p cha: ư u ơ super.tenPhuongThuc( )
• Ki m tra th hi n c a đ i t ê ê ệ u ố uơ ng: instanceOf
Trang 7if (b instanceof B) {
System.out.println(“b is an instance of B");
}
Trang 8• Final Method là m t ph ộ uo ng đ uơ c khai báo v i t khóa ơ ừ final
• Final Method không đ uơ c phep override l p k th a ơ ơ ế ừ
• Các ph uo ng th c t o không đ ư ạ uơ c phep khai báo v i t khóa ơ ừ final
Trang 9private String name;
public final String getName () { .}
public final void setName () { .}
L i ỗ : Không th Override m t ph ể ộ ươ ng th c final ứ
L i ỗ : Không th Override m t ph ể ộ ươ ng th c final ứ
Trang 10• Final Class là m t l p đ ộ ơ uơ c khai báo v i t khóa ơ ừ final
• Final Class không cho phep 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 đ ơ ê ế ừ uơ ơc l p A
Trang 12• Hình nh: ả
Trang 13Abstract Class
• Abstract Class là m t l p đ ộ ơ uơ c khai báo v i t khóa abstract ơ ừ
• Abstract Class có th ch a các ph ê ư uo ng th c abstract ho c ph ư ạ uo ng th c có cài đ t ư ạ
• Ph uo ng th c abstract là ph ư uo ng th c không có cài đ t ư ạ
public void nhap(){ }
public abstract double tinhLuong();
Trang 14• Abstract Class không th t o th hi n ê ạ ê ệ
GiangVien gv = new GiangVien() �
• Abstract Class có th gi tham chi u đ i t ê ữ ế ố uơ ng c a các Sub Class u
Trang 15Abstract 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ắ ộ ả ạ ạ â ả uong th c abstract c a l p cha ư u ơ
– Không b t bu c cài đ t l i các phắ ộ ạ ạ uong th c không là abstract c a l p cha.ư u ơ
• N u các Sub Class là Abstract Class thì không b t bu c ph i cài đ t l i ph ế ắ ộ ả ạ ạ uo ng th c ư abstract / không abstract c a l p cha u ơ
Trang 16public abstract class GiangVien{
//Khai bao cac thu c tinh ọ
Trang 18}
Trang 19}
Trang 20• Đ uơ c khai báo v i t khóa ơ ừ interface
publicinterface Hinh{…}
public interface Hinh{
public static final double PI =3.14;
public void tinhDienTich ();
public void tinhChuVi ();
}
Trang 21Interface
• M t interface có th k th a t nhi u interface khác ộ ê ế ừ ừ ề
• 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 ộ ơ ê ế ừ ừ ơ ê ạ ạ ừ ề
1
2
3
public interface IA{…}
public interface IB{…}
public interface IC extends IA, IB {…}
1
2
3
4
public class A{…}
public interface IB{…}
public interface IC{…}
public class B extends A implements IB, IC{…}
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 u
Trang 222
3
public interface Hinh {
public double tinhDienTich ();
public double tinhChuVi ();
Trang 23Interface
1
2
3
public interface Hinh {
public double tinhDienTich ();
public double tinhChuVi ();
Trang 243
4
public double tinhDienTich ();
public double tinhChuVi ();
Trang 25Bài tập: Hình học
• Xây d ng các l p HinhHoc, HinhChuNhat, HinhTamGiac, HinhTron và vi t ch ư ơ ế uo ng trình cho phep:
– Nh p vào m t m ng hình h c (có th là HinhChuNhat, HinhTamGiac, HinhTron)ậ ộ ả o ê
Trang 27Phát triển UD CSDL 2
Array List <E>
Trang 29ArrayList <E> - Tạo Array List
Trang 30• Ví d t o ụ ạ ArrayList h p l : ơ ệ
• Ví d t o ArrayList không h p l : ụ ạ ơ ệ
– ArrayList <int> list1 = new ArrayList <int>();
– ArrayList <float> list2 = new ArrayList <float>(); – ArrayList <double> list3 = new ArrayList <double>();
ArrayList <ArrayList<HocSinh>> list4 =
new ArrayList <ArrayList<HocSinh>> ();
Trang 31ArrayList <E> - Một số phương thức thông dụng
• T o ArrayList: ạ new
– ArrayList<PhanSo> list = newArrayList <PhanSo>()
• Them 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));
Trang 32• Xóa: remove (E element), remove (int index)
• Xóa toàn b : ộ clear ()
Trang 33ArrayList <E> - 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);
Trang 34• 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.ạ ệ ả â ễ ả ầ u
– 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.ồ o ễ ệ ơ ộ â ề
• Cách th c hi n: ư ệ
– R-Click tren Project Generate Java Doc
Trang 35Tạo Java Doc
• Cách vi t comment đ t o tài li u Java Doc: ế ê ạ ệ
/**
* N i dung comment ộ
*
* @thamso1 Giá tri
* @thamso2 Giá tri
*/
Trang 36* @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) {…}
}
Trang 37Tạo Java Doc
Trang 39Tạo UML Class Diagram
– 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/catalog.xml
• Now on the tab Available Plugins there should be UML in category UML Install the plugin, and its done !!
Trang 41• Cách 1:
– B2 : R-Click project Ch n Reverse Engineering Create New UML Project ơ o
Trang 43• Cách 2: S d ng yWorks UML doclet ử ụ
– Download yWorks UML Doclet:
• http://www.yworks.com/en/downloads.html#yFiles
– Gi i nen file yworks-uml-doclet-3.0_02-jdk1.5.zip Ghi nh th m c đã gi i nenả ơ u ụ ả
– C u hình tham s lúc t o Java Doc:â ố ạ
– ksgCh n project � R_Click� Properties�Documenting �Additional javadoc Options o ksg
– R-Click project Ch n Reverse Engineering Create New UML Project ơ o
-docletpath "C:\yworks-uml-doclet-3.0_02-jdk1.5\lib\ydoc.jar" -resourcepath "C:\yworks-uml-doclet-3.0_02-jdk1.5\resources" -doclet ydoc.doclets.YStandard – umlautogen
C:\yworks-uml-doclet-3.0_02-jdk1.5 : Đ uơ ng d n gi i nen yWorks UML doclet ẫ ả