Bài giảng Giới thiệu về lập trình hướng đối tượng và ngôn ngữ Java
Anh Hùng chủcửa hàng bán xe Hùng Phát muốnxâydựng hệthống phầnmềmđểtheo
dõi iệ bôbá th ậ tiệ hơ Q ki h hiệ ả lý hđư ột ố dõiviệc buônbánxethuậntiệnhơn.Quakinhnghiệmquảnlý,anhđưaramột số
thông tin sau:
•Nhữngyếutốliên quanđếnhoạt độngbánxe:Cácloạixe, nhânviênbánhàng, ữgy u ố qua đ oạ độgbá á oạ , â bá àg,
Khách hàng;
•Cáchoạtđộng liên quanđếnviệcmuabán:
ẫ Nhân viên bán hàngđưa khách hàng xem mẫuxe;
Khách hàng lựachọnloạixe;
Kháchhàngđặthóađơn; Kháchhàngđặthóađơn;
Khách hàng trảtiền;
Xeđượctraochokháchhàng; Xeđượctraochokháchhàng;
Vì cácđạilýcủa anh Hùngởcác vị trí khác nhau sửdụng các trang thiếtbị khác nhau,
nên mộtyêucầukháclàlàmsaođểhệthống quảnlýcóthểsửdụngđượctrênnhiều
loạimáy
inish' button: Goes to Next Slide , On failing, 'Finish' button: Goes to Next Slide Allow user to leave quiz: At any time User may view slides after quiz: At any time User may attempt quiz: Unlimited times CÂU HỎI THẢO LUẬN Qua tìm hiểu giữa lớp và đối tượng, anh/chị nào có thể cho tôi biết sự khác nhau giữa lớp và đối tượng. v1.0011107228 25 1.3. MÔ TẢ LỚP VÀ TẠO ĐỐI TƯỢNG TRONG JAVA 1.3.1. Cấu trúc cơ bản của Lớp. 1.3.2. Hàm tạo và vai trò của hàm tạo. 1.3.3. Tạo và sử dụng đối tượng. 1.3.4. Cách truy xuất vào các thành phần của đối tượng. 1.3.5. Vòng đời của một đối tượng. 1.3.6. Phân biệt Đối tượng và Lớp. 1.3.7. Mối tương quan giữa đối tượng thực tế và đối tượng phần mềm. v1.0011107228 26 1.3.1. CẤU TRÚC CƠ BẢN CỦA LỚP è ú í public class ClassName { /** K m ch th chCú pháp cơ bản public ClassName() { * Write a description of class ClassName here. * @author (your name) * @version (a version number or a date) } } */ public class ClassName { /** * Constructor for objects of class ClassName */ File Save public ClassName() { // To do:Class Name.java } } ắ v1.0011107228 27 Lưu ý: Java là ngôn ngữ phân biệt chữ hoa chữ thường. Các quy t c đặt tên lớp cần phải tuân thủ trong Java 1.3.1. CẤU TRÚC CƠ BẢN CỦA LỚP Ví dụ mô tả lớp Car: /** * Car.java * @author author nameClass Name Constructor Car Car() * @version 1/12/2010 */ public class Car { Save /** * Hàm tạo đối tượng của lớp */ File Car.java public Car() { // Khởi tạo đối tượng: } } Hà t (C t t ) Là hà đặ biệt iú t à khởi t á t tháim ạo ons ruc or : m c g p ạo v ạo c c rạng ban đầu cho đối tượng. v1.0011107228 28 1.3.1. CẤU TRÚC CƠ BẢN CỦA LỚP Bổ xung cho Car ô é ô ả ộ í ế à á ế ô• Các thuộc tính model: kiểu dữ liệu chuỗi year: kiểu dữ liệu số nguyên Java kh ng cho ph p m t thu c t nh trực ti p m gi n ti p th ng qua các trường dùng để lưu giá trị thuộc tính của đối tượng: • Các phương thức: move(): Có khả năng di chuyển “200km/h” public class Car {/*** Fields*/ getModel(), getYear(): Có khả năng cho biết kiểu dáng và năm sản xuất. private String model;private int year;/*** Constructors*/public Car() {}/*** Methods*/ Car • model: String • year: int public String move () {return "200km/h";}public String getModel() {return this.model; Car() move(): String tM d l() St i }public int getYear() {return this.year;}} ge o e : r ng setModel(): void getYear(): int v1.0011107228 29 Java cho phép mô tả phương thức của đối tượng trong một lớp dưới dạng các hàm. 1.3.1. CẤU TRÚC CƠ BẢN CỦA LỚP (tiếp theo) Tạo lớp Car trên BlueJ v1.0011107228 30 1.3.2. HÀM TẠO VÀ VAI TRÒ CỦA HÀM TẠO • Java đưa ra khái niệm Hàm tạo (Constructor) được mô tả trong mỗi lớp dùng để tạo và khởi tạo các trạng thái ban đầu của đối tượng; • Tên của hàm tạo luôn luôn trùng với tên của lớp; • Nếu lập trình viên không mô tả Hàm tạo nào thì mặc định sẽ có một Hàm tạo không có đối số được thêm vào cho lớp; á á ầ ố ó ể ề à ô à ó• C c gi trị ban đ u cho đ i tượng c th được truy n v o th ng qua H m tạo c đối số; • Ví dụ hàm khởi tạo trạng thái ban đầu của đối tượng: public Car() { d l "N d l" public Car(String m, int y) { d l d lmo e = o mo e ; year = 2010; } mo e = mo e ; year = y; } v1.0011107228 31 1.3.3. HÀM TẠO VÀ SỬ DỤNG ĐỐI TƯỢNG • Việc mô tả lớp chỉ có ý nghĩa đặc tả một nhóm đối tượng có chung đặc điểm thuộc tính và phương thức mà chưa thực sự tạo ra một đối tượng. • Để tạo ra đối tượng ta sử dụng từ khóa new kết hợp với Hàm tạo. • Ví dụ tạo một đối tượng Car thông qua Hàm tạo không có đố số như sau: new Car() • Để truy xuất vào đối tượng vừa tạo cần phải khai báo một tham chiếu tới đối tượng thuộc lớp Car, cú pháp như sau: Car c = new Car(); v1.0011107228 32 1.3.4. CÁCH TRUY XUẤT VÀO CÁC THÀNH PHẦN CỦA ĐỐI TƯỢNG • Thông qua đối tượng tham chiếu ta có thể truy xuất vào các thành phần của đối tượng vừa được tạo (các phương thức và thuộc tính). • Ví dụ muốn thực thi phương thức move() của đối tượng thuộc lớp Car ta khai báo và sử dụng thông qua đối tượng tham chiếu car1: Car car1 = new Car(); car1 move();. v1.0011107228 33 1.3.4. CÁCH TRUY XUẤT VÀO CÁC THÀNH PHẦN CỦA ĐỐI TƯỢNG (tiếp theo) Kết quả chạy trên BlueJ Trạng thái của đối tượng khi khởi tạo Kết quả của lời gọi phương thức move() v1.0011107228 34 1.3.5. VÒNG ĐỜI CỦA MỘT ĐỐI TƯỢNG Kh i bá ột th hiế tới đối tượ Car c; a o m am c u ng: Sử dụng phương thức tạo để khởi tạo một đối tượng: c = new Car(); c:Car Mỗi một object được sinh ra đều có thời gian sống, phạm vi hoạt động của riêng nó. Trong thời gian hoạt động ta ó thể t ất à á t ườ à hươ thứ ó thểc ruy xu v o c c r ng v p ng c c truy xuất của đối tượng. c move();. c.getModel(); Đối tượng sẽ kết thúc vòng đời khi không còn được sử dụng nữa. c = null;Life time v1.0011107228 35 Garbage collector 1.3.6. PHÂN BIỆT ĐỐI TƯỢNG VÀ LỚP • Lớp • Đối tượng Là đặc tả chi tiết về đối tượng (còn gọi là bản mẫu blueprint). Là thể hiện của một lớp với những đặc điểm, chức năng cụ thể. Một lớp có thể cho phép tạo ra nhiều đối tượng. Các đối tượng từ cùng một lớp sẽ có cùng cấu trúc và chức năng như mô tả trong lớp v1.0011107228 36 . 1.3.7. MỐI TƯÕNG QUAN GIỮA ĐỐI TƯỢNG THỰC TẾ VÀ ĐỐI TƯỢNG PHẦN MỀM Thực tế Phần mềmKhái niệm Lớp public class Car { private int price; private String color; Đối tượng } Car myCar=new Car(); Car yourCar=new Car(); ộ í 5.000$Price: myCar Thu c t nh “red”Color: Phương thức myCar.start(); myCar.setGear(1); myCar.accelerate(); myCar turnLeft(); v1.0011107228 37 . BÀI TẬP Chương trình java đầu tiên cài đặt trên Bluej • Chương trình in ra dòng chữ Hello World • Load code tham khảo v1.0011107228 38 1.4. LẬP TRÌNH ỨNG DỤNG CONSOLE VỚI JAVA 1.4.1. Lớp Scanner và cách nhập dữ liệu; 1.4.2. System.out và cách xuất dữ liệu; 1.4.3. Hàm main. v1.0011107228 39 1.4.1. LỚP SCANNER VÀ NHẬP DỮ LIỆU • Lớp java.util.Scanner cho phép lập trình nhập dữ liệu cho các biến với các kiểu dữ liệu cơ bản khác nhau. • Cách sử dụng: Scanner input = new Scanner(System.in); int x = input.nextInt(); double d = input.nextDouble(); boolean b = input.nextBoolean(); long l = input.nextLong(); byte bi = input.nextByte(); String s = input.nextLine(); v1.0011107228 40 1.4.2. SYSTEM.OUT VÀ XUẤT DỮ LIỆU • Phương thức print(): In ra màn hình console một chuỗi. • Phương thức printf() (có từ J2SE 5.0) có thể được sử dụng để xuất dữ liệu theo định dạng. System.out.print("========="); System.out.println(); S t t i tf("% %d" "H ll " 123)ys em.ou .pr n s - , e o , ; v1.0011107228 41 1.4.3. HÀM MAIN • Hàm main() là một hàm đặc biệt trong java Một lớp bất kỳ đều có thể cài đặt hàm. main, khi đó ta gọi lớp đó là Main Class. • Một ứng dụng java thông thường sẽ được khởi chạy từ hàm main(). • Khi thực thi hàm main(), người dùng có thể khởi tạo các giá trị cho hàm thông qua các tham số truyền vào cho hàm main(), còn gọi là đối số dòng lệnh. public class Demo { public static void main(String[] args) { System.out.print("Hello"); System.out.println(args[0]); System.out.println(args[1]); } } $java Demo World Wide Web World Wide Web v1.0011107228 42 BÀI TẬP Dùng notepad để soạn thảo chương trình • Chương trình in ra dòng chữ Hello World • Load code tham khảo v1.0011107228 43 BÀI TẬP 1: MÔ TẢ ĐỐI TƯỢNG CAR • Viết một lớp mô các đối tượng xe ôtô lấy tên Car, với mỗi đối tượng xe ôtô sẽ có những đặc điểm sau: Có thuộc tính tên mẫu xe; Có thuộc tính mô tả màu; Có thuộc tính tốc độ tối đa; Có phương thức cho biết tên các loại xe; Có phương thức cho biết màu xe; Có phương thức cho biết tốc độ tối đa; Có hàm tạo có tham số để khởi tạo các giá trị ban đầu như tên mẫu xe, à tố độ tối đm u xe, c a. • Sử dụng Bluej tạo và thực thi các phương thức của đối tượng thuộc lớp car. • Đáp án tham khảo v1.0011107228 44 BÀI TẬP 2 Viết một lớp các đối tượng hình chữ nhật lấy tên là Rectangle, mỗi hình chữ nhật đều có những đặc tính sau: • Có thông số chiều dài (int); • Có thông số chiều rộng (int); • Có tính năng tính diện tích; • Có tính năng tính chu vi; Có tí h ă hiể thị t ự hì h hữ hật dưới d• n n ng n r c quan n c n ạng sau: Ví dụ hình chữ nhật có chiều dài 7, chiều rộng 3 sẽ được hiển thị như sau lên màn hình console: ####### ####### ####### • Sử dụng lớp Rectangle vừa định nghĩa để viết một chương trình java với kịch bản như sau: • Khai báo và khởi tạo một đối tượng kiểu Rectangle; • Hiển thị hình chữ nhật trên màn hình console; • Thay đổi chiều dài và chiều rộng của hình chữ nhật; v1.0011107228 45 • In ra màn hình diện tích và chu vi của hình chữ nhật đó. • Đáp án tham khào PROPERTIES On passing 'Finish' button: Goes to Next Slide , On failing, 'Finish' button: Goes to Next Slide Allow user to leave quiz: At any time User may view slides after quiz: At any time User may attempt quiz: Unlimited times CÂU HỎI THẢO LUẬN Qua tìm hiểu về hàm tạo anh/ chị nào có thể cho tôi biết sự khác nhau giữa hàm tạo và các hàm thông thường khác? v1.0011107228 47 TÓM LƯỢC CUỐI BÀI Sau khi học xong bài này chúng ta đã nắm được các kiến thức sau: • Đặc trưng của công nghệ Java; • Các khái niệm cơ bản trong lập trình hướng đối tượng; • Viết ứng dụng theo hướng đối tượng với Java như: Xây dựng lớp; Tạo và sử dụng đối tượng; Sử dụng lớp Scanner thực hiện việc nhập liệu. • Cài đặt ứng dụng chạy trên BlueJ. v1.0011107228 48 PROPERTIES On passing 'Finish' button: Goes to Next Slide , On failing, 'Finish' button: Goes to Next Slide Allow user to leave quiz: At any time User may view slides after quiz: At any time User may attempt quiz: Unlimited times PROPERTIES Allow user to leave interaction: Anytime Show ‘Next Slide’ Button: Don't show Completion Button Label: Next Slide PROPERTIES Allow user to leave interaction: Anytime Show ‘Next Slide’ Button: Don't show Completion Button Label: Next Slide
File đính kèm:
- Bài giảng Giới thiệu về lập trình hướng đối tượng và ngôn ngữ Java.pdf