Định nghĩa và khai báo lớp

Lớp là khái niệm trọng tâm của lập trình hướng đối tượng, java là ngôn ngữ lập trình hướng đối tượng, một chương trình java gồm một tập các đối tượng, các đối tượng này phối hợp với nhau để tạo thành một ứng dụng hoàn chỉnh.

Khái niệm lớp và đối tượng

Chắc các bạn vẫn nhớ môn sinh học chúng ta có học về các lớp như lớp thú, lớp bò sát, lớp chim,…

khái niệm về lớp trong hướng đối tượng

Trong mỗi lớp đó có các tính chất, đặc điểm riêng như lớp thú gồm nhiều bộ, môi trường sinh sống đa dạng và là động vật hằng nhiệt còn lớp bò sát thì bao gồm 4 bộ, sống cả ở nước và ở cạn, và cũng là động vật hằng nhiệt,...

khái niệm về lớp trong hướng đối tượng

Vậy thế nào được gọi là một lớp?

Lớp các bạn hiểu đó là một khái niệm bao quát nói lên những đặc điểm chung nhất của các phần tử, các thành viên trong lớp đó.

Còn thế nào là đối tượng?

Đối tượng chính là một phần tử, một thành viên cụ thể nào đó trong lớp. Ví dụ như con chó ở nhà chúng ta là một đối tượng, đối tượng này thuộc vào lớp thú vì nó sẽ có những đặc điểm của lớp thú như là động vật hằng nhiệt, môi trường sông đa dạng,.... Mỗi đối tượng người ta cũng gọi là một thể hiện của lớp vì thông qua đối tượng đó chúng ta biết được những tính chất chung nhất của lớp.

image

Khai báo lớp

Một lớp được định nghĩa theo mẫu sau:

[public][abstract][final] class [<Tên lớp>]
  [extends <Tên lớp cha>] [implements <Tên giao diện>] {
  Các thuộc tính của lớp
  Các Phương thức của lớp
}

Sau đâu là ví dụ đơn giản định nghĩa lớp ngăn xếp

image

Trong đó:

  • public: dùng để khai báo nếu muốn gói khác có thể sử dụng lớp này.
  • abstract là bổ từ cho java biết đây là một lớp trừu tượng, do vậy ta không thể tạo ra một thể hiện của lớp này.
  • final là bổ từ cho java biết đây là một lớp không thể kế thừa.
  • class là từ khoá cho chương trình biết ta đang khai báo một lớp, ví dụ class LopThu thì lớp này có tên là LopThu
  • extends là từ khoá cho java biết lớp này này được kế thừa từ lớp khác
  • implements là từ khoá cho java biết lớp này sẽ triển khai giao diện Interfaces, đây là một dạng tương tự như kế thừa bội của java.
  • Thuộc tính của lớp là một biến có kiểu dữ liệu bất kỳ, nó có thể lại là một biến có kiểu là chính lớp đó
  • Khi khai báo các thành phần của lớp (thuộc tính và phương thức) có thể dùng một trong các từ khoá private, public, protected để giứo hạn sự truy cập đến thành phần đó
  • Các thành phần private chỉ có thể sử dụng được ở bên trong lớp, ta không thể truy cập vào các thành phần private từ bên ngoài lớp
  • Các thành phần public có thể truy cập được cả bên trong lớp lẫn bên ngoài lớp.
  • Các thành phần protected tương tự như các thành phần private, nhưng có thể truy cập được từ bất cứ lớp con nào kế thừa từ nó.
  • Nếu một thành phần của lớp khi khai báo mà không sử dụng một trong 3 bổ từ protected, private, public thì sự truy cập là bạn bè, tức là thành phần này có thể truy cập được từ bất cứ lớp nào trong cùng gói với lớp đó.
  • Các thuộc tính nên để mức truy cập private để đảm bảo tính dấu kín và lúc đó để bên ngoài phạm vi của lớp có thể truy cập được đến thành phần private này ta phải tạo ra các phương thức phương thức get và set.
  • Các phương thức thường khai báo là public, để chúng có thể truy cập từ bất cứ đâu.
  • Trong một tệp chương trình (hay còn gọi là một đơn vị biên dịch) chỉ có một lớp được khai báo là public, và tên lớp public này phải trùng với tên của tệp kể cả chữ hoa, chữ thường

Khai báo thuộc tính

Một ví dụ khai báo thuộc tính như sau:

public class LopThu {
  private String moiTruongSong;
  private boolean laDongVatHangNhiet;
  ...
}

Trong lớp LopThu trên ta có thể tổng quát việc khai báo thuộc tính như sau:

[Access Level] [Static] [Type]  [<Tên thuộc tính>];

Trong đó:

  • Access Level có thể là một trong các từ public, private, protected hoặc có thể bỏ trống (protected), ý nghĩa của các bổ từ này được mô tả ở phần trên
  • Static là từ khoá báo rằng đây là một thuộc tính lớp, nó là một thuộc tính sử dụng chung cho cả lớp, nó không là của riêng một đối tượng nào.
  • Type là một kiểu dữ liệu nào đó
  • <Tên thuộc tính> là tên của thuộc tính
Ta phải phân biệt được việc khai báo như thế nào là khai báo thuộc tính, khai báo thế nào là khai báo biến thông thường? Câu trả lời là tất cả các khai báo bên trong thân của một lớp và bên ngoài tất cả các phương thức và hàm tạo thì đó là khai báo thuộc tính, khai báo ở những chỗ khác sẽ cho ta biến.

Khai báo phương thức

Một ví dụ khai báo phương thức như sau:

public class LopThu {
  private String moiTruongSong;
  private boolean laDongVatHangNhiet;


  private void noiXinChao() {
    System.out.println("Xin chào mọi người");
  }
}

Trong lớp LopThu trên ta có phương thức noiXinChao dùng để in ra dòng chứ Xin chào mọi người ra màn hình console

Chi tiết của phần khai báo phương thức chúng ta sẽ tìm hiểu ở bài sau nhé

Avatar Administrator

Administrator

@thaycacac
Chẳng có gì trở nên dễ dàng hơn. Chỉ là bạn trở nên mạnh mẽ hơn mà thôi.
Logo thể loại Java

Java

Chuyên mục học lập trình
Học Java từ cơ bản đến thông thạo cho mọi đối tượng
hello