1. Các khái niệm trong lập trình hướng đối tượng
  2. Đối tượng là gì?
  3. Lớp là gì?
  4. Kế thừa là gì?
  5. Giao diện là gì?
  6. Gói là gì?
  7. Câu hỏi và bài tập

Lớp là gì?

Trong thế giới thực, bạn thường thấy nhiều đối tượng riêng lẻ thuộc cùng một loại.Có thể có hàng nghìn chiếc xe đạp cùng tồn tại, tất cả chúng đều giống nhau về cách sản xuất và mẫu mã. Mỗi chiếc xe đạp đã được tạo ra từ một tập thiết kế chung, vì thế chúng giống nhau về thành phần cấu tạo. Trong thuật ngữ hướng đối tượng, chúng ta nói rằng chiếc xe đạp là một thể hiện của một lớp các đối tượng có tên gọi là xe đạp. Một lớp là một bản thiết kế mà từ đó các đối tượng cụ thể được tạo ra.

Dưới đây có thể là một cách triển khai của lớp xe đạp:

[sourcecode lang=”java”]
class Bicycle {

int cadence = 0;
int speed = 0;
int gear = 1;

void changeCadence(intnewValue) {
cadence = newValue;
}

void changeGear(intnewValue) {
gear = newValue;
}

void speedUp(int increment) {
speed = speed + increment;
}

void applyBrakes(int decrement) {
speed = speed – decrement;
}

void printStates() {
System.out.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}

[/sourcecode]

Cú pháp của ngôn ngữ Java có vẻ mới lạ với bạn, nhưng thiết kế của lớp này được dựa trên những thảo luận trước đó về đối tượng xe đạp. Các trường casdence, speedgear biễu diễn trạng thái của đối tượng xe đạp, và các phương thức (changeCadence, changeGear, speedUp, v.v.) định nghĩa các tương tác của nó với thế giới xung quanh.

Bạn có thể thấy rằng lớp Bicycle không chứa phương thức main. Đó là bởi vì nó chưa phải là ứng dụng hoàn thiện; nó chỉ là bản thiết kế cho những chiếc xe đạp mà có thể được dùng trong một ứng dụng. Trách nhiệm của việc tạo và sử dụng các đối tượng xe đạp thuộc về một số lớp khác trong ứng dụng của bạn.

Dưới đây là lớp BicycleDemo, nó tạo ra hai đối tượng xe đạp riêng biệt và gọi các phương thức của chúng:

[sourcecode lang=”java”]
classBicycleDemo {
public static void main(String[] args) {
// Tạo hai đối tượng
// của lớp Bicycle
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();

// Gọi tới các phương thức
// của các đối tượng này
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();

bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
}

[/sourcecode]

Kết quả của đoạn mã trên là in ra giá trị mới nhất của tốc độ đạp xe, vận tốc và số đang được sử dụng của hai chiếc xe đạp:

cadence:50 speed:10 gear:2

cadence:40 speed:20 gear:3

Bài được dịch từ nguồn  docs.oracle.com

Trans-team: PhúDĐ, NgọcNT, ĐạtDĐ, SơnĐH, HàĐT, ChàmNM

Sinh viên FPT Aptech Hà Nội