Bài giảng Ngôn ngữ lập trình Java - Bài 3: Cơ bản về đối tượng (Objects), những đối tượng dữ liệu đơn giản

String: Khi nội dung của xâu sẽ không thay đổi – String object là immutable (đối tượng sẽ không thay đổi sau khi khởi tạo).

StringBuilder (Chỉ từ Java 1.5 mới có lớp này): Khi nội dung của xâu sẽ thay đổi. Chỉ có 1 thread truy cập đến nội dung của xâu (Not threadsafe). Bù lại, tốc độ nhanh.

StringBuffer: Khi nội dung của xâu sẽ thay đổi. Có thể có nhiều thread truy cập đến nội dung của xâu (threadsafe). Hạn chế tốc độ chậm.

StringBuilder, StringBuffer định nghĩa method append cho bất kỳ kiểu dữ liệu nào.

 

pptx 33 trang thom 05/01/2024 1900
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình Java - Bài 3: Cơ bản về đối tượng (Objects), những đối tượng dữ liệu đơn giản", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Ngôn ngữ lập trình Java - Bài 3: Cơ bản về đối tượng (Objects), những đối tượng dữ liệu đơn giản

Bài giảng Ngôn ngữ lập trình Java - Bài 3: Cơ bản về đối tượng (Objects), những đối tượng dữ liệu đơn giản
Ngôn ngữ lập trình Java 
Bài 3: Cơ bản về đối tượng (Objects), những đối tượng dữ liệu đơn giản. 
Life Cycle của một đối tượng 
Tạo ra đối tượng 
Có 3 bước chính: 
Khai báo biến tham chiếu (reference): type name 
Khởi tạo đối tượng: new class 
Gọi constructor của đối tượng: constructor cùng tên với lớp, không có giá trị trả về. 
Có thể gộp thành một bước: 
Point originOne = new Point(23, 94); 
Chú ý: Khi định nghĩa class, nếu ta không định nghĩa bất kỳ constructor nào, java compiler sẽ tạo cho ta một default constructor không có tham số, cùng access modifier với class. 
Sử dụng đối tượng 
Tham chiếu đến biến của đối tượng (qualified name): objectReference.variableName 
Gọi phương thức của đối tượng: objectReference.method([argumentList]) 
Access Modifier: private < default < protected < public: 
+ private: this object, class only. 
+ default: all classes in the same package. 
+ protected: the subclasses. Java 1.5 có thêm hạn chế: nếu subclass ở package khác, chỉ có thể truy cập đến protected members của đối tượng hiện thời. 
+ public: all classes. 
Thu hồi những đối tượng không còn sử dụng 
Đối tượng không còn được sử dụng khi các tham chiếu đến nó ra khỏi phạm vi hoặc không còn tham chiếu đến nó: 
Point pt = new Point(0, 0); pt = null; 
Java tự động thu hồi những đối tượng không còn được sử dụng – garbage collection. 
Ta có thể thúc đẩy garbage collection bằng: System.gc() hoặc Runtime.gc(). 
Ta không thể khẳng định được khi nào một đối tượng sẽ bị thu hồi. 
Character 
Static methods của lớp Character 
Method 
Description 
boolean isLetter(char ch) boolean isDigit(char ch) 
Determines whether the specified char value is a letter or a digit, respectively. 
boolean isWhiteSpace(char ch) 
Determines whether the specified char value is white space according to the Java platform. 
boolean isUpperCase(char ch) boolean isLowerCase(char ch) 
Determines whether the specified char value is upper- or lowercase, respectively. 
char toUpperCase(char ch) char toLowerCase(char ch) 
Returns the upper- or lowercase form of the specified char value. 
toString(char ch) 
Returns a String object representing the specified character value. 
int digit(char ch, int radix) 
Returns the numeric value of the character in the specified radix. 
String, StringBuffer, StringBuilder 
Khi nào sử dụng String, StringBuilder, StringBuffer 
String: Khi nội dung của xâu sẽ không thay đổi – String object là immutable (đối tượng sẽ không thay đổi sau khi khởi tạo). 
StringBuilder (Chỉ từ Java 1.5 mới có lớp này): Khi nội dung của xâu sẽ thay đổi. Chỉ có 1 thread truy cập đến nội dung của xâu (Not threadsafe). Bù lại, tốc độ nhanh. 
StringBuffer: Khi nội dung của xâu sẽ thay đổi. Có thể có nhiều thread truy cập đến nội dung của xâu (threadsafe). Hạn chế tốc độ chậm. 
StringBuilder, StringBuffer định nghĩa method append cho bất kỳ kiểu dữ liệu nào. 
Tạo String, StringBuilder, StringBuffer 
Hãy tra cứu trong JDK 1.5 những constructor của các lớp này. 
Ví dụ: 
String palindrome = "Dot saw I was Tod"; 
char[] helloArray = { 'h', 'e', 'l', 'l', 'o' }; 
String helloString = new String(helloArray); 
System.out.println(helloString); 
Constructors của StringBuilder (tương tự với StringBuffer): StringBuilder(), StringBuilder(CharSequence), StringBuilder(int), StringBuilder(String). 
Độ dài của String, StringBuilder, StringBuffer 
Độ dài: phương thức length(), trả về int là độ dài của xâu tính theo số ký tự. 
StringBuilder, StringBuffer còn có phương thức capacity(), trả về int là độ lớn của bộ đệm. 
Ví dụ: 
String palindrome = "Dot saw I was Tod"; 
int len = palindrome.length(); 
Truy cập đến các ký tự trong String, StringBuilder, StringBuffer 
Phương thức charAt(int), và substring(int [, int]). 
Ví dụ: 
String anotherPalindrome = "Niagara. O roar again!"; 
char aChar = anotherPalindrome.charAt(9); 
Tìm kiếm ký tự, substring trong String 
Method 
Description 
int indexOf(int) 
int lastIndexOf(int) 
Returns the index of the first (last) occurrence of the specified character. 
int indexOf(int, int) 
int lastIndexOf(int, int) 
Returns the index of the first (last) occurrence of the specified character, searching forward (backward) from the specified index. 
int indexOf(String) 
int lastIndexOf(String) 
Returns the index of the first (last) occurrence of the specified string. 
int indexOf(String, int) 
int lastIndexOf(String, int) 
Returns the index of the first (last) occurrence of the specified string, searching forward (backward) from the specified index. 
boolean contains(CharSequence) 
Returns true if the string contains the specified character sequence 
Thay thế ký tự, substring trong String 
Method 
Description 
String replace(char, char) 
Replaces all occurrences of the character specified as the first argument with the character specified as the second argument. If no replacements are necessary, the original string object is returned. 
String replaceAll(String regex, String replacement) 
Replaces each substring of this string that matches the specified regular expression. 
So sánh Strings, từng phần trong String 
Method 
Description 
boolean endsWith(String) boolean startsWith(String) boolean startsWith(String, int) 
int compareTo(String) int compareToIgnoreCase(String) 
boolean equals(Object) boolean equalsIgnoreCase(String) boolean contentEquals(CharSequence) 
boolean regionMatches(int, String, int, int) boolean regionMatches(boolean, int, String, int, int) 
boolean matches(String regex) 
Thao tác trên String 
Method 
Description 
String concat(String) 
String[] split(String, int) String[] split(String) 
int - max return array size 
CharSequence subSequence(int, int) 
String trim() 
String toLowerCase() String toUpperCase() 
Thao tác trên StringBuilder, StringBuffer 
StringBuffer append(boolean) StringBuffer append(char) StringBuffer append(char[]) StringBuffer append(char[], int, int) StringBuffer append(double) StringBuffer append(float) StringBuffer append(int) StringBuffer append(long) StringBuffer append(Object) StringBuffer append(String) 
StringBuffer delete(int, int) StringBuffer deleteCharAt(int) 
StringBuffer insert(int, boolean) StringBuffer insert(int, char) StringBuffer insert(int, char[]) StringBuffer insert(int, char[], int, int) StringBuffer insert(int, double) StringBuffer insert(int, float) StringBuffer insert(int, int) StringBuffer insert(int, long) StringBuffer insert(int, Object) StringBuffer insert(int, String) 
StringBuffer replace(int, int, String) void setCharAt(int, char) 
StringBuffer reverse() 
Number 
Number classes 
Những method chung của lớp Number 
Method 
Description 
byte byteValue() 
short shortValue() 
int intValue() 
long longValue() 
float floatValue() 
double doubleValue() 
Convert the value of this number object to the primitive data types of byte , short, int, long, float, and double. 
compareTo 
Compare this number object to the argument. Note that the Number class does not implement the Comparable interface, but most of the subtypes implement Comparable. 
boolean equals(Object) 
Determine whether this number object is equal to the argument. Note that the Number class does not override the equals method from Object.. 
Một số constant hữu ích của lớp Float và Double 
Constant 
Description 
Float.NaN 
Double.NaN 
Not a Number . Returned by certain methods in the java.lang.Math class when the result is undefined for the arguments passed to the method. 
Float.NEGATIVE_INFINITY 
Double.NEGATIVE_INFINITY 
The negative infinity value for a float or a double. 
Float.POSITIVE_INFINITY 
Double.POSITIVE_INFINITY 
The positive infinity value for a float or a double. 
Chuyển từ String sang Number 
Sử dụng phương thức static của wrapper class (Byte, Integer, Double, Float, Long, Short): valueOf – return wrapper type. 
Ví dụ: 
float f = Float.valueOf(“9.3”).floatValue(); 
double d = Double.valueOf(“9.3e2”).doubleValue(); 
Chuyển từ Number sang String 
Có 3 cách: 
Dùng toán tử gép xâu với xâu “”. 
Dùng phương thức static String.valueOf(primitive). 
Dùng phương thức static toString(primitive) của các lớp: Byte, Short, Integer, Long, Float, Double. 
Ví dụ: 
int i; 
String s1 = “” + i; 
String s2 = String.valueOf(i); 
String s3 = Integer.toString(i); 
Những phép toán số học nâng cao 
Method of Math class 
Description 
double abs(double) 
float abs(float) 
int abs(int) 
long abs(long) 
Trả về giá trị tuyệt đối 
double ceil(double) 
Trả về giá trị nguyên lớn nhất nhỏ hơn đối số 
double floor(double) 
Trả về giá trị nguyên nhỏ nhất lớn hơn đối số 
double rint(double) 
Trả về giá trị nguyên gần với đối số nhất kiểu double (rint – round integer) 
long round(double) 
int round(float) 
Trả về giá trị làm tròn của đối số kiểu long, int 
Arrays 
Tổng quát về Array 
Array là một cấu trúc lưu trữ nhiều giá trị của cùng một kiểu. Độ dài của array được thiết lập khi array được tạo ra. Sau khi tạo ra, độ dài của array không thay đổi được. 
Tạo và sử dụng Arrays (1) 
Khai báo biến tham chiếu đến array: elementType[] name ; 
int[] anArray; //Không khai báo kích thước của array. 
boolean[] anArrayOfBooleans; 
Object[] anArrayOfObjects; 
String[] anArrayOfStrings; 
Tạo (cấp phát) array: new elementType[size] ; 
anArray = new int[10]; 
Array Initializers: shortcut syntax để tạo và thiết lập giá trị cho array: {list of values} ; 
boolean[] answers = {true, false, true, true, false}; 
Tạo và sử dụng Arrays (2) 
Truy cập đến phần tử của Array: arrayname[index] 
for(int i=0; i<anArray.length; i++) { 
	anArray[i] = i; 
	System.out.println(anArray[i]); 
} 
Lấy kích thước của mảng: arrayname.length 
System.out.println(anArray.length); 
Array của Objects 
Array có thể chứa kiểu tham chiếu (reference) cũng như kiểu cơ sở (primitive). Việc tạo, khởi tạo đều giống nhau: 
String[] anArray = {“String One”, “String Two”, “String Three”}; 
Object[] anObjArray = { “String”, new Integer(10), new Byte(2)}; 
Array của Arrays (1) 
Array có thể chứa những phần tử là Array. Khi đó, cấp phát Array bằng new, chỉ số cuối cùng không được có mặt. 
String[][] anArray = { {“One”, “Two”}, {“Three”, “Four”}}; 
int[][] aMatrix = new int[4][]; aMatrix[1] = new int[3]; aMatrix[2] = new int[5]; 
Copy Array 
Để copy array, ta dùng phương thức static của lớp System: 
public static void arraycopy(Object source, int srcIndex, Object dest, int destIndex, int length). 
Array của Arrays (2) 

File đính kèm:

  • pptxbai_giang_ngon_ngu_lap_trinh_java_bai_3_co_ban_ve_doi_tuong.pptx