Core Java - Chương 3: Nền tảng của ngôn ngữ Java

Mục tiêu của bài:

Kết thúc chương này bạn có thể:

¾ Đọc hiểu một chương trình viết bằng Java

¾ Nắm bắt những khái niệm cơbản vềngôn ngữJava

¾ Nhận dạng các kiểu dữliệu

¾ Nhận dạng các toán tử

¾ Định dạng kết quảxuất liệu (output) sửdụng các chuỗi thoát (escape sequence)

¾ Nhận biết các cấu trúc lập trình cơbản

pdf60 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2799 | Lượt tải: 0download
Tóm tắt nội dung Core Java - Chương 3: Nền tảng của ngôn ngữ Java, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
p Vector thành kích thước 
mới được chỉ định. 
Size() Trả về số của các phần tử hiện thời trong lớp Vector. 
toString() Trả về một đại diện chuỗi được định dạng nội dung 
của lớp Vector. 
trimToSize() Định lại kích thước của lớp Vector để di chuyển dung 
lượng thừa trong nó. 
Bảng 4.11 Các phương thức lớp Vector 
Chương trình sau tạo ra một lớp Vector “vect”. Nó chứa 6 phần tử: “Numbers In Words”, 
“One”, “Two”, “Three”, “Four”, “Five”. Phương thức removeElement()được sử dụng để xoá 
các phần tử từ “vect”. 
Chương trình 4.13 
import java.util.*; 
public class VectorImplementation 
{ 
 public static void main(String args[]) 
 { 
 Vector vect = new Vector(); 
 vect.addElement(“One”); 
 Chöông trình ñaøo taïo kyõ thuaät vieân quoác teá 
 Core Java 
Aptech 9/2002 55 
 vect.addElement(“Two”); 
 vect.addElement(“Three”); 
 vect.addElement(“Four”); 
 vect.addElement(“Five”); 
 vect.insertElementAt(“Numbers In Words”,0); 
 vect.insertElementAt(“Four”,4); 
 System.out.println(“Size: “+vect.size()); 
 System.out.println(“Vector “); 
 for(int i = 0; i<vect.size(); i++) 
 { 
 System.out.println(vect.elementAt(i)+” , “); 
 } 
 vect.removeElement(“Five”); 
 System.out.println(“”); 
 System.out.println(“Size: “+vect.size()); 
 System.out.println(“Vector “); 
 for(int i = 0;i<vect.size();i++) 
 { 
 System.out.print(vect.elementAt(i)+ “ , “); 
 } 
 } 
} 
Quá trình hiển thị kết quả sẽ được mô tả như hình dưới. 
Hình 4.5 Quá trình hiển thị kết quả của chương trình lớp Vector. 
 Chöông trình ñaøo taïo kyõ thuaät vieân quoác teá 
 Core Java 
 56 Aptech 9/2002 
4.7.4 Lớp StringTokenizer 
Một lớp StringTokenizer có thể sử dụng để tách một chuỗi thành các phần tử token của nó. Ví 
dụ, mỗi từ trong một câu có thể coi như là một token. Tuy nhiên, lớp StringTokenizer đã đi xa 
hơn việc phân tách của các câu. Để tạo nên một mã thông báo đầy đủ theo yêu cầu, bạn có thể 
chỉ định một bộ dấu phân cách token, khi lớp StringTokenizer được tạo ra. Dấu phân cách 
khoảng trắng mặc định thì thường có khả năng để tách văn bản. Tuy nhiên, chúng ta có thể sử 
dụng tập các toán tử toán học (+, *, /, và -) trong khi phân tách một biểu thức. Các ký tự phân 
cách có thể chỉ định khi một đối tượng StringTokenizer mới được xây dựng. Bảng sau tóm tắt 
3 phương thức xây dựng có sẵn: 
Phương thức xây dựng Mục đích 
StringTokenizer(String) Tạo ra một lớp StringTokenizer mới dựa 
trên chuỗi chỉ định được thông báo. 
StringTokenizer Tạo ra một lớp StringTokenizer mới dựa 
trên (String, String) chuỗi chỉ định được 
thông báo, và một tập các dấu phân cách. 
StringTokenizer(String, String, 
Boolean) 
Tạo ra một lớp StringTokenizer dựa trên 
chuỗi chỉ định được thông báo, một tập các 
dấu phân cách, và một cờ hiệu cho biết 
nếu các dấu phân cách sẽ được trả về như 
các token. 
Bảng 4.12 Các phương thức xây dựng của lớp StringTokenizer. 
Các phương thức xây dựng ở trên được sử dụng trong các ví dụ sau: 
StringTokenizer st1 = new StringTokenizer(“A Stream of words”); 
StringTokenizer st2 = new StringTokenizer(“4*3/2-1+4”, “+/-”, true); 
StringTokenizer st3 = new StringTokenizer(“aaa,bbbb,ccc”, “,”); 
Trong câu lệnh đầu tiên, StringTokenizer của “st1” sẽ được xây dựng bằng cách sử dụng các 
chuỗi được cung cấp và các dấu phân cách mặc định. Các dấu phân cách mặc định là khoảng 
trắng, tab, dòng mới, và các ký tự xuống dòng. Các dấu phân cách này thì hữu dụng khi phân 
tách văn bản, như với “st1”. 
Câu lệnh thứ hai trong ví dụ trên xây dựng một lớp StringTokenizer cho các biểu thức toán 
học bằng cách sử dụng các ký hiệu *, +, /, và -. 
Câu lệnh thứ 3, StringTokenizer của “st3” sẽ thông báo chuỗi được cung cấp chỉ bằng cách sử 
dụng ký tự dấu phẩy như một dấu phân cách. 
Lớp StringTokenizer thực thi giao diện bảng liệt kê. Vì thế, nó bao gồm các phương thức 
hasMoreElements() và nextElement(). Các phương thức non-private của lớp StringTokenizer 
được tóm tắt trong bảng sau: 
Phương thức Mục đích 
countTokens() Trả về số các token còn lại. 
hasMoreElements() Trả về True nếu nhiều phần tử đang được 
đánh dấu trong chuỗi. Nó thì giống hệt như 
hasMoreTokens. 
hasMoreTokens() Trả về True nếu nhiều tokens đang được 
đánh dấu trong chuỗi. Nó thì giống hệt như 
hasMoreElements. 
 Chöông trình ñaøo taïo kyõ thuaät vieân quoác teá 
 Core Java 
Aptech 9/2002 57 
nextElement() Trả về phần tử kế tiếp trong chuỗi. Nó thì 
giống như nextToken. 
nextToken() Trả về Token kế tiếp trong chuỗi. Nó thì 
giống như nextElement. 
nextToken(String) Thay đổi bộ dấu phân cách đến chuỗi được 
chỉ định, và sau đó trả về token kế tiếp 
trong chuỗi. 
Bảng 4.13 Các phương thức lớp StringTokenizer. 
Hãy xem xét chương trình đã cho ở bên dưới. Trong ví dụ này, hai đối tượng StringTokenizer 
đã được tạo ra. Đầu tiên, “st1” được sử dụng để phân tách một biểu thức toán học. Thứ hai, 
“st2” phân tách một dòng của các trường được phân cách bởI dấu phẩy. Cả hai tokenizer, 
phương thức hasMoreTokens() và nextToken() được sử dụng đế lặp đi lặp lại thông qua tập 
các token, và sau đó được hiển thị. 
Chương trình 4.13 
import java.util.*; 
public class StringTokenizerImplementer 
{ 
 public static void main(String args[]) 
 { 
 // đặt một biểu thức toán học trong một chuỗi và tạo một tokenizer cho chuỗi đó. 
 String mathExpr = “4*3+2/4”; 
 StringTokenizer st1 = new StringTokenizer(mathExpr,”*+/-“, true); 
 //trong khi có các token trái, hãy hiển thị mỗi token 
 System.out.println(“Tokens f mathExpr: “); 
 while(st1.hasMoreTokens()) 
 System.out.println(st1.nextToken()); 
 //tạo một chuỗi của các trường được phân cách bởi dấu phẩy và tạo một tokenizer cho 
chuỗi. 
 String commas = “field1,field2,field3,and field4”; 
 StringTokenizer st2 = new StringTokenizer(commas,”,”,false); 
 //trong khi có các token trái, hãy hiển thị mỗi token. 
 System.out.println(“Comma-delimited tokens : “); 
while (st2.hasMoreTokens()) 
System.out.println(st2.nextToken()); 
 } 
} 
Quá trình hiển thị kết quả sẽ được mô tả như hình dưới. 
 Chöông trình ñaøo taïo kyõ thuaät vieân quoác teá 
 Core Java 
 58 Aptech 9/2002 
Hình 4.6 Quá trình hiển thị kết quả của lớp StringTokenizer. 
Tóm tắt bài học 
¾ Khi không có sự thi hành để thừa kế, một giao diện được sử dụng thay cho một lớp ảo. 
¾ Một gói là một thư mục mà bạn tổ chức các giao diện và các lớp của bạn. 
¾ Một CLASSPATH là một danh sách của các thư mục để giúp đỡ tìm kiếm cho tập tin 
lớp tương ứng. 
¾ Lớp java.lang.Math cung cấp các phương thức để thực hiện các hàm toán học. 
¾ Các kiểu dữ liệu nguyên thủy có thể được vận dụng và được truy cập thông qua các 
lớp trình bao bọc của chúng. 
¾ Các lớp String được sử dụng để tạo và chế tác các chuỗi, các chuỗi có thể được gán, 
có thể được so sánh và được nối vào nhau. 
¾ Một chuỗi mặc định đại diện cho tất cả các chữ đã tạo ra trong một chương trình. 
¾ Lớp StringBuffer cung cấp các phương thức khác nhau để vận dụng một đối tượng 
chuỗi. Các đối tượng của lớp này thì linh động. Đó là, các ký tự hoặc các chuỗi có thể 
được chèn vào giữa đối tượng StringBuffer, hoặc được nối vào vị trí cuối cùng của 
chuỗi. 
¾ Lớp Runtime đóng gói môi trường thời gian chạy. 
¾ Lớp System cung cấp các thuận lợi như là, xuất, nhập chuẩn, và các luồng lỗi. 
¾ java.util chứa các lớp phi trừu tượng sau: 
• Hashtable 
• Random 
• Vector 
• StringTokenizer 
¾ Lớp Hashtable có thể được sử dụng để tạo một mảng của các khoá và các giá trị. Nó 
cho phép các phần tử được tra cứu bởi khoá hoặc giá trị. 
¾ Lớp Random là một bộ tạo số ngẫu nhiên giả mà có thể trả về các giá trị kiểu integer, 
dấu phẩy động (floating-point), hoặc Gaussian-distributed. 
 Chöông trình ñaøo taïo kyõ thuaät vieân quoác teá 
 Core Java 
Aptech 9/2002 59 
¾ Lớp Vector có thể sử dụng để lưu trữ bất kỳ các đối tượng nào. Nó có thể lưu trữ các 
đối tượng của nhiều hơn một kiểu trong các vector tương tự. 
¾ Lớp StringTokenizer cung cấp một cơ chế động cho việc phân tách các chuỗi. 
Kiểm tra kiến thức của bạn 
1. …………………sẽ luôn đến đầu tiên giữa các gói, các khai báo và lớp trong chương 
trình Java. 
2. Một giao diện có thể chứa nhiều các phương thức. True/False 
3. Trong khi việc tạo một gói, thì mã nguồn phải hiện có trong thư mục tương tự, thư 
mục đó chính là tên của gói bạn. True/False 
4. Một………………..là một danh sách của các thư mục, mà giúp đỡ tìm kiếm cho các 
tập tin lớp tương ứng. 
5. Lớp bao bọc cho các kiểu dữ liệu double và long cung cấp 
……………….và……………..các hằng. 
6. …………………phương thức được sử dụng để thay thế một ký tự trong lớp 
StringBuffer, với một ký tự khác tại vị trí được chỉ định. 
7. Một……………………...được sử dụng để ánh xạ các khoá thành các giá trị. 
8. ………………….Phương thức của lớp StringTokenizer trả về số của các token còn 
lại. 
Bài tập 
1. Tạo một giao diện và sử dụng nó trong một chương trình của Java để hiển thị bình 
phương và luỹ thừa 3 của một số. 
2. Tạo một gói và viết một hàm, hàm đó trả về giai thừa của một đối số được truyền đến 
trong một chương trình. 
3. Viết một chương trình bằng cách sử dụng các hàm của lớp Math để hiển thị bình 
phương của các số lớn nhất và nhỏ nhất của một tập các số được nhập vào bởi người 
sử dụng bằng dòng lệnh. 
4. Hãy tạo ra sổ ghi nhớ của chính bạn, nơi mà những con số được nhập vào như sau: 
Joy 34543 
Jack 56765 
Tina 34567 
Bảng 4.14 
Chương trình phải làm như sau: 
¾ Kiểm tra xem số 3443 có tồn tại trong sổ ghi nhớ của bạn hay không. 
¾ Kiểm tra xem mẫu tin của Jack có hiện hữu trong sổ ghi nhớ của bạn hay không. 
¾ Hiển thị số điện thoại của Tina. 
¾ Xoá số điện thoại của Joy. 
¾ Hiển thị các mẫu tin còn lại. 
 Chöông trình ñaøo taïo kyõ thuaät vieân quoác teá 
 Core Java 
 60 Aptech 9/2002 
5. Viết một chương trình mà nhập vào một số điện thoại tại dòng lệnh, như một chuỗi có 
dạng (091) 022-6758080. Chương trình sẽ hiển thị mã quốc gia (091), mã vùng (022), 
và số điện thoại (6758080) (Sử dụng lớp StringTokenizer). 

File đính kèm:

  • pdfCore Java - Chương 3_Nền tảng của ngôn ngữ Java.pdf