chương 03 lỚp – kiỂu dỮ liỆu trỪu tƯỢng class – abstract data type
DESCRIPTION
Chương 03 LỚP – KIỂU DỮ LIỆU TRỪU TƯỢNG CLASS – ABSTRACT DATA TYPE. Ôn tập. ADT : Khaí quát hóa một tập đối tượng thành một kiểu dữ liệu. ADT có thể là một cấu trúc hoặc một class. Object = các thuộc tính mô tả (thành phần dữ liệu)+ các hành vi (thành phần hàm) - PowerPoint PPT PresentationTRANSCRIPT
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 1/81
Chương 03LỚP – KIỂU DỮ LIỆU TRỪU TƯỢNG
CLASS – ABSTRACT DATA TYPE
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 2/81
Ôn tập• ADT : Khaí quát hóa một tập đối tượng thành một kiểu dữ liệu.• ADT có thể là một cấu trúc hoặc một class.• Object = các thuộc tính mô tả (thành phần dữ liệu)+ các hành vi
(thành phần hàm)• class: ADT cho một tập các đối tượng tương tự nhau (cùng data,
cùng functions).• Instance: Một mô tả của đối tượng trong bộ nhớ của chương trình.• Ba khái niệm cơ bản trong OOP: Đóng gói, Thừa kế, đa hình.• Đóng gói (encapsulation) : Gói dữ liệu + hành vi (code), bên ngoài
chỉ có thể truy cập một số thuộc tính hoặc hành vi của đối tượng của một lớp thông qua các công cụ giao tiếp.
• Thừa kế: Một lớp có thể thừa hưởng dữ liệu và hành vi của lớp cha. Một ngôn ngữ OOP có thể hỗ trợ đơn thừa kế hoặc đa thừa kế.
• Đa hình: Khả năng cho phép viết lại code của một hành vi được thừa kế để tạo ra những khác biệt trong ứng xử giữa lớp cha và lớp con cho cùng một hành vi.
• Gửi thông điệp là yêu cầu một đối tượng thực thi một hành vi mà đối tượng này có.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 3/81
Mục tiêu
• Nắm vững cấu trúc của một lớp.
• Nắm vững các chỉ thị truy cập.
• Giải thích được constructor và destructor.
• Giải thích được khái niệm đối tượng hiện hành.
• Truy cập thành phần thừa kế từ lớp cha.
• Hiện thực được lớp bằng Java.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 4/81
Nội dung
3.1- Cấu trúc 1 lớp và access modifiers3.2- Sử dụng một lớp3.3- Chỉ thị this3.4- Overloading một hành vi3.5- Hành vi khởi tạo (constructor)3.6- Chỉ thị super3.7- Hành vi hủy (destructor)3.8- Thành phần static3.9- Chỉ thị final3.10- Phương pháp giải bài toán với Java3.11 – Chạy ứng dụng Java có tham số3.12- Một số lớp cơ bản của Java
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 5/81
3.1- Cấu trúc 1 lớp và access modifiers
• Lớp: Hiện thực chung cho một tập các đối tượng có cùng đặc điểm và hành vi.
• Một lớp có thể là lớp con của một lớp đã có.• Hiện thực lớp:
– Khai báo mức cho phép sử dụng.– Khai báo lớp cha– Khai báo các thành phần thuộc tính.– Hiện thực code các hành vi.
• Lớp và mỗi thành phần cần phải chỉ định mức độ cho phép truy cập (tính bảo mật) access modifier
• Mỗi ngôn ngữ OOP quy định cú pháp riêng cho việc hiện thực lớp.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 6/81
Cấu trúc một lớp
Field_1Field_2.......Method_1()Method_2()..........
class BCác giới hạn truy cập1. Cho phép truy cập tự do (public)2. Chỉ cho phép trong cùng một gói
truy cập3. Không cho bên ngoài truy cập
(private).4. Chỉ cho lớp con truy cập
(protected).5. Không cho phép lớp con hiệu
chỉnh (final).
Access Modifiers
class A
là con
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 7/81
Cú pháp khai báo class trong Java
[Modifier] class CLASSNAME [extends FATHERCLASSNAME]{ [Modifier] DataType1 Property1 [=Value]; [Modifier] DataType2 Property2 [=Value]; [Modifier] DataType MethodName( DataType Arg,…) { <code> }}
Không có modifier : Mặc định là friendly, cho phép các đối tượng thuộc các class cùng package ( cùng thư mục)truy cập
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 8/81
Đặc tính truy xuất
Modifier private friendly protected public
Cùng class YES YES YES YES
Cùng gói, khác class
NO YES YES YES
lớp con trong cùng gói với
lớp cha
NO YES YES YES
Khác gói, khác lớp
NO NO NO YES
Lớp con khác gói với lớp cha
NO NO YES YES
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 9/81
3.2- Sử dụng một lớp
• Định nghĩa biến đối tượng.
• Biến đối tượng trong Java là tham khảo (địa chỉ) của vùng nhớ chứa dữ liệu của đối tượng.
obj 1000
data
1000
ClassName obj ; obj= new ClassName();
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 10/81
Thí dụ 1
Lớp public thì tên file.java phải trùng với tên lớpVì khi bên ngoài truy cập, nhìn tên file là biết tên lớp
Error
Nếu không là lớp public, tên lớp và tên file có thể khác nhau
Vì lớp này chỉ dùng trong một gói (package)
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 11/81
Thí dụ 2
từ khóa this để chỉ thị đối tượng đang thao tác. Nhờ đó phân biệt được tham số x và thành phần x
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 12/81
Thí dụ 3
access modifier là private mà trong main vẫn truy cập được vì main nằm trong khai báo lớp
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 13/81
Thí dụ 4
Sửa lại lớp VONGTRON:
không có main
Xây dựng lớp SDVT sử dụng lớp VONGTRON để trong cùng thư mục.Biên dịch có lỗi vì trong lớp SDVT không thể truy cập private method
của lớp VONGTRON
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 14/81
Thí dụ 5
Lớp SDVT truy cập trực tiếp được thuộc tính x của vong tròn v vì khai báo thuộc tính này là “friendly” – không chỉ định modifier.
Hai file này cùng thư mục nên SDVT truy cập được thuộc tính này.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 15/81
Thí dụ 6
Trong lớp VONGTRON,
x,y,r có thuộc tínhprotected. Nhưng,lớp SDVT cùng thư
mục với lớpVONGTRON nên có
thể truy cập thuộctính này.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 16/81
3.3- Chỉ thị this
• Khi hiện thực hành vi của 1 lớp. Truy xuất một thành phần bằng chính tên của thành phần này hoặc this.tênThànhPhần.
• Khi tham số trùng với tên thuộc tính thì nhờ từ khóa this chúng ta phân biệt rõ thuộc tính với tham số.
• Các môi trường lập trình Java hiện nay hầu hết đều có trợ giúp ngữ cảnh. Do vậy, qua từ khóa this, người lập trình dễ truy cập 1 thành phần của lớp.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 17/81
Thí dụ
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 18/81
Thí dụ
Truy cập thành phần qua từ khóa this
Truy cập thành phần không qua từ khóa this
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 19/81
3.4- Overloading một hành vi
• Overloading: Kỹ thuật cho phép xây dựng các hành vi trùng tên nhưng khác chữ ký (signature) trong cùng một lớp.
• Chữ ký bao gồm:– Số lượng tham số.– Thứ tự các kiểu của các tham số.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 20/81
Thí dụ
3 hành vi cùng có tên làsetData
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 21/81
3.5- Hành vi khởi tạo (constructor)
• Hành vi được thực thi ngay vào lúc khởi tạo đối tượng.
• Một lớp có thể có 0/1/n contructor.
• Cú pháp constructor
[Modifier] ClassName ( Parameters)
{ <code> }
Chú ý:
- Constructor không có kiểu trả trị.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 22/81
constructor....
- Constructor không tham số còn được gọi là constructor chuẩn.
- Ngôn ngữ có sẵn 1 constructor chuẩn làm công việc xóa trống vùng nhớ chứa dữ liệu của đối tượng Trị 0/null.
- Khi một lớp đã có constructor thì constructor mặc định của ngôn ngữ không còn được áp dụng nữa.
- Tập các constructor hình thành các cách định nghĩa đối tượng.
- Định nghĩa một đối tượng không theo một mẫu constructor sẽ gây lỗi.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 23/81
Thí dụ: constructor của ngôn ngữ (gõ 3 phím)
b
xyz
1000
b
000
1000
Nếu là constructor tự tạo thì việckhởi tạo trị ban đầu được ấn địnhbởi code trong constructor.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 24/81
Thí dụ: constructor là mẫu khởi tạo đối tượng
Nếu một lớp có constructor thì constructor mặc định của ngôn ngữ không được sử dụng nữa.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 25/81
Thí dụ: lớp có nhiều constructor
Viết lại default constructor
constructor tự tạo
Copy constructor
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 26/81
Thí dụ: gọi hành vi trong constructor
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 27/81
Gợi ý khi xây dựng constructor
• Việc thường làm là gán trị cho các thành phần dữ liệu của đối tượng.
• Số constructor có trong một lớp thường là những dạng dữ liệu của đối tượng mà ta muốn có ngay lúc ban đầu.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 28/81
3.6- Chỉ thị super
• Dùng để truy xuất dữ liệu hoặc hành vi kế thừa từ lớp cha.
Gọi constructor của lớp cha
Gọi method thừa kế từ lớp cha
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 29/81
super...
Trong Java, nếu dùng super thì super phải là dòng code đầu tiên trong constructor của lớp con
Ý định:Xây dựng hành vi outData trong lớp conbằng cách gọi hành vioutData của lớp charồi xuất cost.
Error
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 30/81
super...
Viết lại hành vi outData trong lớp con
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 31/81
3.7- Hành vi hủy (destructor)• Đối tượng sống kể từ khi ta khởi tạo đối tượng (bằng toán tử
new) cho đến hết khối chứa nó.• Khi ra khỏi khối chứa đối tượng, ta nói đối tượng đã chết.
{ ..... ....... ClassName obj = new ClassName(); ...... ..... .....}
Góc nhìn thời gian: Thời gian sống của đối tượng
Góc nhìn nội dung văn bản chương trình: Tầm vực (scope) của đối tượng
Một số ngôn ngữ OOP ( C++, C#) cho phép ta viết code sẽ được thực thi vào lúc đối tượng chết nhằm trả tài nguyên đã cấp phát động.Java chỉ dùng cách cấp phát đối tượng động, có trình gom rác riêngvà không hỗ trợ hành vi hủy.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 32/81
3.8- Thành phần static
• Đôi khi ta muốn một dữ liệu, một đoạn code, một hành vi là toàn cục để trongmột lớp Dùng chỉ thị static.
• Dữ liệu static là DỮ LIỆU TOÀN CỤC.• Hành vi static là hành vi toàn cục• Code static là CODE TOÀN CỤC và chỉ thao tác lên
dữ liệu static.Truy xuất dữ liệu và code này thông qua tên lớp hoặc
một đối tượng thuộc lớp có thành phần static.
(1) ClassName.StaticMember (2) ClassName obj= new ClassName(); obj. StaticMember
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 33/81
Dữ liệu static- Thí dụ
Truy xuất static data bằng tên lớp
Truy xuất static data bằng tên đối tượng thuộc lớp
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 34/81
Hành vi static- Thí dụ
Nhận xétHành vi static được bên ngoài sửdụng mà không cần khai báo biếnđối tượng thuộc lớp. Do vậy, hànhvi static thường có tham số khôngliên quan đến đối tượng thuộc lớp.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 35/81
Code static- Thí dụ
Cú pháp đưa một đoạn code static:static{ <code>}
Code static được thực thi ngay khi lớp có code này được tham khảo tới.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 36/81
Code static- Thí dụ
Code static chỉ tham khảodữ liệu static
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 37/81
Code static – thí dụ
Nếu có nhiều đoạn code static, các đoạn code này được thực thi tuần tự
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 38/81
Code static với constructor
Constructor chuẩnkhông đụng đến thành phần stattic
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 39/81
Code static với constructor
tham khảo khi chưa có đối tượng
tham khảo khi đã có đối tượng
Vì khi có đối tượng, constructorcó code làm thay đổi trị của n
nên kết qủa đã khác đi.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 40/81
3.9- Chỉ thị final
• Làm sao để không cho phép kế thừa từ một lớp ( lớp không con).
• Làm sao không cho phép sửa một dữ liệu ( muốn dữ liệu là hằng).
• Dùng chỉ thị final
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 41/81
final Data là hằng cấm sửa
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 42/81
final class là lớp không con
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 43/81
final method là hành vi không cho phép lớp con viết lại (override)
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 44/81
3.10- Phương pháp giải bài toán với Java
Bài toán đơn giản
Bài toán phức tạp
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 45/81
3.10.1- Bài toán đơn giản
Mô tảcủa
bài toán
Danh từđơn giản
Động từ
class BaiToan{ public static void main(String args[]) { < biến> <code xử lý> }}
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 46/81
Bài toán đơn giản -Thí dụ
• Viết chương trình xuất 100 số Fibonacci đầu tiên. Dãy Fibonacci : 1,1,2,3,5,8,… 2 số đầu là 1, các số sau bằng tổng 2 số trước nó
class BaiToan{ public static void main (String args[]) { int t1=1, t2=1, t3=1; for (int i=1; i<=100; i++) if (i>2) { t3= t1+t2; t1=t2; t2=t3; } System.out.println(t3 + “, ”); }}
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 47/81
3.10.2- Bài toán phức tạp
Mô tảcủa
bài toán
Danh từphức tạp(cấu trúc)
Động từ
class BaiToan{
}
tác động
Bài toán không qúa phức tạp // Properties
Kiểu TênField [=TrịKhởiTạo];
// Mỗi động từ là 1 hành viType HànhVi (...){}
public static void main (String args[]) { BaiToan obj= new BaiToan(...); obj.HànhVi_1(); obj.HànhVi_2(); .......}
Thứ tự củacác động từ
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 48/81
Thí dụ
Viết chương trìnhin ra
3 nhân viên (tên,lương)
class NhânViên{ String Tên; long Lương; NhânViên( String t, long l) { Tên=t; Lương=l; void Xuất() { System.out.prinln( Tên “, “ + Lương); } public static void main (String args[]) { NhânViên nv1= new NhânViên(“Hoa”, 100); NhânViên nv2= new NhânViên(“Linh”, 120); NhânViên nv3= new NhânViên(“Lan”, 150); nv1.Xuất(); nv2.Xuất(); nv3.Xuất(); }}
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 49/81
Bài toán phức tạp
Mô tảcủa
bài toán
cáckhái niệm
(nhóm danh từ mô tả)
Động từ
tác động
Bài toán phức tạp. Xem các thí dụ ở các chương sau class KháiNiệm1
{ <data> <method>}
class BaiToan{ KháiNiệm1 obj1 = new KháiNiệm1(); KháiNiệm2 obj2 = new KháiNiệm2(); <hành vi chung ở mức cả bài toán> public static void main (String args[]) { BaiToan obj= new BaiToan(...); obj.HànhViChung1(); obj.HànhViChung2(); ....... }}
Thứ tự của các động từ mức cả bài toán
class KháiNiệm2 { <data> <method>}
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 50/81
Tóm tắt
• class = Members• Member = Datum/method• access modifier: public, private, protected• Không có access modifier được hiểu là
“friendly”• Từ khóa this: Chỉ thị....................................• constructor là ..........................................• super: Từ khóa truy cập lớp cha và nếu có
thì phải xuất hiện ở dòng đầu tiên của constructor trong lớp con.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 51/81
Tóm tắt
• chỉ thị static dùng để chỉ thị .....................
• ...............................................................
• Truy xuất thành phần static của một lớp bằng cách
• (1): ........................................................
• (2):.........................................................
• Ta có thể truy xuất đoạn code static mà không là hành vi của 1 lớp không?
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 52/81
Tóm tắt
• Tập các constructor của 1 lớp tạo ra .................................................................
• Java có hỗ trợ destructor?
• Dữ liệu final là ......................................
• Hành vi final là hành vi .............................
• Lớp final là lớp ...................................
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 53/81
Bài tập:
• Bài 1:Viết chương trình xuất ra danh sách nhân viên gồm 10 người theo dạng:
Mã Tên Ngày vào làm lương
NV001 Hoa 2004-07-21 10000
..........................................................
(các thông tin về người khác sinh viên tự ấn định)
Dữ liệu của các bài toán được đưa vào bài toán thông qua constructor
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 54/81
Bài tập
• Bài tập 2:Tương tự bài 1 nhưng thay vì mô tả lương bằng 1 con số, mô tả lương thông qua hệ số lương nhân với lương cơ bản là một dữ liệu static (xem lại thí dụ).
• Bài tập 3: Viết chương trình xuất ra diện tích, chu vi của 5 vòng tròn với hằng PI=3.141592 được khai báo là hằng với chỉ thị final. Bán kính vòng tròn sinh viên tự ấn định
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 55/81
3.11- Chạy ứng dụng với tham số
Chương trình Java có thể đưa vào dữ liệu nhập khi chạy chương trình 1 công cụ nhập dữ liệu.Cú pháp: java File.class arg0 arg1 …
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 56/81
Thí dụ:import java.io.*;class InputCommandLine{ public static void main (String args[])
{ for (int i=0;i< args.length; ++i) System.out.print(args[i]+ (i< args.length?",":""));}
}
D:\Su\BaiGiang2004\Java\BtCh3>java InputCommandLine Mat Uot Mi
Mat,Uot,Mi
D:\Su\BaiGiang2004\Java\BtCh3>
Chạy JVM file.class mảng tham số args
Các tham số là các chuỗi ký tự
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 57/81
Chạy chương trình có tham số với JCreator
• Trong JCreator, để chạy chương trình có tham số, ta phải tạo Project.
• Project: Dự án, một tập các file của một phần mềm.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 58/81
Tạo Project
hoặc
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 59/81
Đặt tên cho project
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 60/81
Kết qủa: Project trống (chọn File view)
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 61/81
Thêm 1 file
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 62/81
Viết chương trình
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 63/81
Chỉ định tham số cho chương trình
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 64/81
Đặt tham số nhanh:
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 65/81
Bài tập
(1) Viết chương trình tính tổng các số từ chuỗi tham số nhập của chương trình.
(2) Viết chương trình xuất các tham số của chương trình theo thứ tự tăng dần.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 66/81
3.12- Một số lớp cơ bản của Java.
• Lớp Object
• Lớp String
• Các lớp gói (wrapper)
• Lớp Math
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 67/81
3.12.1- Lớp Object
Là lớp cha của mọi lớp trong java ( trực tiếp/gián tiếp)Được để trong gói java.lang (java.lang.Object)Định nghĩa các trạng thái cơ bản và các phương thức cơ bản của mọi lớp phải có như: So sánh nó với 1 đối tượng khác (equals), chuyển đổi mô tả thành chuỗi (toString), đợi (wait) điều kiện, nhận biết (notify) các đối tượng khác khi biến điều kiện có thay đổi, lấy Class (getClass)
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 68/81
Lớp Object (tt)
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 69/81
Thí dụ
Student2@18d107fKết qủa của method toString() :
Tên lớp + @ + Địa chỉ hệ 16 của thực thể
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 70/81
3.12.2- Lớp String - chuỗi ký tự
• Định nghĩa 1 String:String Str1=“Hello”;
String Str2= new String(“Hi”); • Nối String
String Str3= Str1 + Str2; // Str3=“HelloHi” String Str4 = Str3 + 1; // Str4= “HelloHi1”• String pool ( hồ/ bảng chứa chuỗi)
Khi nhiều biến String cùng mang 1 nội dung, chúng cùng chỉ đến 1 phần tử trong String poolThí dụ:
String Str1 = “Hello”;String Str5= “Hello”;
I love you
Hello
Forget me not
Str1
Str5
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 71/81
Lớp String (tt)- Methods
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 72/81
Lớp String (tt)- Methods
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 73/81
Lớp String (tt)- Methods
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 74/81
Thí dụ về lớp String
Các hành vi của lớp String trả về chuỗi kết qủa thì sẽ trả về chuỗi mới còn chuỗi gốc không đổi.Nếu muốn làm thay đổi chuỗi gốc thì dùng lớp StringBuffer cũng thuộc gói java.lang. Các han2h vi cũng tương tự như lớp String.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 75/81
3.12.3-Các lớp gói (wrappers)
• Dữ liệu thuộc kiểu cơ bản như int, long, char,... chỉ là dữ liệu không có hành vi kết hợp.
• Wrapper , trong gói java.lang, là lớp bao lấy các kiểu dữ liệu cơ bản nhằm tạo ra tính OOP cho các kiểu cơ bản.
• Các hành vi của lớp Wrapper đa số là các hành vi static hiện thực các thao tác lên dữ liệu thuộc kiểu tương ứng.
• Biến thuộc lớp Wrapper chứa địa chỉ của dữ liệu.
Integer obj1
int x
1000
5
151000
int x=5;Integer obj1= new Integer(15);Integer obj2= new Integer(“32”);
321100
Integer obj2 1100
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 76/81
Wrapper classes
Data type Wrapper class
boolean Boolean
byte Byte
char Character
double Double
float Float
int Integer
long Long
short Short
Đọc Documentation để biết về các hành vi của các wrapper class
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 77/81
Wrapper-Thí dụ
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 78/81
3.12.4- Lớp Math
• Trong gói java.lang
• Chứa các hàm xử lý toán học.
• Là lớp final.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 79/81
Thí dụ:
Hàm randomtrả trị
[ 0.0, 1.0 [
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 80/81
Bài nộp: Nộp vào buổi học kế tiếp
Chọn một trong các bài nộp sau:• Dịch tập tin trợ giúp về một lớp Wrapper
trong Java Documentation.• Dịch tập tin trợ giúp về lớp String trong
Java Documentation.• Dịch tập tin trợ giúp về lớp StringBuffer
trong Java Documentation.• Dịch tập tin trợ giúp về một lớp Math trong
Java Documentation.
Chương 03- Lớp – Kiểu dữ liệu trừu tượng Slide 81/81
THANK YOU