Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
LẬP TRÌNH JAVA
Nội dung
Các khái niệm
Slide 4
Slide 5
Slide 6
Khai báo lớp
Slide 8
Slide 9
Slide 10
Slide 11
Khai báo & tạo đối tượng
Slide 13
Slide 14
Ví dụ
Mở rộng – Từ khóa this
Mở rộng – Từ khóa static
Slide 18
Các lớp lồng nhau
Slide 20
Slide 21
Bài tập
Thừa kế
Slide 24
Slide 25
Thừa kế-Sử dụng từ khóa super
Thừa kế - Sử dụng từ khóa super
Thừa kế - Chồng phương thức
Slide 29
Slide 30
Slide 31
Thừa kế - Xây dựng lớp con
Đa hình- đa dạng lớp con
Đa hình (Polymorphism)
Slide 35
Lớp Object
Slide 37
Slide 38
Lớp Abstract
Slide 40
PowerPoint Presentation
Gói (Package)
Slide 43
Sử dụng Gói (Package)
Slide 45
Phạm vi truy cập
Slide 47
Slide 48
Phạm vi truy cập-Ví dụ
Interface
Slide 51
Slide 52
Slide 53
Slide 54
Slide 55
Nội dung
LẬP TRÌNH JAVAChươngLỚPTRONGJAVA Đoàn Thanh Sơn Bộ môn: Lập trình máy tính Nội dung Các khái niệm lập trình hướng đối tượng Khai báo lớp Các lớp lồng Thừa kế đa hình Lớp Abstract Gói Phạm vi truy cập Interface 2/25 Các khái niệm Đối tượng (Object) • Thuộc tính (fields) • Hành vi (methods) Rectangle Width: 50cm Height: 30cm Color: Yellow Draw() changeSize() 3/25 Các khái niệm Thuộc tính (fields) liệu trình bày đặc điểm đối tượng • Mọi đối tượng lớp phải có thuộc tính giá trị thuộc tính khác • Một thuộc tính đối tượng nhận giá trị khác thời điểm khác Ví dụ: đối tượng hình chữ nhật có thuộc tính chiều dài, chiều rộng 4/25 Các khái niệm Phương thức (method) cho phép tác động lên liệu đối tượng • Các phương thức xác định cách thức hoạt động đối tượng Ví dụ: hoạt động chung lớp hình chữ nhật tính chu vi diện tích 5/25 Các khái niệm Lớp (Class) • Là tập hợp đối tượng loại • Là khuôn mẫu tạo đối tượng • Là kiểu liệu phần mềm Lớp: Rectangle Đối tượng: RectangleA Đối tượng: RectangleB 6/25 Khai báo lớp Cú pháp: class Name{ // Khai báo thuộc tính // Khai báo phương thức } 7/25 Khai báo lớp Khai báo thuộc tính • Cú pháp: [=value]; • Ví dụ class Circle { double radius = 1.0; int color; } 8/25 Khai báo lớp Khai báo phương thức : • Cú pháp: (){ ; } • Ví dụ public class Circle { double radius = 1.0; public double findArea(){ return radius * radius * 3.14159; } } 9/25 Khai báo lớp Khai báo • Constructor (phương thức tạo): phương thức đặc biệt, cần gọi để xây dựng đối tượng Không có giá trị trả Phải tên với tên lớp Có thể có nhiều phương thức khởi tạo • Ví dụ: class Circle { double radius = 1.0; Circle(){} Circle(double rad){ radius = rad; } } 10/25 abstract class MyAbstractClass { abstract void callme(); void callmetoo() { System.out.println(“Day khong phai abstract"); } } class B extends MyAbstractClass { void callme() { System.out.println(“Thuc thi lop B"); } } public class Main { public static void main(String args[]) { MyAbstractClass a = new MyAbstractClass(); B b = new B(); b.callme(); b.callmetoo(); } } 41/25 Gói (Package) Là đơn vị tổ chức mô hình thiết kế dự án chứa lớp interface Gói thể cấu trúc lưu trữ thư mục Tác dụng • Nhóm thành phần liên quan • Giới hạn truy cập từ thành phần bên • Tổ chức code dễ quản lý 42/25 Gói (Package) Khai báo gói package tên_gói; Khai báo gói đa cấp package pkg1[.pkg2[.pkg3]]; Ví dụ package graphics; public class Rectangle{ … public double calculateArea() { return width*height; } } 43/25 Sử dụng Gói (Package) Truy cập thành phần thuộc gói • Sử dụng tên đầy đủ: graphics.Circle myCircle = new graphics.Circle(); • Sử dụng câu lệnh import để nạp lớp gói import graphics.Rectangle; Rectangle myRectangle = new Rectangle(); • Sử dụng import để nạp toàn gói import graphics.*; Circle myCircle = new Circle(); Rectangle myRectangle = new Rectangle(); 44/25 Gói (Package) Code chương trình: • Khai báo gói • Các câu lệnh import • Khai báo thành phần package MyPack; import java.util.Date; public class Main { public static void main(String args[]) { System.out.println(new Date()); } } 45/25 Phạm vi truy cập Tác dụng: tăng tính bảo mật Cách khai báo: [modifier] class ten_lop{ [modifier] dataType ten_thuoctinh; [modifier] returnedValue ten_phuongthuc{ … } } 46/25 Phạm vi truy cập Java có phạm vi truy cập cho thành phần • public: truy cập tất thành phần khác • private: truy cập thành phần lớp • protected: truy cập lớp • default (không khai báo): truy cập thành phần gói 47/25 Phạm vi truy cập Vị trí & phạm vi truy cập 48/25 Phạm vi truy cập-Ví dụ o Modifier Alpha 49/25 Interface Tác dụng: quy định khung tối thiểu để tạo lớp thừa kế Khai báo [modifier] interface name { return-type method-name1(parameter-list); type varname1 = value; // return-type method-nameN(parameter-list); type varnameN = value; } Các biến ngầm định là: public, static, final 50/25 Interface Ví dụ interface MyInterface{ void callback(int param); } 51/25 Interface Tạo class từ interface [modifier] class classname [extends superclass] [implements interface [,interface ]] { // class-body } Trong Java, không cho phép thừa kế từ nhiều superclass thừa kế từ nhiều interface Chú ý ghi tiền tố truy cập 52/25 Interface Ví dụ interface MyInterface { void callback(int param); } class Client implements MyInterface{ public void callback(int p) { System.out.println(“Call:" + p); } } public class Main { public static void main(String args[]) { MyInterface c = new Client(); c.callback(42); } } 53/25 Interface Nếu class thực thi interface không đầy đủ lớp phải lớp abstract Ví dụ interface MyInterface { void callback(int param); void show(); } abstract class Incomplete implements MyInterface { int a, b; public void show() { System.out.println(a + " " + b); } } 54/25 Interface Interface thừa kế interface IntefaceA { void meth1(); void meth2(); } interface IntefaceB extends IntefaceA { void meth3(); } 55/25 ... tập Tìm hiểu lớp • String • StringBuffer • Math • ArrayList • Date • List 22/25 Thừa kế Tạo lớp từ lớp tồn • Lớp gọi lớp con, lớp dẫn xuất (subclass) • Lớp cũ gọi lớp cha, lớp sở (superclass)... kế - Chồng phương thức Xảy phương thức lớp có tên kiểu trả phương thức lớp cha Phương thức lớp cha bị che khuất Để truy cập phương thức lớp cha, sử dụng từ khóa super 28/25 Thừa kế - Chồng... truy cập 18/25 Các lớp lồng Java cho phép định nghĩa lớp bên lớp khác Cấu trúc class OuterClass { static class StaticNestedClass { } class InnerClass { } } 19/25 Các lớp lồng Ví dụ class