Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
2,93 MB
Nội dung
www.sites.google.com/site/khaiphong Giáo viên: Dương Khai Phong Email: khaiphong@gmail.com Lý thuyết: 45 tiết Thực hành: 30 tiết ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong Nội dung môn học Tổng quan lập trình java Lập trình hướng đối tượng Lập trình giao diện đồ họa Lập trình mạng Ôn tập ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG A Hướng đối tượng java (OOP) B Các khái niệm liên quan OOP C Các đặc điểm OOP D Các lớp java ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG A Hướng đối tượng java (OOP) Java ngôn ngữ lập trình hướng đối tượng Mọi thứ hệ thống viết ngôn ngữ java phải triển khai đối tượng Ví dụ: chương trình quản lý giáo vụ nhà trường bao gồm đối tượng: sinh viên (student) giáo viên (teacher) môn học (course) thời khóa biểu (schedule) lớp học (classroom) … ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Đối tượng (object) Lớp (class) Thể (instance) Gói (package) Từ khoá truy cập Hàm khởi tạo (constructor) Từ khoá this Mảng đối tượng Từ khoá static, final, abstract, native ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Đối tượng: (object) Đối tượng đại diện cho thực thể giới thật Ví dụ: ô tô, người, hình tròn, khoản tiền Mỗi đối tượng có identity, state, behavior (state xác định đối tượng, behavior xác định đối tượng làm gì): State = tập data field (properties) Behavior = tập method (functions) Ví dụ: hình tròn có: Identity (Circle), State (bán kính R), Behavior (Tính diện tích: ComputeArea) ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Lớp: (class) Lớp thiết kế hay mẫu (prototype) chung cho đối tượng kiểu Một lớp bao gồm định nghĩa thuộc tính phương thức chung cho tất đối tượng loại Ví dụ: lớp SINHVIEN thiết kế chung cho nhiều đối tượng sinh viên tạo Thể hiện: (instance) Mỗi đối tượng thể cụ thể lớp Gói: (package) Là nhóm class, interface, gói khác biên dịch thành Java bytecode (tương tự thư mục windows) ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Khai báo lớp: (class) class Circle { double radius = 1.0; Circle(){ } Circle(double newRadius){ radius = newRadius; } double findArea(){ return radius * radius * 3.14159; } } Data field Contructors Methods ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Tạo đối tượng lớp: class Circle {…} class Test{ public static void main(…){ Circle myCircle; myCircle = new Circle(); } } Khai báo đối tượng Tạo đối tượng tham chiếu Khai báo tạo đối tượng lớp dòng lệnh: ClassName objectRef = new ClassName(); Ví dụ: Circle myCircle = new Circle(); ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Truy nhập đối tượng: class Circle {…} class Test{ public static void main(…){ Circle myCircle; myCircle = new Circle(); myCircle.radius= 5.5; double S; S= myCircle.findArea(); } } Tham chiếu liệu Gọi phương thức ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp java: Các lớp liên quan đến chuỗi: Lớp String – xử lý chuỗi cố định Lớp StringBuffer – xử lý chuỗi linh động (nối chuỗi, cắt chuỗi,…) Lớp StringTokenizer –xử lý chuỗi Lớp Character– xử lý ký tự chuỗi ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp java: Các lớp liên quan đến chuỗi: String Xây dựng chuỗi: • String message = "Welcome to Java!" • String message = new String("Welcome to Java!“); • String s = new String(); Lấy độ dài chuỗi lấy ký tự cụ thể chuỗi Ghép chuỗi (concat) Chuỗi (substring(index), substring(start, end)) So sánh (equals, compareTo) String Conversions Tìm ký tự chuỗi chuỗi Chuyển đổi Strings Arrays Chuyển đổi ký tự g/t số thành chuỗi ĐH Công nghệ Thông tin Các phương thức lớp String: Lưu ý: Có thể tạo chuỗi từ mảng ký tự: char[] charArr = {'G','o','o','d',' ','d','a','y'} String message = new String(charArr); Lấy chiều dài chuỗi: String message =“Welcome”; int len=message.length() // KQ: len=7 Lấy ký tự chuỗi: String message =“Welcome”; char ch=message[0]; // ERROR char ch=message.charAt(0); // KQ: ch=„W‟ So sánh chuỗi: equals String s1 = “Welcome”; String s2 = new String(“Welcome”); So sánh nội dung: if (s1.equals(s2)) // KQ: true So sánh tham chiếu: if (s1==s2) // KQ: false String +String() +String(value: String) +String(value: char[]) +charAt(index: int): char +compareTo(anotherString: String): int +compareToIgnoreCase(anotherString: String): int +concat(anotherString: String): String +endsWithSuffixe(suffix: String): boolean +equals(anotherString: String): boolean +equalsIgnoreCase(anotherString: String): boolean +indexOf(ch: int): int +indexOf(ch: int, fromIndex: int): int +indexOf(str: String): int +indexOf(str: String, fromIndex: int): int +intern(): String +regionMatches(toffset: int, other: String, offset: int, len: int): boolean +length(): int +replace(oldChar: char, newChar: char): String +startsWith(prefix: String): boolean +subString(beginIndex: int): String +subString(beginIndex: int, endIndex: int): String +toCharArray(): char[] +toLowerCase(): String +toString(): String +toUpperCase(): String +trim(): String +copyValueOf(data: char[]): String +valueOf(c: char): String +valueOf(data: char[]): String +valueOf(d: double): String +valueOf(f: float): String +valueOf(i: int): String +valueOf(l: long): String Các phương thức lớp String: Lưu ý: So sánh chuỗi: compareTo String s1 = “ABC”; String s2 = “aBC”; if (s1.compareTo(s2) > 0) // KQ: false if (s1.compareTo(s2) == 0) // KQ: false if (s1.compareTo(s2) < 0) // KQ: true Nối chuỗi: concat String s1 = “Hi”; s1=s1.concat(“java”); // KQ: s1=“Hi java” Hoặc: S1=s1+”java”; Chuỗi con: substring String s1 = “Hi java”; s1=s1.substring(3); // KQ: s1=“java” S1=s1.substring(0,2); // KQ: s1=“hi” String +String() +String(value: String) +String(value: char[]) +charAt(index: int): char +compareTo(anotherString: String): int +compareToIgnoreCase(anotherString: String): int +concat(anotherString: String): String +endsWithSuffixe(suffix: String): boolean +equals(anotherString: String): boolean +equalsIgnoreCase(anotherString: String): boolean +indexOf(ch: int): int +indexOf(ch: int, fromIndex: int): int +indexOf(str: String): int +indexOf(str: String, fromIndex: int): int +intern(): String +regionMatches(toffset: int, other: String, offset: int, len: int): boolean +length(): int +replace(oldChar: char, newChar: char): String +startsWith(prefix: String): boolean +subString(beginIndex: int): String +subString(beginIndex: int, endIndex: int): String +toCharArray(): char[] +toLowerCase(): String +toString(): String +toUpperCase(): String +trim(): String +copyValueOf(data: char[]): String +valueOf(c: char): String +valueOf(data: char[]): String +valueOf(d: double): String +valueOf(f: float): String +valueOf(i: int): String +valueOf(l: long): String www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp java: Các lớp liên quan đến chuỗi: StringBuffer Xây dựng chuỗi: • StringBuffer message = "Welcome to Java! " // ERROR • StringBuffer message = new StringBuffer ("Welcome "); Nối chuỗi (append) Chèn chuỗi (insert) Xóa chuỗi (delete) Đảo ngược chuỗi (reverse) Chèn ký tự (setCharAt) ĐH Công nghệ Thông tin Các phương thức lớp StringBuffer: StringBuffer +append(data: char[]): StringBuffer +append(data: char[], offset: int, len: int): StringBuffer +append(v: aPrimitiveType): StringBuffer +append(str: String): StringBuffer +capacity(): int +charAt(index: int): char +delete(startIndex: int, endIndex: int): StringBuffer +deleteCharAt(int index): StringBuffer +insert(index: int, data: char[], offset: int, len: int): StringBuffer +insert(offset: int, data: char[]): StringBuffer +insert(offset: int, b: aPrimitiveType): StringBuffer +insert(offset: int, str: String): StringBuffer +length(): int +replace(int startIndex, int endIndex, String str): StringBuffer +reverse(): StringBuffer +setCharAt(index: int, ch: char): void +setLength(newLength: int): void +substring(start: int): StringBuffer +substring(start: int, end: int): StringBuffer Ví dụ StringBuffer: StringBuffer strBuf = new StringBuffer(); strBuf.append("Welcome"); // KQ: strBuf=“Welcome” strBuf.append(' '); // KQ: strBuf=“Welcome ” strBuf.append("Java"); // KQ: strBuf=“Welcome Java” strBuf.insert(8,"HTML and "); // KQ: strBuf=“Welcome HTML and Java” strBuf.delete(13,16); // KQ: strBuf=“Welcome HTML Java” strBuf.deleteCharAt(13); // KQ: strBuf=“Welcome HTML Java” strBuf.replace(8,12,“html"); // KQ: strBuf=“Welcome html Java” strBuf.setCharAt(0,'w'); // KQ: strBuf=“welcome html Java” strBuf.reverse(); // KQ: strBuf=“avaaj lmth emoclew” www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp java: Các lớp liên quan đến chuỗi: StringTokenizer Chuỗi bẻ thành mảnh (gọi token) dấu phân cách (gọi delimiter) Xây dựng chuỗi: • StringTokenizer(String s, String delim, boolean returnTokens) • StringTokenizer(String s, String delim) • StringTokenizer(String s) boolean hasMoreTokens() String nextToken() String nextToken(String delim) ĐH Công nghệ Thông tin Ví dụ StringTokenizer: java.util.*: thư viện chứa lớp StringTokenizer Delimiter: dấu phân cách dùng để tách chuỗi theo tập: “+” , “-” hasMoreTokens: duyệt tập token www.sites.google.com/site/khaiphong BÀI TẬP TRẮC NGHIỆM Câu 1: Đoạn lệnh sau đặt lớp student để khai báo lớp student thuộc package uit.edu.vn A import uit.*; B import uit.edu.vn.*; C package uit.edu.vn.student; D package uit.edu.vn; ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong BÀI TẬP TRẮC NGHIỆM Câu 2: Phát biểu sau A Một lớp có chứa phương thức final không cho phép kế thừa B Một phương thức final override C Một biến final khai báo lớp final D Một biến final tương tự biến static ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong BÀI TẬP TRẮC NGHIỆM Câu 3: Khai báo sau không gây lỗi biên dịch A abstract final class Person{} B default class Person{} C abstract int i; D native myMethod(); ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong BÀI TẬP TRẮC NGHIỆM Câu 4: Cho đoạn khai báo biến: Rectangle obj; Đoạn khai báo sẽ: A Gay lỗi biên dịch B Tạo đối tượng lớp Rectangle C Tạo đối tượng lớp Rectangle có constructor mặc định read D Tạo biến b với giá trị ban đầu null ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong BÀI TẬP TRẮC NGHIỆM Câu 5: Phát biểu sau A Thừa kế quan hệ has-a B Một thể lớp quan hệ has-a C Một phương thức quan hệ is-a D Một thể lớp quan hệ is-a ĐH Công nghệ Thông tin [...]... cả các chương trình Java java. awt: chứa các lớp đồ họa java. applet: chứa các lớp hỗ trợ applet java. io: chứa các lớp cho các luồng vào-ra và các file java. util: chứa nhiều tiện ích, ví dụ date java. net: chứa các lớp hỗ trợ giao tiếp mạng Các lớp khác như: java. sql, java. rmi ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp cơ bản trong java: ... con nào khác abstract: cho biết một lớp hay phương thức là trừu tượng không cài đặt gì cả native: cho biết một phương thức được lập trình bởi một ngôn ngữ lập trình khác (Ví dụ: native myMethod(); phương thức myMethod có thể được tạo bởi một ngôn ngữ lập trình khác java) ĐH Công nghệ Thông tin Ví dụ 1: từ khoá static dùng cho thuộc tính dữ liệu Biến dữ liệu của thể hiện instance Biến dữ liệu... thức đã kế thừa Ví dụ 3: Tính đa hình trong java Xây dựng lớp dẫn xuất (Ví dụ: lớp circle) Sử dụng các lớp đã xây dựng (main) Tuỳ theo đối tượng được tham chiếu mà phương thức tính diện tich của đối tượng tương ứng được sử dụng www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp cơ bản trong java: java. lang Chứa các lớp Java lõi (core Java class), gồm lớp số (numeric class), chuỗi... www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Hàm khởi tạo: (Constructor) class Circle{ double radius = 1.0; Circle(){ Constructor là một dạng đặc } Circle(double newRadius){ biệt của phương thức, được radius = newRadius; gọi để xây dựng đối tượng } double findArea(){ return radius * radius * 3. 141 59; } } ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH... nghệ Thông tin Ví dụ 1: khai báo và sử dụng package để thể hiện tính đóng gói Cách khai báo một lớp thuộc về một gói package nào đó trong java Tập tin triangle .java Sử dụng gói đã tạo Tập tin testpackage .java Tập tin rectangle .java Ví dụ 2: Sử dụng tính kế thừa trong java Xây dựng lớp cơ sở (Ví dụ: lớp person) Xây dựng lớp dẫn xuất (Ví dụ: lớp student) Extends: từ khoá khai báo kế thừa Super: từ... chuỗi con Lớp Character– xử lý ký tự trong chuỗi ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp cơ bản trong java: Các lớp liên quan đến chuỗi: String Xây dựng chuỗi: • String message = "Welcome to Java! " • String message = new String("Welcome to Java! “); • String s = new String(); Lấy độ dài chuỗi và lấy các ký tự cụ thể trong chuỗi Ghép chuỗi... strBuf=“Welcome ” strBuf.append( "Java" ); // KQ: strBuf=“Welcome Java strBuf.insert(8,"HTML and "); // KQ: strBuf=“Welcome HTML and Java strBuf.delete(13,16); // KQ: strBuf=“Welcome HTML Java strBuf.deleteCharAt(13); // KQ: strBuf=“Welcome HTML Java strBuf.replace(8,12,“html"); // KQ: strBuf=“Welcome html Java strBuf.setCharAt(0,'w'); // KQ: strBuf=“welcome html Java strBuf.reverse(); // KQ: strBuf=“avaaj... double): String +valueOf(f: float): String +valueOf(i: int): String +valueOf(l: long): String www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG D Các lớp cơ bản trong java: Các lớp liên quan đến chuỗi: StringBuffer Xây dựng chuỗi: • StringBuffer message = "Welcome to Java! " // ERROR • StringBuffer message = new StringBuffer ("Welcome "); Nối chuỗi (append) Chèn chuỗi (insert) Xóa...www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG B Các khái niệm liên quan OOP: Từ khoá truy cập: Mặc định: các lớp, biến hoặc dữ liệu có thể được truy nhập bởi bất kỳ lớp nào trong cùng gói (package) public: lớp, dữ liệu hay phương thức có thể được truy nhập bởi tất cả các lớp trong bất kỳ gói nào private: dữ liệu hoặc phương thức chỉ có thể được truy nhập bởi lớp khai báo protected:... nó Ví dụ 4: từ khoá final cho thuộc tính dữ liệu Error: đối với thành phần dữ liệu có từ khoá final thì thành phần dữ liệu đó được xem như hằng số (không gán lại giá trị mới) Ví dụ 5: từ khoá abstract cho phương thức Error: từ khoá abstract cho biết phương thức hello là trừu tượng thì không được phép định nghĩa Chỉ có lớp dẫn xuất mới định nghĩa www.sites.google.com/site/khaiphong LẬP TRÌNH HƯỚNG ...www.sites.google.com/site/khaiphong Nội dung môn học Tổng quan lập trình java Lập trình hướng đối tượng Lập trình giao diện đồ họa Lập trình mạng Ôn tập ĐH Công nghệ Thông tin www.sites.google.com/site/khaiphong LẬP TRÌNH... TƯỢNG A Hướng đối tượng java (OOP) Java ngôn ngữ lập trình hướng đối tượng Mọi thứ hệ thống viết ngôn ngữ java phải triển khai đối tượng Ví dụ: chương trình quản lý giáo vụ nhà trường bao... cài đặt native: cho biết phương thức lập trình ngôn ngữ lập trình khác (Ví dụ: native myMethod(); phương thức myMethod tạo ngôn ngữ lập trình khác java) ĐH Công nghệ Thông tin Ví dụ 1: