Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

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