Bạn phải có thể thiết kế, viết, gỡ lỗi và chạy các chương trình JAVA với độ phức tạp “nào đó” Giải thích một ít về các chi tiết về cú pháp chúng ta xem các ví dụ về lập trình nê
Trang 1LOGO
Phạm Văn Nam Mobile: 0904 38 81 82 Email: nampv@ntu.edu.vn
Tổng quan về lập trình Java
Giới thiệu ngôn ngữ Java
Các kiểu dữ liệu cơ sở
Các cấu trúc điều khiển
Kiểu mảng và kiểu chuỗi
Trang 2 Để học:
JAVA là gì?
Lập trình hướng đối tượng với JAVA như thế nào?
Những tài nguyên lập trình nào mà JAVA cung cấp để
hỗ trợ cho lập trình “hiện đại”?
Lập trình mạng với JAVA như thế nào?
Bạn phải có thể thiết kế, viết, gỡ lỗi và chạy các
chương trình JAVA với độ phức tạp “nào đó”
Giải thích một ít về các chi tiết về cú pháp
chúng ta xem các ví dụ
về lập trình
nên rõ ràng hơn khi ta học nhiều hơn
Trang 3Giới thiệu ngôn ngữ Java
Ra đời tại Sun Microsystems bởi James Gosling
1991: Version đầu tiên với tên “Oak”
1995: Tên chính thức là Java
Dùng để phát triển ứng dụng cho các thiết bị điện tử
“thông minh”
Tạo các trang web có nội dung động (web applet)
Hiện nay, Java được sử dụng để phát triển nhiều loại
ứng dụng khác nhau: cơ sở dữ liệu, mạng, Internet,
các hệ thống phân tán trên mạng TCP/IP
Nó là miễn phí và có nguồn tư liệu rất tốt
Trang 4Ta cần những gì để phát triển các chương trình Java
thương mại nổi tiếng như:
Java Virtual Machine (Java VM)
Java Application Programming Interface (Java API)
Hardware-Platform Java VM Java API
myProgram.java
Java Platform
Mã nguồn
Trang 5Kiến trúc của Java
Java Development Kit – JDK
Bộ công cụ phát triển Java (JDK) gồm trình biên dịch,
thông dịch, trợ giúp, soạn tài liệu… và các thư viện
chuẩn
Lập trình viên thường sử dụng các lớp chuẩn để phát
triển ứng dụng
Ngoài ra còn một số thư viện khác như JSP,
JavaMail, Java TAPI…
¿Java Virtual Machine là gì?
Là một hệ điều hành mà nó chạy trên một hệ điều
hành khác (Ví dụ: Windows, Linux, MacOS)
Có một JVM khác nhau cho mỗi loại máy nhưng
tất cả chúng hoạt động giống nhau hoàn toàn
Chúng có thể hiểu mã Java đã biên dịch và thông
dịch nó sang các chỉ thị của ngôn ngữ máy
Hardware Operating System
Java Code Java Virtual M achines
Trang 6¿Ta có thể viết và thực thi những chương trình
Java gì trên một JVM ?
Stand-alone
Một chương trình tự trị (đa phần các chương trình mà ta
sẽ xem xét ở đây)
Chúng được biên dịch với trình biên dịch Java và chạy
với máy ảo Java (JVM)
Applets
Chương trình mà mã của nó được tải xuống trong một
trang web và được thực thi bên trong trình duyệt web
Trình duyệt web phải có một máy ảo Java trong nó để
có thể thực thi các chương trình loại này
Web server phải có thể chạy được java servlet với máy
ảo Java (ví dụ như TOMCAT)
EjBeans (J2EE)
Các bản/mảnh code (được gọi là beans) chúng được
thực thi bên trong một máy chủ ứng dụng được kết hợp
với một web server Nó rất giống với servlet nhưng được
quản lý theo một cách khác
Máy chủ ứng dụng cung cấp các chức năng nâng cao
hiệu năng của máy chủ
¿Ta có thể viết và thực thi những chương trình
Java gì trên một JVM ?
Trang 7Viết và chạy một ứng dụng Java độc lập
Hello.class (bytecode)
javac Hello.java
java Hello
01001011
Trang 8Điều gì làm cho Java có tính đa nền?
Java compiler (riêng biệt cho mỗi nền)
javac P1.java
Java interpreter (riêng biệt cho mỗi nền) còn được
gọi là Java Virtual Machine hay máy ảo Java
java P1
Program’s output
Trang 9Chỉ dẫn thực hành
Trong Windows: Nháy phải trên My
Computer, chọn Properties, chọn Advanced,
chọn Enviroment Variables, chọn biến PATH
và edit, thêm vào đường dẫn tới thư mục bin
của bộ JDK đã được cài đặt trên máy
Trong chế độ Console: Gõ lệnh
set Path=%Path%;đường dẫn tới bin
17
Một chương trình Java cơ bản
1 // Tên file : Hello.java
2 /* Tác giả : Tên Tác Giả */
3
4 public class Hello
5 {
6 // Phương thức main, điểm bắt đầu của chương trình
7 public static void main( String args[ ] )
bỏ qua những dòng có dấu chú thích
Điểm bắt đầu và kết thúc của lớp
Phương thức main() sẽ được gọi đầu tiên Mỗi CT thực thi phải có một phương thức main()
Hiển thị dãy ký tự ra màn hình
Trang 10Một chương trình Java cơ bản
Vào chế độ Console của Windows
Gõ câu lệnh javac Hello.java
Nếu không có thông báo lỗi, file Hello.class sẽ
Viết chương trình cho phép máy tính thiết lập
đoạn hội thoại như sau với người sử dụng
computer > Hello, input a number: 1234
computer > My number is 1235
computer > So I win this time
Số được gõ bởi người sử dụng ( màu xanh )
Nó có thể là một số nguyên n nào đó, và máy
tính sẽ luôn trả lời với số n + 1
Trang 11
My First Java Program
public class Programm1 {
public static void main(String args[]) {
Console con = new Console() ;
con print(”Helo, input a number : ");
con print(" My number is ");
con print( yourNumber+1 );
con println(”So I win this time !");
đưa vào máy tính và để viết các thông điệp Câu lệnh này
tạo một đối tượng mới thuộc lớp Console Định danh cho
đối tượng đó sẽ là con
con.print(“ ”); thực thi phương thức in/viết lên đối
tượng con, nó sẽ in chuỗi được đặt trong cặp dấu nháy
kép
int yourNumber; khai báo một biến nguyên
yourNumber =con.readInt(); thực hiện phương thức
readInt nó sẽ đợi cho đến khi user nhập vào một số
nguyên từ bàn phím và lưu giữ nó trong biếnyourNumber
con.println(“ ”); giống như print nhưng nó sẽ thêm vào
một dấu kết thúc dòng
Trang 12
Giải thích (tiếp)
Console không phải là một lớp thuộc về một
phần của ngôn ngữ Java !!!
Nó được phát triển cho bài giảng này để
nhập/xuất dữ liệu thuận tiện hơn
Để dùng nó, ta cần phải làm cho nó được nhìn
thấy bởi chương trình mà ta đang biên dịch
Có ít nhất 3 phương pháp khác nhau:
Đặt tất cả các files mà chúng cài đặt lớp Console vào
trong cùng thư mục với chương trình của bạn
( Console.class, ConsoleCanvas.class,
Message.class, FatalError.class )
Tạo một jar file với 4 class files và sử dụng nó trong
quá trình biên dịch và thực thi
Tạo một package và import nó
Câu lệnh để tạo các jar files
jar cf tenjarfile.jar lop1.class lop2.class
jar cf Console.jar Console.class ConsoleCanvas.class
Message.class FatalError.class
Để biên dịch các chương trình có sử dụng các
lớp được chứa trong jar file
javac -classpath Jar1.jar;Jar2.jar;…
ProgramJava.java
javac -classpath Console.jar Programm1.java
Để thi hành các chương trình có sử dụng các
lớp được chứa trong jar file
java -classpath Jar1.jar;Jar2.jar… ; ProgramJava
java -classpath Console.jar ; Programm1
Trang 13Ví dụ
Viết chương trình cho phép máy tính thiết lập
đoạn hội thoại như sau với user:
comp > Hello, what is your name ? Leandro
comp > Which year were you born ? 1975
comp > Leandro , you are at least 32 years
public class Programm2 {
public static void main(String args[]) {
Console = new Console();
c print(”Hello, what is your name ?");
String name readString();
c print(”Which year were you born ? ");
int born readInt();
int age = 2007- born ;
c println( name +", you are at least "+
age +" years old ");
}
}
Trang 14
Bài tập
Viết chương trình cho phép máy tính thiết lập
đoạn hội thoại sau với user
comp > Which year were you born ? 1963
comp > which month were you born ? 4
comp > which day were you born ? 5
comp > you have lived almost xxx days
Máy tính sẽ tính số ngày mà user đã sống tính
cho đến ngày 30 - 12 - 2007 Giả sử rằng một
năm luôn có 365 ngày và một tháng có 30 ngày
27
Bài tập
Viết chương trình cho phép máy tính thiết lập
đoạn hội thoại sau với user
comp > Which year were you born ? 1983
comp > which month were you born ? 4
comp > which day were you born ? 5
comp > Which year is this year ? 2007
comp > which month is this month ? 1
comp > which year is today ? 26
comp > you have lived about xxx days
Máy tính sẽ tính số ngày mà user đã sống cho
đến ngày hiện tại (được nhập vào) với các giả
thiết như bài tập trước
Trang 15Ví dụ
Chương trình đọc 2 số vào từ bàn phím Số đầu tiên là số
tiền mà khách hàng phải trả tại một hiệu sách Số thứ hai
là tổng số tiền mà khách hàng đưa để trả tiền sách Máy
tính đáp lại nếu tổng số tiền không đủ, nếu vừa đủ hoặc
khách hàng sẽ nhận tiền thừa hoàn lại Trong trường hợp
khách hàng nhận lại tiền thừa, máy tính phải thông báo
chính xác số tờ giấy bạc với các mệnh giá 5000, 1000,
500, 100, 50, 10, 5 và 1 yen
Enter the value to pay:3561
Enter the value given by the customer :10000
Tên gọi và quy tắc đặt tên
Định danh (identifiers) được sử dụng để đặt tên
cho các thực thể lập trình như biến, hằng,
phương thức, lớp, và gói Quy tắc đặt tên:
Một định danh là một chuỗi của các ký tự bao gồm các
chữ cái, số, dấu gạch dưới (_), và dấu tiền tệ (vd:$)
Một định danh phải bắt đầu bằng một chữ cái, một dấu
gạch dưới (_) hoặc một dấu tiền tệ (vd:$)
Một định danh không được trùng với một từ khoá
Không có khoảng trắng giữa tên
Độ dài của một định danh là không bị giới hạn
Sau ký tự đầu có thể dùng ký tự, số, dấu tiền tệ, dấu
gạch dưới
Ví dụ: a_1234_d, 1awas, _asdc, a sas, $erd, %ats…
Chú ý: Java phân biệt chữ hoa chữ thường
Trang 16Các quy ước đặt tên
Nên chọn các tên có tính mô tả với ý nghĩa rõ
ràng cho các biến, hằng, lớp, và các phương
thức trong chương trình Một số quy ước:
Dùng chữ thường cho tên biến và phương thức Nếu
một tên bao gồm nhiều từ thì nối chúng lại thành một
với từ đầu tiên được viết thường và viết hoa ký tự
đầu tiên của mỗi từ kế tiếp Ví dụ: các tên biến như
radius, area, showInputDialog
Viết hoa ký tự đầu tiên của mỗi từ trong một tên lớp;
ví dụ: các tên lớp như ComputeArea, Math,
JOptionPane
Viết hoa tất cả mọi ký tự trong một hằng, và sử dụng
dấu gạch dưới giữa các từ; ví dụ: các hằng như PI,
MAX_VALUE
31
Khai báo biến
Một biến là tên của một vùng bộ nhớ dùng để lưu trữ các
giá trị của chương trình Mỗi biến gắn liền với một kiểu
dữ liệu và một định danh duy nhất gọi là tên biến
int i; //khai báo
int j = 1; //khai báo và khởi tạo
double PI = 3.14159;
char c = ‘a’;
String myName = new String(“Nelson”); String yName = “Nelson”;
Một khai báo biến có thể xuất hiện ở bất kỳ đâu trong
chương trình nhưng một biến phải luôn được khai báo
trước khi nó có thể được gán một giá trị Một biến được
khai báo trong một phương thức phải được gán một giá
trị trước khi nó có thể được sử dụng
Trang 17Các kiểu dữ liệu trong Java
Java có hai kiểu dữ liệu:
Kiểu dữ liệu nguyên thủy/cơ sở: là các kiểu
dữ liệu đã được định nghĩa trong ngôn ngữ
như số nguyên, số thực, ký tự, logic
Kiểu dữ liệu tham chiếu/dẫn xuất: do người
dùng tự định nghĩa như kiểu mảng, kiểu lớp,
kiểu giao tiếp (interface)
int x; long y,z; Console con = new Console();
Person ps; String s = new String(“hello”);
Kiểu Kích thước Khoảng giá trị
float 32 bits -3.4e38…3.4e38
double 64 bits -1.7e308…1.7e308
Trang 18Các kiểu dữ liệu cơ sở (tt.)
Kiểu boolean : Nhận giá trị true hoặc false
Kiểu char (2 bytes) : Kiểu ký tự theo chuẩn
Trang 20Toán tử tăng giảm
Toán tử Tên Mô tả
++var Tăng trước Biểu thức ( ++var ) tăng var lên 1 và tính toán với giá
trị mới trong var sau khi tăng
var++ Tăng sau Biểu thức ( var++ ) tính toán với giá trị gốc trong var
và tăng var lên 1
var Giảm trước Biểu thức ( ––var ) giảm var xuống 1 và tính toán với
giá trị mới trong var sau khi giảm
var Giảm sau Biểu thức ( var–– ) tính toán với giá trị gốc trong var
và giảm var xuống 1
&& AND (biểu thức logic)
Trang 21Toán tử ép kiểu
kiểu nhỏ sang kiểu lớn (không mất mát
thông tin)
lớn sang kiểu nhỏ (có thể mất mát thông
<điều kiện> ? <biểu thức 1> : <biểu thức 2>
Nếu <điều kiện> đúng thì có giá trị hay thực hiện
<biểu thức 1> , còn ngược lại là <biểu thức 2>
<điều kiện> : là một biểu thức logic
<biểu thức> : là giá trị, biểu thức hay hành động
Trang 22Các ví dụ về tính toán
Nhập vào bán kính của một hình tròn,
tính diện tích và chu vi của nó
Nhập vào năm số, cho biết số lớn nhất
và tính giá trị trung bình của chúng
Giải phương trình bậc hai ax2 + bx + c =
0 , với a, b, c nhập từ bàn phím
Programm5.java
Programm6.java Programm4.java
43
Các ví dụ về tính toán (tt.)
Trong trường hợp (Math.pow(b,2)-(4*a*c)) < 0 thì
sao? Ta phải chuyển nó thành số dương và đưa ra
nghiệm ảo
Ta có thể có một phiên bản tốt hơn của chương trình
giúp trả lại tiền thừa cho khách
Programm7.java
Programm8.java
Trang 23Lưu ý đối với các phép toán số học (1)
Nếu hai toán hạng kiểu long thì kết quả là
kiểu long Một trong hai toán hạng không
phải kiểu long sẽ được chuyển thành kiểu
long trước khi thực hiện phép toán
Nếu hai toán hạng đều không phải kiểu long
thì phép tính sẽ thực hiện với kiểu int
Các toán hạng kiểu byte hay short sẽ được
chuyển sang kiểu int trước khi thực hiện phép
toán
Trong Java không thể chuyển biến kiểu int và
kiểu boolean như trong ngôn ngữ C/C++
45
Lưu ý đối với các phép toán số học (2)
Nếu mỗi toán hạng đều có dấu chấm động thì
phép toán chuyển thành phép toán dấu chấm
động
Nếu có một toán hạng là double thì các toán hạng
còn lại sẽ được chuyển thành kiểu double trước
khi thực hiện phép toán
Biến kiểu float và double có thể ép chuyển sang
kiểu dữ liệu khác trừ kiểu boolean
NoticeOnArithmeticOperation.java
Trang 24Bài tập
Viết chương trình tính tiền điện thoại:
— Tiền thuê bao hàng tháng là 27000 đ
Có thể viết nhiều lệnh sau if và else bằng cách nhóm
chúng vào trong cặp dấu ngoặc nhọn { }
Trang 25Cấu trúc điều khiển (tt.)
Câu lệnh switch: cho phép chọn từ nhiều lựa chọn dựa vào
một tập các giá trị cố định của một biến hoặc biểu thức đã
String result; // The generated insult which will be returned
int which = (int)(Math.random() * 4); // Should result in 0 to 3
Trang 26Cấu trúc điều khiển (tt.)
Trang 27Cấu trúc điều khiển (tt.)
Trang 28Về khuôn thức
public class ProgrammX {
- public static void main(String args[]) {
- int a = 0, b=0, sum = 0, num;
- Console c = new Console();
Giá trị của các biến a, b và sum trong chương trình
ProgrammX.java sẽ là gì nếu các số sau được nhập vào:
5, 7, 3, 8, 10, 2, 3, -1
Sửa đổi chương trình trên để có thể tính và in ra:
• Số lượng số được nhập vào (không tính -1)
• Giá trị trung bình của các số bé hơn 50 được nhập
Trang 29 Khai báo mảng (sử dụng kiểu dữ liệu là integer )
int[ ] a; int a[ ]; //các phần tử vẫn chưa tồn tại!
a = new int[10];
bây giờ ta có 10 biến integer:
a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]
int i=0;
while (i < 10) {
a[i] = i; i=i+1;
}
gán a[0] = 0; a[1] = 1; a[8] = 8; a[9] = 9;
trường hợp này)
Trang 30
Mảng trong Java (tt.)
sau sẽ bị báo lỗi: int arrInt[10];
phần tử của mảng khi nó được khai báo:
int arrInt[] = {1, 2, 3};
char arrChar[] = {‘a’, ‘b’, ‘c’};
String arrString[] = {“ABC”, “EFG”};
59
Lưu giữ và sử dụng nhiều giá trị cùng kiểu
Thống kê về một dãy các số được nhập vào từ bàn phím
Tất cả các số đều là số nguyên dương từ 1 đến 10 Kết thúc
nhập khi gặp số 0 Sau đó máy tính sẽ cho biết % của số 1
đã được nhập, % của số 2, vv…
Enter a number: 3 The % of 1s was 10%
Enter a number: 6 The % of 2s was 0%
Enter a number: 9 The % of 3s was 30%
Enter a number: 5 The % of 4s was 0%
Enter a number: 3 The % of 5s was 20%
Enter a number: 7 The % of 6s was 10%
Enter a number: 9 The % of 7s was 10%
Enter a number: 5 The % of 8s was 0%
Enter a number: 1 The % of 9s was 20%
Enter a number: 3 The % of 10s was 0%
Enter a number: 0 Programm11.java
Trang 31Tham số của một chương trình
Đến giờ thì ta có thể hiểu phần nào về String args[] là gì ở phần đầu
của phương thức main Nó là một dãy của các String Giá trị của các
String này, cũng như số phần tử của dãy sẽ được định rõ khi chương
trình được gọi
public class Program12 {
public static void main(String args[]) {
}
Chương trình trên sẽ hiển thị tất cả các tham số được truyền cho
chương trình khi nó được gọi
Ta sẽ dùng đầu ra chuẩn thay vì một đối tượng thuộc lớp Console.
61
Bài tập
Viết chương trình nhập vào từ bàn phím 20 số nguyên
và thực hiện các công việc sau:
• Tính giá trị trung bình của các phần tử trong dãy
• In ra màn hình các phần tử có giá trị bé hơn giá trị
trung bình của các phần tử trong dãy
• Sắp xếp dãy theo chiều tăng dần và in dãy sau khi sắp
xếp ra màn hình
Trang 32Kiểu của giá trị mà phương
thức sẽ trả về (void trong trường
hợp nó không trả về giá trị nào)
Các tham số của phương thức
Tên của phương thức (đặt bởi người lập trình)
Các câu lệnh được đặt trong
cặp dấu ngoặc nhọn {}
return là bắt buộc nếu trả về khác void
Trang 33Bài tập
Viết một phương thức tĩnh có dạng như sau:
static int mcd( int x, int y) {…}
nó trả về ước số chung lớn nhất của hai số Sau đó sử
dụng nó với chương trình dưới đây
public static void main(String args[]) {
Console c = new Console();
c.print(“type in the first number : “);
trình theo một cách tốt hơn (hy vọng thế!)
trình là các đối tượng (objects)
phương thức
Phương thức thay đổi giá trị của các biến đối tượng
Phương thức trả về giá trị của các biến đối tượng
Trang 34Một lớp mà ta đã biết: lớp Console
Tạo các đối tượng qua các phương thức khởi tạo khác nhau:
Console c = new Console();
Console c = new Console(30,15);
Console c = new Console(“Hello”);
Các phương thức trả lại một giá trị:
Cách 1: Sử dụng một file Circle.java duy nhất
public class Circle
{
private int radius;
public Circle(int r) { radius = r; }
public double getArea() { return Math.PI*radius*radius; }
public double getCircum() { return 2*Math.PI*radius; }
public static void main(String[] args)
Trang 35Ví dụ về lớp Circle
Cách 2: Sử dụng một file với 2 lớp riêng biệt
public class TestCircle
private int radius;
public Circle(int r) { radius = r; }
public double getArea() { return Math.PI*radius*radius; }
public double getCircum() { return 2*Math.PI*radius; }
private int radius;
public Circle(int r) { radius = r; }
public double getArea() { return Math.PI*radius*radius; }
public double getCircum() { return 2*Math.PI*radius; }
}
Trang 36Một lớp đã biết khác: lớp String
Một lớp được định nghĩa chính bởi các phương thức
mà ta có thể áp dụng cho một đối tượng của lớp đó
Có một loại phương thức đặc biệt gọi là phương thức
khởi tạo (constructor), nó tạo ra một đối tượng mới của
lớp đó
Ví dụ:
String myName; //đối tượng vẫn chưa tồn tại
myName = new String(“Nelson Baloian”);
Trang 37Ví dụ
Ví dụ 1: in xâu với các ký tự đảo ngược
String linea = c.readLine();
for(int i = linea.length()-1; i >=0 ; i )
for(int i = 0; i < x.length(); i++)
valor = valor*10 + (x.charAt(i)- ‘0’);
return valor;
}
Các ký tự cũng có một giá trị nguyên tương ứng với biểu diễn Unicode
Bài tập: Viết chương trình để test các ví dụ trên
73
Đọc các xâu con
Có 2 phương thức khác nhau :
String substring(int) String substring(int, int)
String sub = myName.substring(7);
- sub sẽ chứa xâu “Baloian”
String sub = myName.substring(3, 6);
- sub sẽ chứa xâu “son”
Trang 38Tìm các xâu con
int indexOf(String) : trả về vị trí xuất hiện đầu tiên của
xâu hoặc -1 nếu không tìm thấy
String s = new String(“Hello, Nelson, Hello”);
int i = s.indexOf(“ello”);
- i sẽ nhận giá trị 1
int i = s1.indexOf(s2, k) : tìm chỉ số của lần xuất hiện đầu tiên
của xâu s2 trong xâu s1 bắt đầu từ chỉ số k
int i = s1.lastIndexOf(s2) : tìm chỉ số lần xuất hiện cuối cùng
của xâu s2 trong xâu s1
int i = s1.lastIndexOf(s2, k) :tìm chỉ số lần xuất hiện cuối cùng
của xâu s2 trong xâu s1 từ chỉ số k trở về sau
Tương tự nhưng sử dụng indexOf(String, int)
Nhập xâu X, mẫu tìm Y và xâu thay thế Z
In ra xâu X sau khi thay thế tất cả các mẫu Y bởi Z
Trình diễn 2 phương thức khác nhau để xét xem 2
2 xâu có bằng nhau hay không
Bài tập: Viết một phương thức để đếm số từ của một xâu (từ là một tập
hợp các ký tự không chứa khoảng trắng) Đọc vào 10 xâu từ bàn phím
và đếm xem có bao nhiêu từ trong 10 xâu đó
Trang 39So sánh các chuỗi
boolean equals(Object obj): so sánh xâu đó với đối tượng được
chỉ rõ
boolean onnajides = s1.equals(s2);
int compareTo(String st2):thực hiện so sánh hai xâu và trả lại
kết quả dựa vào kết quả đối sánh
int i = s1.compareTo(s2);
- i sẽ nhận một trong những giá trị dưới đây tùy thuộc vào s1 và s2
0 nếu s1 bằng s2, > 0 nếu s1>s2, < 0 nếu s1<s2
Các ký tự được so sánh dựa trên các giá trị mã Unicode Hai
xâu được so sánh theo thứ tự từ điển bằng cách so sánh hai
ký tự tương ứng của hai xâu đó
77
Các phương thức khác của lớp String
Để biết nhiều hơn về lớp String hoặc các lớp khác của Java,
bạn nên tham khảo ở URL sau (hoặc đọc java-doc)
http://java.sun.com/j2se/1.6.0/docs/api/
Nên tham khảo lớp StringBuffer, nó có nhiều phương thức
để thay đổi đối tượng Trong trường hợp lớp String, nó chỉ có
các phương thức trả về một xâu mới, nhưng không sửa đổi
xâu gốc
Ví dụ:
StringBuffer sb = new StringBuffer("Truong");
sb.append(" Dai hoc Thuy San"); //sb : "Truong Dai hoc Thuy San"
sb.delete(7,11); //sb : "Truong hoc Thuy San"
sb.replace(11,19,"Nha Trang"); //sb : "Truong hoc Nha Trang"
sb.insert(7,"Dai "); //sb : "Truong Dai hoc Nha Trang"
Trang 40Hướng đối tượng trong Java
Giới thiệu Lớp (Class)
Đặc điểm hướng đối tượng trong Java
Lớp trừu tượng & Giao diện
79
Giới thiệu
Programming - OOP): hướng tiếp cận mạnh
mẽ và hiệu quả
Định nghĩa một lớp (Class)
Tạo một đối tượng (Object)
Sự khởi tạo (Construction) & hủy bỏ (Destruction)
Tính thừa kế (Inheritance)
Tính đa hình (Polymorphism)
Lớp trừu tượng (Abstract) và giao diện (Interface)