Chuong 06 - Cac lop tien ich
Bé m«n C«ng nghÖ phÇn mÒm KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI JAVA
Chương 06. Các lớp tiện ích
Nguyễn Thị Thu Trang [email protected]
Mục tiêu bài học
Sử dụng các lớp wrapper nguyên thủy Làm việc với các xâu (String) Giải thích sự khác biệt giữa các lớp String và StringBuffer Trình bày được về các lớp tiện ích khác như Math, System.
Department of Software Engineering
Nội dung
1. Các lớp bao (Wrapper class)
2. Xâu (String và StringBuffer)
3. Lớp Math
4. Lớp System
Department of Software Engineering
1
1. Các lớp bao (Wrapper class)
Các kiểu dữ liệu nguyên thủy không có các
Mỗi kiểu dữ liệu nguyên thủy có một lớp tương ứng gọi là lớp bao: Các lớp bao sẽ "gói" dữ liệu nguyên thủy và cung cấp các phương thức thích hợp cho dữ liệu đó. Mỗi đối tượng của lớp bao đơn giản là lưu trữ một biến đơn và đưa ra các phương thức để xử lý nó. Các lớp bao là một phần của Java API
Department of Software Engineering
1. Các lớp bao (2)
Department of Software Engineering
1.1. Chuyển đổi kiểu dữ liệu
Sử dụng để chuyển
Sử dụng để chuyển
Sử dụng các phương thức chuyển đổi rõ ràng để chuyển giữa các kiểu dữ liệu số
Department of Software Engineering
2
1.1. Chuyển đổi kiểu dữ liệu (2)
Department of Software Engineering
1.2. Các hằng số
Boolean Boolean FALSE Boolean TRUE Byte byte MIN_VALUE byte MAX_VALUE Character int MAX_RADIX char MAX_VALUE int MIN_RADIX char MIN_VALUE Unicode classification constants Double double MAX_VALUE double MIN_VALUE double NaN double NEGATIVE_INFINITY double POSITIVE_INFINITY
Float float MAX_VALUE float MIN_VALUE float NaN float NEGATIVE_INFINITY float POSITIVE_INFINITY Integer int MIN_VALUE int MAX_VALUE Long long MIN_VALUE long MAX_VALUE Short short MIN_VALUE short MAX_VALUE
Department of Software Engineering
Ví dụ 1 float f = System.out.println(f); int i = (new Float(f)). String s = (new Integer(i)). System.out.println(s); double d = (new Integer(Integer.MAX_VALUE)). System.out.println(d);
Department of Software Engineering
3
Ví dụ 2
double number = Double.parseDouble("42.76"); String hex = double value = String input = "test 1-2-3"; int output = 0; for (int index = 0; index < input.length(); index++) { char c = input.charAt(index); if ( ) output = output * 10 + ; } System.out.println(output);
Department of Software Engineering
Nội dung
1. Các lớp bao (Wrapper class)
2. Xâu (String và StringBuffer)
3. Lớp Math
4. Lớp System
Department of Software Engineering
2.1. Xâu (String)
Kiểu String là một lớp và không phải là kiểu dữ liệu cơ bản Một String được tạo thành từ một dãy các ký tự nằm trong dấu nháy kép: String a = "A String"; String b = ""; Đối tượng String có thể khởi tạo theo nhiều cách:
Department of Software Engineering
4
2.1. Xâu (2)
Ghép xâu: Toán tử + có thể nối các String:
String a = "This" + " is a " + "String";
//a = "This is a String" Các kiểu dữ liệu cơ bản sử dụng trong lời gọi println() được chuyển đổi tự động sang kiểu Strings System.out.println("answer = " + 1 + 2 + 3); System.out.println("answer = " + (1+2+3)); Hai câu lệnh trên có in ra cùng một kết quả?
Department of Software Engineering
2.1. Xâu (3)
String là các đối tượng; các đối tượng này cũng đáp ứng các thông điệp Sử dụng toán tử (.) để gửi một thông điệp String là một lớp với các phương thức xác định Các phương thức của xâu: String name = "Joe Smith"; name.toLowerCase(); name.toUpperCase(); "Joe Smith ".trim(); "Joe Smith".indexOf('e'); "Joe Smith".length(); "Joe Smith".charAt(5); "Joe Smith".substring(5); "Joe Smith".substring(2,5);
Department of Software Engineering
So sánh hai xâu:
2.1. Xâu (4)
Một xâu có thể so sánh xem có tương đương với một xâu khác oneString.equals(anotherString) Kiểm tra tính tương đương Trả về true hoặc false oneString.equalsIgnoreCase(anotherString) Kiểm tra có xét đến ký tự hoa, thường Trả về true hoặc false So sánh oneString == anotherString sẽ gây nhập nhằng
String name = "Joe"; if ("Joe".equals(name)) name += " Smith";
boolean same = "Joe".equalsIgnoreCase("joe");
Department of Software Engineering
5
2.1. Xâu (5)
So sánh hai xâu: String s1 = "Hello"; String s2 = "Hello"; (s1==s2) trả về true
String s1 = new String ("Hello"); String s2 = new String ("Hello"); (s1==s2) trả về false
Department of Software Engineering
2.2. StringBuffer
Kiểu bất biến và kiểu biến đổi Một kiểu có thể là bất biến hoặc có thể thay đổi Đối tượng của kiểu bất biến
Ngược lại, đối tượng của kiểu biến đổi có thể thay đổi giá trị sau khi chúng được tạo ra. String là kiểu bất biến, StringBuffer là kiểu biến đổi.
Department of Software Engineering
2.2. StringBuffer (2)
String: Các xâu của lớp String được thiết kế để không thay đổi giá trị. Khi các xâu được ghép nối với nhau một đối tượng mới được tạo ra để lưu trữ kết quả. Ghép nối xâu thông thường rất tốn kém về bộ nhớ.
Department of Software Engineering
6
2.2. StringBuffer (3)
Department of Software Engineering
2.2. StringBuffer (4)
StringBuffer: Cung cấp các đối tượng xâu có thể thay đổi giá trị Sử dụng StringBuffer khi:
Khi xử lý các xâu một cách linh động, ví dụ như
Cung cấp các cơ chế hiệu quả hơn cho việc xây dựng, ghép nối các xâu: Việc ghép xâu có thể rất "đắt" Việc ghép nối xâu thường được các trình biên dịch chuyển sang thực thi trong lớp StringBuffer
Department of Software Engineering
2.2. StringBuffer (5)
Tính biến đổi:
Department of Software Engineering
7
2.2. StringBuffer (6)
Nếu tạo xâu thông qua vòng lặp thì sử dụng StringBuffer
StringBuffer buffer = new StringBuffer(15); buffer.append("This is ") ; buffer.append("String") ; buffer.insert(7," a") ; buffer.append('.'); System.out.println(buffer.length()); System.out.println(buffer.capacity()); String output = buffer.toString() ; System.out.println(output);
Department of Software Engineering
2.3. Một số phương thức
Lớp String: Constructor: String() String(byte[] bytes) String(byte[] bytes, int offset, int length) String(char[] value) String(char[] value, int offset, int length) String(String original) String(StringBuffer buffer) Một số phương thức: char charAt(int index) boolean equals(Object anObject) int indexOf(String str) int length() boolean matches(String regex) String substring(int beginIndex, intendIndex) String toUpperCase() String trim()
Department of Software Engineering
2.3. Một số phương thức (2)
Lớp StringBuffer: Constructors: StringBuffer() StringBuffer(int length) StringBuffer(String str) Một số phương thức: StringBuffer append(...) StringBuffer insert(...) StringBuffer delete(int start, int end) int length() StringBuffer reverse() String substring(int start, int end) String toString()
Department of Software Engineering
8
Nội dung
1. Các lớp bao (Wrapper class)
2. Xâu (String và StringBuffer)
3. Lớp Math
4. Lớp System
Department of Software Engineering
3. Lớp Math
java.lang.Math cung cấp các thành phần static: Các hằng toán học: Math.E Math.PI Các hàm toán học: max, min... abs, floor, ceil... sqrt, pow, log, exp... cos, sin, tan, acos, asin, atan... random
Department of Software Engineering
3. Lớp Math (2)
Hầu hết các hàm nhận tham số kiểu double và giá trị trả về cũng có kiểu double Ví dụ : exp(2*sqrt(pi))
Department of Software Engineering
9
Nội dung
1. Các lớp bao (Wrapper class)
2. Xâu (String và StringBuffer)
3. Lớp Math
4. Lớp System
Department of Software Engineering
4. Lớp System
java.lang.System chứa nhiều hàm tiện ích hữu dụng Kiểm soát vào ra (I/O) chuẩn Các luồng InputStream in, PrintStreams out và err Có thể thiết lập lại nhờ các hàm setIn(), setOut() và setErr() arraycopy(): Sao chép mảng hoặc tập con với hiệu năng cao.
Department of Software Engineering
4. Lớp System (2)
currentTimeMillis(): Trả về thời gian hiện tại theo millisecond exit():
gc(): Yêu cầu bộ thu gom rác hoạt động Các phương thức liên quan đến thuộc tính của hệ thống: Lấy các thông tin thuộc tính như phiên bản của Java Runtime Environment version, thư mục cài đặt Java,...
Department of Software Engineering
10
4. Lớp System (3)
import java.util.Properties; public class PropertiesTest { public static void main(String[] args) { System.out.println( System.getProperty("path.separator")); System.out.println( System.getProperty("file.separator")); System.out.println( System.getProperty("java.class.path")); System.out.println( System.getProperty("os.name")); System.out.println( System.getProperty("os.version")); System.out.println(System.getProperty("user.dir")); System.out.println(System.getProperty("user.home")); System.out.println(System.getProperty("user.name")); } }
Department of Software Engineering
4. Lớp System (4)
Department of Software Engineering
Department of Software Engineering
11
Bạn đang đọc truyện trên: Truyen247.Pro