Đị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 từ lập trình hướng đối tượng, một chương trình java gồm một tập những đối tượng, những đối tượng này phối hợp với nhau để tạo thành một ứng dụng hoàn hảo .

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

Chắc những bạn vẫn nhớ môn sinh học tất cả chúng ta có học về những 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 những bạn hiểu đó là một khái niệm bao quát nói lên những đặc thù chung nhất của những thành phần, những thành viên trong lớp đó .

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

Đối tượng chính là một thành phần, một thành viên đơn cử nào đó trong lớp. Ví dụ như con chó ở nhà tất cả 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 thù của lớp thú như là động vật hoang dã hằng nhiệt, môi trường tự nhiên sông phong phú, …. Mỗi đối tượng người ta cũng gọi là một biểu lộ của lớp vì trải qua đối tượng đó tất cả chúng ta biết được những đặc thù 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 []
  [extends ] [implements ] {
  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 thuầ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]  [];

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 đó
  • 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ì ? Câu vấn đáp là tổng thể những khai báo bên trong thân của một lớp và bên ngoài toàn bộ những phương pháp 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 pháp 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 pháp tất cả chúng ta sẽ tìm hiểu và khám phá ở bài sau nhé