Lớp là gì?

  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:

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);
    }
}

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:

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();
    }
}

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

7 comments on “Lớp là gì?

  1. Pingback: Các khái niệm của lập trình hướng đối tượng « Tạp chí Lập trình

  2. Pingback: Kế thừa là gì? « Tạp chí Lập trình

  3. Pingback: Đối tượng là gì? « Tạp chí Lập trình

  4. Pingback: Giao diện là gì? « Tạp chí Lập trình

  5. Pingback: Gói là gì? « Tạp chí Lập trình

  6. Pingback: Câu hỏi và bài tập: Các khái niệm trong lập trình hướng đối tượng « Tạp chí Lập trình

  7. Trong lập trình OOP, xét từ mức nảy sinh ý tưởng cho ứng dụng tới việc triển khai dự án của ứng dụng đó thì:
    + Interface sẽ là cái nên nghĩ tới đầu tiên, nó là 1 bản mô tả cho bản thiết kế ứng dụng đó. Ví dụ trong xây dựng, khi nhận thầu và tìm hiểu dự án thì diện tích đất và yêu cầu khách hàng (nói mồm, bản thảo) sẽ là những thông tin mô tả cho dự án đó.
    + Thực sự nếu nói tới bản thiết kế của ứng dụng thì ta phải nói tới abstract class chứ không phải class. Abstract class đóng vai trò cho các lớp đối tượng để thừa kế, mở rộng các đặc tính.
    + Tiếp đến cuối cùng là các class extends / implements các Abstract Class / Interface. Nó đóng vai trò như là 1 khuôn mẫu để tạo ra các đối tượng cụ thể.

    Thân!

Leave a Reply

Your email address will not be published. Required fields are marked *