1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình hướng đối tượng với Java - ĐH Sư Phạm Kỹ Thuật Hưng Yên

84 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 84
Dung lượng 696,11 KB

Nội dung

Nội dung chính của Bài giảng Lập trình hướng đối tượng với Java gồm các nội dung chính được trình bày như sau: Các khái niệm cơ bản về lập trình hướng đối tượng, lớp và đối tượng, bài tập và thảo luận về Lớp và đối tượng, gói trong java,...

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI JAVA (Object Oriented Programming with Java) Bộ môn Công nghệ Phần mềm Đại học SPKT Hưng Yên BÀI 1: Các khái niệm lập trình hướng đối tượng 1.1 Lịch sử phát triển phương pháp lập trình 1.2 Một số khái niệm lập trình hướng đối tượng Thừa kế Đa hình Trừu tượng Đóng 1.3 Các ưu điểm lập trình hướng đối tượng Java Bài 3: Lớp đối tượng (I) 12 3.1 Khai báo lớp 12 3.2 Khai báo thuộc tính 14 Bài 5: Lớp đối tượng (II) 17 5.1 Chi tiết khai báo phương thức 17 5.2 Từ khoá this 22 5.3 Từ khoá super 23 5.4 Sử dụng lớp 24 5.5 Điều khiển việc truy cập đến thành viên lớp 24 Bài 7: Bài tập thảo luận Lớp Đối tượng 28 7.1 Lớp đối tượng có ưu điểm gì? 28 7.2 Cách xây dựng lớp đối tượng 29 Các thành phần vẽ Class 29 Relationship (Quan hệ) 30 Cách xây dựng vẽ Class 33 Đặc tả Class 35 Sử dụng vẽ Class 35 Kết luận 36 Bài 8: Gói java 37 8.1 Vai trị gói (package) lập trình 37 8.2 Cách tạo gói Java 37 8.3 Truy suất gói Java 39 Bài 10: Kế thừa (I) 45 10.1 Lớp sở lớp dẫn xuất 45 10.2 Cách xây dựng lớp dẫn xuất 45 10.3 Thừa kế thuộc tính 45 10.4 Thừa kế phương thức 45 10.5 Khởi đầu lớp sở 46 Bài 12: Kế thừa (II) 52 12.1 Thành phần protected 52 12.2 Từ khoá final 52 Bài 14: Đa hình (I) 55 14.1 Giới thiệu chung đa hình 55 14.2 Giao diện 56 Bài 15: Bài tập thảo luận Kế thừa 60 15.1 Tại lại cần Kế thừa? 60 15.2 Các loại kế thừa Java 61 Ví dụ: 62 15.3 Quan hệ HAS-A Java 62 Bài 17 Đa hình (II) 64 17.1 Giới thiệu 64 17.2 Phương thức trừu tượng (abstract method) 64 17.3 Một số quy tắc áp dụng cho lớp trừu tượng 66 17.4 Lớp trừu tượng (abstract class) giao diện (interface) 67 Bài 18: Bài tập thảo luận Đa hình 69 18.1 Tại lại cần Đa hình? 69 18.2 Cách sử dụng Đa hình lập trình hướng đối tượng 69 Đa hình runtime Java 69 Upcasting gì? 70 Ví dụ đa hình runtime Java 70 18.3 Case study: Đa hình runtime Java với thành viên liệu 71 Đa hình runtime Java với kế thừa nhiều tầng (Multilevel) 71 Bài 20: Bài tập thảo luận tổng kết môn học 74 20.1 Những ưu điểm lập trình hướng đối tượng 74 20.2 Tóm tắt lập trình HĐT 74 20.3 Trao đổi: 84 BÀI 1: Các khái niệm lập trình hướng đối tượng 1.1 Lịch sử phát triển phương pháp lập trình Ngơn ngữ lập trình tập ngơn ngữ máy tính, thiết kế chuẩn hóa để truyền thị cho máy có xử lý (CPU), nói riêng máy tính Ngơn ngữ lập trình dùng để lập trình máy tính, tạo chương trình máy nhằm mục đích điều khiển máy tính mơ tả thuật toán để người khác đọc hiểu Trước hết dạng chương trình mà máy tính thực thi trực tiếp ngơn ngữ máy hay mã máy Nó có dạng dãy số nhị phân, thường ghép nhóm thành byte bit cho hệ xử lý 8/16/32/64 bit [note 1] Nội dung byte thường biểu diễn đơi số hex Để có mã ngày người ta dùng ngơn ngữ lập trình để viết chương trình dạng văn dùng trình dịch để chuyển sang mã máy [1] Khi kỹ thuật điện tốn đời chưa có ngơn ngữ lập trình dạng đại diện nào, phải lập trình trực tiếp mã máy Dãy byte viết đục lỗ lên phiếu đục lỗ (punched card) nhập qua máy đọc phiếu tới máy tính [2] Sau chương trình ghi vào băng/đĩa từ để sau nhập nhanh vào máy tính Ngơn ngữ máy gọi "ngơn ngữ lập trình hệ 1" (1GL, first-generation programming languages) [3] Sau mã lệnh thay tên gợi nhớ trình lập dạng văn (text) dịch sang mã máy Hợp ngữ (assembly languages) đời, "ngôn ngữ lập trình hệ 2" (2GL, second-generation programming languages) Lập trình thuận lợi hơn, dịch liên kết với thư viện chương trình dạng macro (đoạn chưa dịch) lẫn mã dịch Hợp ngữ dùng ngôn ngữ bậc thấp (low-level programming languages) để tinh chỉnh ngôn ngữ bậc cao thực truy nhập trực tiếp phần cứng cụ thể việc lập trình hệ thống, tạo hiệu ứng đặc biệt cho chương trình Ngơn ngữ bậc cao (high-level programming languages) hay "ngơn ngữ lập trình hệ 3" (3GL, third-generation programming languages) đời vào năm 1950 Đây ngơn ngữ hình thức, dùng lập trình máy điện tốn khơng lệ thuộc vào hệ máy tính cụ thể Nó giải phóng người lập trình ứng dụng làm việc hệ điều hành xác định mà quan tâm đến phần cứng cụ thể Các ngôn ngữ phát triển liên tục với dạng biến thể mới, theo bước phát triển kỹ thuật điện tốn [4] Đối với ngơn ngữ bậc cao định nghĩa ngơn ngữ lập trình theo [Loud 94], T.3 là: Ngơn ngữ lập trình hệ thống ký hiệu hóa để miêu tả tính tốn (qua máy tính) dạng mà người máy đọc hiểu Theo định nghĩa ngơn ngữ lập trình phải thỏa mãn hai điều kiện sau: Dễ hiểu dễ sử dụng người lập trình, để dùng để giải nhiều toán khác Miêu tả cách đầy đủ rõ ràng tiến trình (tiếng Anh: process), để chạy hệ máy tính khác Một tập hợp thị biểu thị qua ngơn ngữ lập trình nhằm mục đích thực thao tác máy tính gọi chương trình Khái niệm cịn có tên khác chương trình máy tính hay chương trình điện tốn Lưu ý: chương trình viết cho máy vi tính thường gọi phần mềm máy tính Ví dụ: chương trình Microsoft Word cách gọi chung chung; cách gọi phần mềm Microsoft Word rõ chương trình ứng dụng Khái niệm lập trình dùng để trình người tạo chương trình máy tính thơng qua ngơn ngữ lập trình Người ta cịn gọi q trình mã hố thông tin tự nhiên thành ngôn ngữ máy Từ viết mã dùng nhiều trường hợp để ý Như vậy, theo định nghĩa, ngôn ngữ lập trình chương trình, dùng để tạo nên chương trình khác Văn viết ngơn ngữ lập trình để tạo nên chương trình gọi mã nguồn Thao tác chuyển đổi từ mã nguồn thành chuỗi thị máy tính thực tương tự việc chuyển đổi qua lại ngôn ngữ tự nhiên người Các thao tác gọi biên dịch, hay ngắn gọn dịch Nếu trình dịch diễn đồng thời với trình thực thi, ta gọi thơng dịch; diễn trước, ta gọi biên dịch Phần mềm dịch tương ứng gọi phần mềm thông dịch phần mềm biên dịch Một phần mềm thông dịch phần mềm có khả đọc, chuyển mã nguồn ngôn ngữ lệnh cho máy tính tiến hành tính tốn dựa theo cú pháp ngôn ngữ Một phần mềm biên dịch hay ngắn gọn trình biên dịch phần mềm có khả chuyển mã nguồn ngơn ngữ ban đầu sang dạng mã thường ngôn ngữ cấp thấp Ngôn ngữ cấp thấp chuỗi thị máy tính mà thực thi trực tiếp máy tính (thơng qua theo tác vùng nhớ) Trước đây, hầu hết trình biên dịch cũ phải dịch từ mã nguồn sang mã phụ (các tệp có dang *.obj) tạo tập tin thực thi Ngày nay, hầu hết trình biên dịch có khả dịch mã nguồn trực tiếp thành tập tin thực thi hay thành dạng mã khác thấp hơn, tuỳ theo yêu cầu người lập trình Điểm khác thơng dịch biên dịch là: trình thơng dịch dịch câu lệnh theo yêu cầu thực thi chương trình đích vừa tạo khơng lưu lại; đó, trình biên dịch dịch tồn chương trình, cho chương trình đích lưu lại máy tính thực chương trình Một chương trình máy tính thực thi cách biên dịch, thông dịch, phối hợp hai Để đạt yêu cầu độ xác tính hiệu quả, mã viết nhiều khó đọc với người viết mã đó, chưa kể tới người khác Chính lý đó, tài liệu, hướng dẫn lập trình khuyên nên thêm giải vào mã nguồn trình viết Các giải giúp người khác nhiều việc đọc hiểu mã nguồn; chương trình phức tạp, giải thành phần vô quan trọng mã nguồn 1.2 Một số khái niệm lập trình hướng đối tượng OOP chữ viết tắt Object Oriented Programming có nghĩa Lập trình hướng đối tượng phát minh năm 1965 Ole-Johan Dahl Kristen Nygaard ngôn ngữ Simula So với phương pháp lập trình cổ điển, triết lý bên loại ngôn ngữ loại để tái dụng khối mã nguồn cung ứng cho khối khả mới: chúng có hàm (gọi phương thức) liệu (gọi thuộc tính) nội Khối mã gọi đối tượng Các đối tượng độc lập với mơi trường có khả trả lời với yêu cầu bên tùy theo thiết kế người lập trình Với cách xây dựng này, đối tượng tương đương với chương trình riêng có nhiều đặc tính mà quan trọng tính đa hình, tính đóng, tính trừu tượng tính thừa kế Thừa kế Đây đặc tính cho phép tạo đối tượng từ đối tượng ban đầu lại có thêm đặc tính riêng mà đối tượng ban đầu khơng có Cơ chế cho phép người lập trình tái sử dụng mã nguồn cũ phát triển mã nguồn cách tạo đối tượng thừa kế đối tượng ban đầu Đa hình Tính đa hình thể lập trình hướng đối tượng đặc biệt Người lập trình định nghĩa thuộc tính (chẳng hạn thông qua tên phương thức) cho loạt đối tượng gần thi hành dùng tên gọi mà thi hành đối tượng tự động xảy tương ứng theo đối tượng không bị nhầm lẫn Ví dụ: định nghĩa hai đối tượng "hinh_vuong" "hinh_tron" có phương thức chung "chu_vi" Khi gọi phương thức đối tượng "hinh_vuong" tính theo cơng thức khác với đối tượng "hinh_tron" Trừu tượng Đặc tính cho phép xác định đối tượng trừu tượng, nghĩa đối tượng có số đặc điểm chung cho nhiều đối tượng thân đối tượng khơng có biện pháp thi hành Ví dụ: người lập trình định nghĩa đối tượng "hinh" hồn tồn trừu tượng khơng có đặc tính mà có phương thức đặt tên chẳng hạn "chu_vi", "dien_tich" Để thực thi người lập trình buộc phải định nghĩa thêm đối tượng cụ thể chẳng hạn định nghĩa "hinh_tron" "hinh_vuông" dựa đối tượng "hinh" hai định nghĩa thừa kế thuộc tính phương thức đối tượng "hinh" Đóng Tính đóng dược hiểu liệu (thuộc tính) hàm (phương thức) bên đối tượng không cho phép người gọi dùng hay thay đổi cách tự mà tương tác với đối tượng qua phương thức người lập trình cho phép Tính đóng so sánh với khái niệm "hộp đen", nghĩa người ta thấy hành vi đối tượng tùy theo yêu cầu môi trường lại biết máy bên thi hành 1.3 Các ưu điểm lập trình hướng đối tượng Java 1.Đơn giản Những người thiết kế mong muốn phát triển ngôn ngữ dễ học quen thuộc với đa số người lập trình Java tựa C++, lược bỏ đặc trưng phức tạp, không cần thiết C C++ như: thao tác trỏ, thao tác định nghĩa chồng tốn tử (operator overloading),… Java khơng sử dụng lệnh “goto” file header (.h) Cấu trúc “struct” “union” loại bỏ khỏi Java Nên có người bảo Java “C++ “, ngụ ý bảo java C++ bỏ thứ phức tạp, khơng cần thiết Hướng đối tượng Có thể nói java ngơn ngữ lập trình hồn tồn hướng đối tượng, tất cảc java vật, vật Độc lập với hệ Mục tiêu nhà thiết kế java độc lập với hệ hay gọi độc lập phần cứng hệ điều hành Đây khả chương trình viết máy chạy đâu Tính độc lập với phần cứng hiểu theo nghĩa chương trình Java chạy phần cứng họ máy chạy tất họ máy khác Một chương trình chạy số họ máy cụ thể gọi phụ thuộc vào phần cứng Tính độc lập với hệ điều hành hiểu theo nghĩa chương trình Java chạy tất hệ điều hành Một chương trình chạy số hệ điều hành gọi phụ thuộc vào hệ điều hành Các chương trình viết java chạy hầu hết hệ mà khơng cần phải thay đổi gì, điều người lập trình đặt cho hiệu ‘viết lần, chạy nơi’, điều khơng thể có với ngơn ngữ lập trình khác Đối với chương trình viết C, C++ ngơn ngữ khác, trình biên dịch chuyển tập lệnh thành mã máy (machine code), hay lệnh vi xử lý Những lệnh phụ thuộc vào CPU máy bạn Nên muốn chạy loại CPU khác, phải biên dịch lại chương trình Mạnh mẽ Java ngơn ngữ u cầu chặt chẽ kiểu liệu, việc ép kiểu tự động bừa bãi C, C++ hạn chế Java, điều làm chương trình rõ ràng, sáng sủa, lỗi hơn.Java kiểm tra lúc biên dịch thời gian thơng dịch Java loại bỏ loại lỗi lập trình định.Java khơng sử dụng trỏ phép tốn trỏ Java kiểm tra tất truy nhập đến mảng, chuỗi thực thi để đảm bảo truy nhập khơng ngồi giới hạn kích thước Trong mơi trường lập trình truyền thống, lập trình viên phải tự cấp phát nhớ Trước chương trình kết thúc phải tự giải phóng nhớ cấp Vấn đề nảy sinh lập trình viên qn giải phóng nhớ xin cấp trước Trong chương trình Java, lập trình viên bận tâm đến việc cấp phát nhớ Qúa trình cấp phát, giải phóng thực tự động, nhờ dịch vụ thu nhặt đối tượng không sử dụng (garbage collection) Cơ chế bẫy lỗi Java giúp đơn giản hóa qúa trình xử lý lỗi hồi phục sau lỗi Hỗ trợ lập trình đa tuyến Đây tính cho phép viết chương trình có nhiều đoạn mã lệnh chạy song song với Với java ta viết chương trình có khả chạy song song cách dễ dàng, việc đồng tài nguyên dùng chung Java đơng giản Điều khơng thể có số ngơn ngữ lập trình khác C/C++, pascal … Phân tán Java hỗ trợ đầy đủ mơ hình tính tốn phân tán: mơ hình client/server, gọi thủ tục từ xa… Hỗ trợ internet Mục tiêu quan trọng nhà thiết kế java tạo điều kiện cho nhà phát triển ứng dụng viết chương trình ứng dụng internet web cách dễ dàng, với java ta viết chương trình sử dụng giao thức TCP, UDP cách dễ dàng, lập trình web phía máy khách java có cơng nghệ java applet, lập trình web phía máy khách java có cơng nghệ servlet/JSP, lập trình phân tán java có cơng nghệ RMI, CORBA, EJB, Web Service Thơng dịch Các chương trình java cần thơng dịch trước chạy, chương trình java biên dịch thành mã byte code mã độc lập với hệ nền, chương trình thơng dịch java phương thức gọi dựa đối tượng tham chiếu biến tham chiếu Trước tìm hiểu đa hình runtime, tìm hiểu Upcasting Upcasting gì? Khi biến tham chiếu lớp cha tham chiếu tới đối tượng lớp con, Upcasting Ví dụ: class A{} class B extends A{} A a=new B();//day la upcasting Ví dụ đa hình runtime Java Trong ví dụ, tạo hai lớp Bike Splendar Lớp Splendar kế thừa lớp Bike ghi đè phương thức run() Chúng ta gọi phương thức run biến tham chiếu lớp cha Khi tham chiếu tới đối tượng lớp phương thức lớp ghi đè phương thức lớp cha, phương thức lớp triệu hồi runtime Khi việc gọi phương thức định JVM khơng phải Compiler, đa hình runtime class Bike{ void run(){System.out.println("dang chay");} } class Splender extends Bike{ void run(){System.out.println("chay an toan voi 60km");} public static void main(String args[]){ Bike b = new Splender();//day la upcasting b.run(); } } 18.3 Case study: Đa hình runtime Java với thành viên liệu Phương thức bị ghi đè không thành viên liệu, đa hình runtime khơng thể có thành viên liệu Trong ví dụ sau đây, hai lớp có thành viên liệu speedlimit, truy cập thành viên liệu biến tham chiếu lớp cha mà tham chiếu tới đối tượng lớp Khi truy cập thành viên liệu mà khơng bị ghi đè, ln ln truy cập thành viên liệu lớp cha Qui tắc: Đa hình runtime khơng thể có thành viên liệu class Bike{ int speedlimit=90; } class Honda3 extends Bike{ int speedlimit=150; public static void main(String args[]){ Bike obj=new Honda3(); System.out.println(obj.speedlimit);//90 } Đa hình runtime Java với kế thừa nhiều tầng (Multilevel) Bạn theo dõi ví dụ sau: class Animal{ void eat(){System.out.println("an");} } class Dog extends Animal{ void eat(){System.out.println("an hoa qua");} } class BabyDog extends Dog{ void eat(){System.out.println("uong sua");} public static void main(String args[]){ Animal a1,a2,a3; a1=new Animal(); a2=new Dog(); a3=new BabyDog(); a1.eat(); a2.eat(); a3.eat(); } } Và: class Animal{ void eat(){System.out.println("animao dang an ");} } class Dog extends Animal{ void eat(){System.out.println("dog dang an ");} } class BabyDog1 extends Dog{ public static void main(String args[]){ Animal a=new BabyDog1(); a.eat(); }} Vì, BabyDog khơng ghi đè phương thức eat(), phương thức eat() lớp Dog() triệu hồi Bài 20: Bài tập thảo luận tổng kết môn học 20.1 Những ưu điểm lập trình hướng đối tượng OOP giúp việc thiết kế, phát triển bảo trì dễ dàng với lập trình hướng thủ tục việc quản lý code khó khăn lượng code tăng lên Điều làm tăng hiệu có q trình phát triển phần mềm OOP cung cấp Data Hiding (ẩn liệu) trong hướng thủ tục liệu tồn cục truy cập từ đâu OOP cung cấp cho bạn khả để mô kiện giới thực cách hiệu Chúng ta cung cấp giải pháp cho vấn đề giới thực sử dụng Lập trình hướng đối tượng 20.2 Tóm tắt lập trình HĐT Trong kỹ thuật lập trình hướng đối tượng, thiết kế chương trình sử dụng lớp đối tượng Object - Đối tượng thực thể mang tính vật lý mang tính logic, lớp thực thể logic Đối tượng có trạng thái hành vi Ví dụ: Một dog có trạng thái color, name, breed (dịng dõi) có hành vi: Wag (vẫy đuôi), bark (sủa), eat (ăn) Một đối tượng instance (ví dụ,trường hợp) lớp Class - Một lớp nhóm đối tượng mà có thuộc tính chung Lớp Template thiết kế từ đối tượng tạo Đối tượng Java Đó thực thể có trạng thái hành vi, ví dụ bàn, ghế, xe con, mèo, … Nó mang tính vật lý logic Ví dụ logic Banking system Một đối tượng có ba đặc trưng sau: Trạng thái: biểu diễn liệu (giá trị) đối tượng Hành vi: biểu diễn hành vi (tính năng) đối tượng gửi tiền vào, rút tiền ra, … Nhận diện: việc nhận diện đối tượng triển khai thông qua ID Giá trị ID khơng thể nhìn thấy với người dùng bên ngồi Nhưng sử dụng nội JVM để nhận diện đối tượng cách Ví dụ: Bút đối tượng Nó có tên Thiên Long, có màu trắng, … xem trạng thái Nó sử dụng để viết, viết hành vi Đối tượng thể (Instance) lớp Lớp Template thiết kế từ đối tượng tạo Vì đối tượng Instance (kết quả) lớp Lớp Java Một lớp nhóm đối tượng mà có thuộc tính chung Lớp Template thiết kế từ đối tượng tạo Một lớp Java bao gồm: Thành viên liệu Phương thức Constructor Block Lớp Interface Cú pháp để khai báo lớp class ten_lop{ thanh_vien_du_lieu; phuong_thuc; } Ví dụ đơn giản Lớp Đối tượng Java Trong ví dụ này, tạo lớp Student có hai thành viên liệu id name Chúng ta tạo đối tượng lớp Student từ khóa new in giá trị đối tượng class Student1{ int id; //thanh vien du lieu (cung la bien instance) String name; //thanh vien du lieu (cung la bien instance) public static void main(String args[]){ Student1 s1=new Student1(); //tao mot doi tuong Student System.out.println(s1.id); System.out.println(s1.name); } } Một lớp chứa loại biến sau: Biến Local: Các biến định nghĩa bên phương thức, constructor block code gọi biến Local Biến khai báo khởi tạo bên phương thức biến bị hủy phương thức hoàn thành Biến Instance: Các biến instance biến lớp bên phương thức Những biến khởi tạo lớp tải Các biến instance truy cập từ bên phương thức, constructor khối lớp cụ thể Biến Class: Các biến class biến khai báo với lớp, bên phương thức nào, với từ khóa static Phương thức Java Trong Java, phương thức giống hàm, sử dụng để trưng bày hành vi đối tượng Phương thức giúp code tăng tính tái sử dụng tối ưu hóa code Từ khóa new sử dụng để cấp phát nhớ runtime Constructor Java: Khi bàn luận lớp, chủ đề quan trọng constructor Mỗi lớp có constructor Nếu khơng viết constructor cách rõ ràng cho lớp biên dịch Java xây dựng constructor mặc định cho lớp Mỗi đối tượng tạo ra, constructor gọi Quy tắc constructor chúng có tên lớp Một lớp có nhiều constructor Sau ví dụ constructor: public class Xecon{ public Xecon(){ } public Xecon(String ten){ // Contructor co mot tham so la ten } } Java hỗ trợ Lớp Singleton Java, bạn tạo instance lớp Tạo đối tượng Java: Như đề cập trước đó, lớp cung cấp thiết kế cho đối tượng Vì thế, bản, đối tượng tạo từ lớp Trong Java, từ khóa new sử dụng để tạo đối tượng Có ba bước tạo đối tượng từ lớp: Khai báo: Một khai báo biến với tên biến với loại đối tượng Cài đặt: Từ khóa new sử dụng để tạo đối tượng Khởi tạo: Từ khóa new theo sau lời gọi constructor Gọi hàm khởi tạo đối tượng Dưới ví dụ tạo đối tượng: public class Xecon{ public Xecon(String ten){ // Contructor co mot tham so la ten System.out.println("Ten xe la :" + ten ); } public static void main(String []args){ // Lenh sau se tao mot doi tuong la Xecuatoi Xecon Xecuatoi = new Xecon( "Toyota" ); } } Nếu biên dịch chạy chương trình, cho kết sau: Ten xe la :Toyota Truy cập biến instance phương thức Java Các biến instance phương thức truy cập thông qua đối tượng tạo Để truy cập biến instance, path sau: /* Dau tien, ban tao mot doi tuong */ Doituongthamchieu = new Constructor(); /* Sau ban goi mot bien nhu sau */ Doituongthamchieu.TenBien; /* Bay gio ban co the goi mot phuong thuc lop nhu sau */ Doituongthamchieu.TenPhuongThuc(); Ví dụ: Ví dụ giải thích cách để truy cập biến instance phương thức lớp: public class Xecon{ int Giaxe; public Xecon(String ten){ // Contructor co mot tham so la ten System.out.println("Ten xe la :" + ten ); } public void setGia( int gia ){ Giaxe = gia; } public int getGia( ){ System.out.println("Gia mua xe la :" + Giaxe ); return Giaxe; } public static void main(String []args){ /* Tao doi tuong */ Xecon Xecuatoi = new Xecon( "Toyota" ); /* Goi mot phuong thuc lop de thiet lap gia xe */ Xecuatoi.setGia( 1000000000 ); /* Goi mot phuong thuc lop khac de lay gia xe */ Xecuatoi.getGia( ); /* Ban cung co the truy cap bien instance nhu sau */ System.out.println("Gia tri bien :" + Xecuatoi.Giaxe ); } } Biên dịch thực thi chương trình cho kết sau: Ten xe la :Toyota Gia mua xe la :1000000000 Gia tri bien :1000000000 Ví dụ đối tượng lớp mà trì ghi sinh viên Trong ví dụ này, tạo hai đối tượng lớp Student khởi tạo giá trị đối tượng việc triệu hồi phương thức insertRecord Ở đây, hiển thị trạng thái (dữ liệu) đối tượng việc triệu hồi phương thức displayInformation class Student2{ int rollno; String name; void insertRecord(int r, String n){ //phuong thuc rollno=r; name=n; } void displayInformation(){System.out.println(rollno+" "+name);} //phuong thuc public static void main(String args[]){ Student2 s1=new Student2(); Student2 s2=new Student2(); s1.insertRecord(111,"HoangThanh"); s2.insertRecord(222,"ThanhHuong"); s1.displayInformation(); s2.displayInformation(); } } Ví dụ khác lớp đối tượng Java Ví dụ khác trì ghi lớp Rectangle Phần giải thích tương tự trên: class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } Các cách khác để tạo đối tượng Java? Có nhiều cách để tạo đối tượng Java Đó là: Bằng từ khóa new Bằng phương thức newInstance() Bằng phương thức clone(), … Bằng phương thức factory, Đối tượng vô danh (annonymous) Java Vơ danh hiểu đơn giản khơng có tên Một đối tượng mà khơng có tham chiếu xem đối tượng vô danh Nếu bạn phải sử dụng đối tượng lần, đối tượng vô danh hướng tiếp cận tốt class Calculation{ void fact(int n){ int fact=1; for(int i=1;i

Ngày đăng: 08/05/2021, 17:29

w