Lập trình hướng đối tượng trong Java

Mỗi một chương trình máy tính đều gồm có 2 phần : phần mã lệnh và phần dữ liệu. Một số chương trình đặt trọng tâm ở phần mã lệnh, số khác đặt trọng tâm ở phần dữ liệu. Từ đó dẫn đến 2 mô hình quyết định nên cấu trúc của chương trình : một trả lời cho câu hỏi “Điều gì đang xảy ra”, và một cho “Cái gì đang chịu tác động”. Mô hình 1 gọi là mô hình hướng xử lý, nó mô tả như là một chương trình bao gồm một chuỗi các bước thực hiện (mã lệnh). Nhưng khi chương trình càng ngày càng lớn và phức tạp thì khó khăn để sử dụng mô hình thứ nhất.

Vì vậy mô hình thứ 2 được đưa ra, đó là mô hình hướng đối tượng. Chương trình của bạn sẽ xây dựng dựa vào dữ liệu và phần giao diện được định nghĩa cho phần dữ liệu đó. Mô hình này được mô tả như là dữ liệu điều khiển truy xuất đối với mã lệnh.

Ngôn ngữ lập trình hướng đối tượng có các khả năng sau :

- Mô phỏng thế giới thực một cách tự nhiên bởi các đối tượng và mối quan hệ giữa chúng, thuận tiện cho việc thiết kế hệ thống phức tạp

- Thừa kế mã có sẵn một cách dễ dàng, giúp tiết kiệm công sức và nâng cao năng suất của người lập trình, dễ bảo trì, dễ nâng cấp, mở rộng

 

doc32 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 3938 | Lượt tải: 1download
Tóm tắt nội dung Lập trình hướng đối tượng trong Java, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
areTo(String str) : so sánh 2 chuỗi, trả về giá trị :
	nếu < 0 : chuỗi nhỏ hơn str
	nếu > 0 : chuỗi lớn hơn str
	nếu = 0 : chuỗi bằng str
- int indexOf(int character) : trả về vị trí tìm thấy đầu tiên (cuối cùng) của ký tự character
int lastIndexOf(int character) 
- int indexOf(int character, int from) : trả về vị trí tìm thấy đầu tiên (cuối cùng) của ký tự character, kể từ vị trí from về cuối chuỗi (hay đầu chuỗi)
int lastIndexOf(int character, int from) 
- int indexOf(String string) : trả về vị trí tìm thấy đầu tiên (cuối cùng) của chuỗi string
int lastIndexOf(String string) 
- int indexOf(String string, int from) : trả về vị trí tìm thấy đầu tiên (cuối cùng) của chuỗi string, kể từ vị trí from về cuối chuỗi (hay đầu chuỗi)
int lastIndexOf(String string, int from) 
- String subString(int startIndex, int endIndex) : trả về chuỗi con của một chuỗi bắt đầu từ vị trí startIndex đến vị trí endIndex-1, nếu không có endIndex thì lấy đến cuối chuỗi
	String org = “This is a test”;
	String result = “”;
	result = org.subString(8);
- String replace(char orginal, char replacement) : thay thế ký tự replacement cho ký tự orginal
	String s = “Hello”.replace(‘l’,’w’);	// Cho s bằng “Hewwo”
- String trim() : cắt bỏ khoảng trống trước và sau chuỗi
- String toLowerCase() : đổi chuỗi thành chuỗi thường 
- String toUpperCase() : đổi chuỗi thành chuỗi hoa
	String s = “This is a test”;
	String upper = s.toUpperCase();
- Toán tử + : để kết nối hai đối tượng String, hay một đối tượng String và một giá trị khác thành đối tượng String, 
String s1 = "two";
System.out.println("one" + s1 + "three");
System.out.println("Word v. " + 9+7);
Vì đối tượng String không thể thay đổi do đó bất cứ lúc nào bạn muốn thay đổi chúng, bạn phải copy chuỗi vào StringBuffer, nhưng với toán tử +, bạn có thể viết như sau vì Java tự chuyển sang StringBuffer và thay đổi chuỗi
s1 = s1 + “three”;
Vì vậy, có thể viết lại chương trình đảo chuỗi trên, không cần thiết phải chuyển sang StringBuffer
public class ReverseString {
public static String reverse(String source) {
int i, len = source.length();
String dest = “”;
for (i = (len - 1); i >= 0; i--) 
dest = dest + source.charAt(i);
return dest;
}
}
- static String valueOf(object/var x) : 
là hàm lớp, trả về một chuỗi để chuyển đổi các biến kiểu sơ cấp hay đối tượng x thành một String
Ví dụ : 	PI là một biến lớp của lớp Math, để in giá trị của sô PI :
System.out.println(String.valueOf(Math.PI)); 
2. Lớp StringBuffer
Tạo một đối tượng StringBuffer
Phương thức khởi tạo của lớp StringBuffer có dạng :
StringBuffer() : dùng cho chuỗi 16 ký tự
StringBuffer(int length) : dùng cho chuỗi length ký tự
Ví dụ :	 StringBuffer dest = new StringBuffer(25);
Các phương thức thường dùng của lớp StringBuffer
- int length() : cho chiều dài chuỗi
- char charAt(int index) : trả về ký tự tại vị trí thứ index
- void setCharAt(int index, char ch) : đặt ký tự ch vào StringBuffer, tại vị trí index
- StringBuffer append(object/var x) : bổ sung đối tượng hay biến x kiểu bất kỳ vào cuối StringBuffer. Dữ liệu được chuyển thành chuỗi trước khi bổ sung vào StringBuffer
	int a = 20;
StringBuffer sb = new StringBuffer(40);
	String s = sb.append(“a =”).append(a).toString̣();
- StringBuffer insert(int index, object/var x) : chèn một đối tượng hay biến x kiểu bất kỳ vào vị trí thứ index
StringBuffer sb = new StringBuffer("I Java!");
sb.insert(3, "like ");
System.out.println(sb);	// Cho chuỗi “I like Java”
- StringBuffer reverse() : đảo ngược các ký tự của chuỗi
StringBuffer sb = new StringBuffer("I Java!");
	sb.reverse();
- StringBuffer delete(int startIndex, int endIndex) : xoá chuỗi con từ startIndex đến endIndex-1
- StringBuffer deleteCharAt(int index) : xoá ký tự tại vị trí index
- StringBuffer subString(int startIndex, int endIndex) : trả về chuỗi con của một chuỗi bắt đầu từ vị trí startIndex đến vị trí endIndex-1, nếu không có endIndex thì lấy đến cuối chuỗi
- StringBuffer replace(int startIndex, int endIndex, String str) : thay thế chuỗi str vào vị trí bắt đầu là startIndex đến endIndex-1 của chuỗi
Bạn hãy xem thêm java.lang.String and java.lang.StringBuffer để có được định nghĩa đầy đủ các phương thức và biến cài đặt cho hai lớp này 
III. LỚP NUMBERS
Như đã nói ở trên, trong gói java.lang có sẵn những lớp tương ứng với các kiểu sơ cấp, có thể dùng thay cho kiểu sơ cấp : lớp Integer thay cho kiểu int, lớp Boolean cho kiểu boolean… Lớp Number là lớp cha của mọi lớp bọc kiểu
Các lớp bọc kiểu số: Byte, Double, Float, Integer, Long, Short
Các lớp bao bọc cho các kiểu dữ liệu khác : Boolean, Character, Void, Math
1. Tạo một đối tượng 
	Float f = new Float(25.5);
	Float f = new Float(“24.5”);
- Các hàm khởi tạo của các lớp bọc kiểu số
	Float(double n)
	Float(float n)
	Float(string str)
	Double(double n)
	Double(string str)
	Tương tự với các lớp bọc kiểu số khác
2. Các phương thức thường dùng cho các lớp kiểu số
- Các phương thức trả về giá trị của các đối tượng tương ứng với các dạng số khác nhau
	byte byteValue()	// trả về dạng số byte
	short shortValue()
	int intValue()
	long longValue()
	double doubleValue()
	float floatValue()
	Integer intObj = new Integer(25);
int i = intObj.intValue(); // cho i = 25
- Các phương thức lớp chuyển đổi một chuỗi thành giá trị số tương ứng
static byte parseFloat(String str)
static short parseShort(String str)
static int parseInt(String str)
static long parseLong(String str)
static double parseDouble(String str)
static float parseFloat(String str)
String s = “42”;
int i =Integer.parseInt(s); 	// cho i = 42
- int compareTo(floatObj/floatVar f ) : so sánh giá trị của đối tượng số với đối tượng hay biến số f, trả về giá trị :
	nếu = 0 : bằng nhau
	nếu = số âm : giá trị của đối tượng nhỏ hơn f
	nếu = số dương : giá trị của đối tượng lớn hơn f
- boolean equals(floatObj f ) : nếu = true nghĩa là giá trị của đối tượng bằng f
- string toString() : chuyển một đối tượng thành String. 
Tất cả các lớp kế thừa toString từ lớp Object và nhiều lớp khác trong gói java.lang viết đè phương thức này để cung cấp một cài đặt mà có ý nghĩa với class đó. Chẳng hạn, các lớp bọc kiểu Character, Integer, Boolean… đều viết đè toString
Ví dụ :	Integer i = new Integer(20);
	System.out.println(i.toString());
- static String toString(var n) : đây là hàm lớp để chuyển biến số n thành chuỗi
	String s = Integer.toString(25)	// Cho chuỗi s là “25”
- static Float valueOf(String str) : đây là hàm lớp trả về đối tượng Float của giá trị str, tương tự với các lớp bọc kiểu số khác 
	String s = “42.5”;
	Integer i = Integer.valueOf(s);
Ví dụ : Viết đoạn chương trình nhập : họ tên không quá 20 ký tự, năm sinh >1970 và <2100, có kiểm tra cho đến khi người dùng nhập đúng
import java.io.*;
public class Nhap {
public static void main (String [] args) throws IOException	{
DataInputStream kbd = new DataInputStream (System.in);
	String s = null;
	String ns = null;
	// Nhap ho ten
	while (true) {
	System.out.print("Nhap Ho va ten : ");
	s = kbd.readLine();
if ( (s.length() <=20) && (s.length() != 0) ) {
	 	System.out.println("Ho va ten la : "+ s);
	 	break;
	 	}
	 	System.out.println("Phai nhap ho ten khong qua 20 ky tu");
	}
	// Nhap nam sinh
	while (true) {
	try {
	System.out.print("Nhap nam sinh : ");
	s = kbd.readLine();
	int i =Integer.parseInt(s);
	if ((i=2100)) throw new 
NumberFormatException();
	System.out.println("Nam sinh la : "+i);
	break;
	}
	catch (IOException e){}
	catch(NumberFormatException e){
	System.out.println("Ban Phai nhap lai nam sinh trong khoang 
1970 den 2100");
	}
	}
	}
} 
Bạn hãy xem thêm java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Double, java.lang.Float để có được định nghĩa đầy đủ các phương thức và biến cài đặt cho các lớp này 
MỤC LỤC
Chương : LẬP TRINH HƯỚNG ĐỐI TƯỢNG TRONG JAVA
I. KHÁI NIỆM LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
	1. Lập trình hướng đối tượng	
	2. Trừu tượng hoá	
II. CƠ CHẾ TRIỂN KHAI MÔ HÌNH HƯỚNG ĐỐI TƯỢNG
	1. Tính đóng gói	
	2. Tính kế thừa	
	3. Tính đa hình	
Chương: ĐỐI TƯỢNG VÀ LỚP, MẢNG
I. XÂY DỰNG LỚP	
II. TẠO ĐỐI TƯỢNG
	1. Khai báo đối tượng	
	2. Cách truy xuất thành phần của lớp	
III. GIỚI THIỆU VỀ PHƯƠNG THỨC
	1. Khai báo phương thức	
	2. Phạm vi truy xuất thành phần của lớp	
	3. Phương thức Main()	
	4. Hàm khởi tạo	
	5. Hàm hủy	
	6. Từ khoá this	
	7. Nạp chồng hàm	
	8. Truyền tham đối	
IV. LỚP KẾ THỪA
	1. Khai báo kế thừa	
	2. Viết chồng hàm	
	3. Từ khoá super	
V. LỚP VÀ PHƯƠNG THỨC TRỪU TƯỢNG	
VI. LỚP HẰNG (KHÔNG KẾ THỪA) VÀ HÀM HẰNG (KHÔNG VIẾT CHỒNG)
	1. Cấm sự viết chồng	
	2. Cấm sự kế thừa	
VII. LỚP LỒNG NHAU
VIII. CHUYỂN ĐỔI KIỂU
	1. Kiểu sơ cấp thành kiểu phức hợp	
	2. Giữa các kiểu phức hợp	
IX. MẢNG
	1. Tạo và sử dụng mảng	
	2. Mảng đa chiều	
	3. Sao chép mảng	
Chương : GÓI VÀ GIAO DIỆN
I. GÓI
	1. Định nghĩa gói	
	2. Điều khiển truy xuất	
	3. Sử dụng gói	
II. GIAO DIỆN
	1. Định nghĩa giao diện	
	2. Hiện thực giao diện	
	3. Truy xuất hiện thực thông qua tham chiếu giao diện	
	4. Biến trong giao diện	
	5. Kế thừa giao diện	
Chương : LỚP STRING VÀ NUMBER
I. TỔNG QUÁT	
II. LỚP STRING	
III. LỚP NUMBER	

File đính kèm:

  • docLập trình hướng đối tượng trong Java.doc
Tài liệu liên quan