Lập trình mạng bằng ngôn ngữ Java - Lập trình hướng đối tượng
Hướng đối tượng trong java (OOP)
Các khái niệm liên quan OOP
Các đặc điểm trong OOP
Các lớp cơ bản trong java
Tóm tắt nội dung Lập trình mạng bằng ngôn ngữ Java - Lập trình hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
khoá final trước từ khoá class sẽ không được phép kế thừa. Một lớp là final thì không là lớp trừu tượng abstract final class myclass{…} // Error Trong java không có khái niệm lớp tĩnh: static class myclass() Ví dụ 3: Tính đa hình trong java Xây dựng lớp cơ sở trừu tượng (Ví dụ: lớp shape) Xây dựng lớp dẫn xuất (Ví dụ: lớp rectangle) abstract: từ khoá khai báo lớp trừu tượng (lớp trừu tượng không được phép tạo đối tượng) mà chỉ được tham chiếu đến đối tượng abstract: phương thức trừu tượng. Lớp dẫn xuất bắt buộc phải định nghĩa lại phương thức này. Định nghĩa lại phương 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 D www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin Các lớp cơ bản trong java: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG java.lang Chứa các lớp Java lõi (core Java class), gồm lớp số (numeric class), chuỗi ký tự, đối tượng (Object). Gói này được import hoàn toàn vào tất 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 D www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin Các lớp cơ bản trong java: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 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 con Lớp Character– xử lý ký tự trong chuỗi D www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin Các lớp cơ bản trong java: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 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 (concat) Chuỗi con (substring(index), substring(start, end)) So sánh (equals, compareTo) String Conversions Tìm 1 ký tự hoặc chuỗi con trong 1 chuỗi Chuyển đổi giữa Strings và Arrays Chuyển đổi các ký tự và các g/t số thành chuỗi Các phương thức trong lớp String: 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 Lưu ý: Có thể tạo chuỗi từ một mảng các ký tự: char[] charArr = {'G','o','o','d',' ','d','a','y'} String message = new String(charArr); Lấy chiều dài của chuỗi: String message =“Welcome”; int len=message.length() // KQ: len=7 Lấy ký tự trong 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 Các phương thức trong lớp String: 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 Lưu ý: So sánh chuỗi: compareTo String s1 = “ABC”; String s2 = “aBC”; if (s1.compareTo(s2) > 0) if (s1.compareTo(s2) == 0) if (s1.compareTo(s2) < 0) Nối chuỗi: concat String s1 = “Hi”; s1=s1.concat(“java”); Hoặc: S1=s1+”java”; Chuỗi con: substring String s1 = “Hi java”; s1=s1.substring(3); S1=s1.substring(0,2); // KQ: false // KQ: false // KQ: true // KQ: s1=“Hi java” // KQ: s1=“java” // KQ: s1=“hi” D www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin Các lớp cơ bản trong java: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 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) Các phương thức trong 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"); strBuf.append(' '); strBuf.append("Java"); strBuf.insert(8,"HTML and "); strBuf.delete(13,16); strBuf.deleteCharAt(13); strBuf.replace(8,12,“html"); strBuf.setCharAt(0,'w'); strBuf.reverse(); // KQ: strBuf=“Welcome” // KQ: strBuf=“Welcome ” // KQ: strBuf=“Welcome Java” // KQ: strBuf=“Welcome HTML and Java” // KQ: strBuf=“Welcome HTML Java” // KQ: strBuf=“Welcome HTML Java” // KQ: strBuf=“Welcome html Java” // KQ: strBuf=“welcome html Java” // KQ: strBuf=“avaaj lmth emoclew” D www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin Các lớp cơ bản trong java: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Các lớp liên quan đến chuỗi: StringTokenizer Chuỗi có thể được bẻ thành các mảnh (gọi là token) bởi các dấu phân cách (gọi là 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) 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 các token A www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin BÀI TẬP TRẮC NGHIỆM B C D Câu 1: Đoạn lệnh nào sau đây được đặt trong lớp student để khai báo lớp student thuộc package uit.edu.vn import uit.*; import uit.edu.vn.*; package uit.edu.vn.student; package uit.edu.vn; A www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin BÀI TẬP TRẮC NGHIỆM B C D Câu 2: Phát biểu nào sau đây là đúng Một lớp có chứa phương thức final sẽ không cho phép kế thừa. Một phương thức final thì không thể override. Một biến final chỉ có thể khai báo trong một lớp final. Một biến final tương tự như một biến static. A www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin BÀI TẬP TRẮC NGHIỆM B C D Câu 3: Khai báo nào sau đây không gây ra lỗi biên dịch abstract final class Person{} default class Person{} abstract int i; native myMethod(); A www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin BÀI TẬP TRẮC NGHIỆM B C D Câu 4: Cho đoạn khai báo biến: Rectangle obj; Đoạn khai báo này sẽ: Gay ra lỗi biên dịch. Tạo đối tượng của lớp Rectangle. Tạo đối tượng mới nếu lớp Rectangle có constructor mặc định read. Tạo một biến b với giá trị ban đầu là null. A www.sites.google.com/site/khaiphong ĐH Công nghệ Thông tin BÀI TẬP TRẮC NGHIỆM B C D Câu 5: Phát biểu nào sau đây là đúng Thừa kế là một quan hệ has-a. Một thể hiện của một lớp là một quan hệ has-a. Một phương thức là một quan hệ is-a. Một thể hiện của một lớp là một quan hệ is-a.
File đính kèm:
- Lập trình mạng bằng ngôn ngữ Java - Lập trình hướng đối tượng.pdf