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

