26/05/2018, 16:39

Lớp và đối tượng trong Java

Để tìm hiểu rõ hơn về lớp và đối tượng trong Java, cùng tham khảo nội dung trong bài viết dưới đây của Zaidap.com. Java là ngôn ngữ lập trình hướng đối tượng. Vì ...

Để tìm hiểu rõ hơn về lớp và đối tượng trong Java, cùng tham khảo nội dung trong bài viết dưới đây của Zaidap.com.

Java là ngôn ngữ lập trình hướng đối tượng. Vì là ngôn ngữ lập trình hướng đối tượng nên một lớp trong Java có thể chứa:

Trong bài viết này Zaidap.com sẽ giới thiệu qua và cung cấp cho bạn các khái niệm về lớp và đối tượng trong Java.

- Tính đa hình (Polymorphism).
- Tính kế thừa (Inheritance).
- Tính đóng gói (Encapsulation).
- Lớp trừu tượng (Abstraction).
- Các lớp (class).
- Các đối tượng (Object).
- Biến instance.
- Các phương thức.
- Phân tích thông điệp (Message Parsing).

lop va doi tuong trong java

- Đối tượng (object): Đối tượng có trạng thái và hành vi. Một đối tượng thể hiện một lớp.

- Lớp (class): Một lớp được định nghĩa như một khuôn mẫu / blueprint miểu tả các hành vi / trạng thái của đối tượng mà nó hỗ trợ.

Đối tượng trong Java

Để tìm hiểu chi tiết hơn về đối tượng trong Java là gì. Nếu lấy ví dụ trong thực tế, bạn có thể tìm thấy nhiều đối tượng khác nhau như ô tô, con người, các con vật, .... Tất cả các đối tượng này đều có trạng thái và hành vi.

Nếu so sánh các đối tượng phần mềm với một đối tượng trong thế giới thực, chúng có các đặc tính giống nhau.

Các đối tượng phần mềm cũng có trạng thái và hành vi. Trạng thái của đối tượng phần mềm là được lưu trữ trong các trường và hành vi được hiển thị thông qua các phương thức.

Vì vậy, trong phát triển phần mềm, các phương thức hoạt động trong trạng thái nội bộ của một đối tượng và giao tiếp giữa các đối tượng được thực hiện thông qua các phương thức.

Lớp trong Java

Một lớp là một bản thiết kế (Blueprint) mà từ đó từng đối tượng một được tạo ra.

Dưới đây là ví dụ đơn giản về lớp trong Java:

lop va doi tuong trong java 2

Một lớp trong Java có thể chứa các biến dưới đây:

- Biến cục bộ (Local variables): Các biến được định nghĩa bên trong các phương thức, constructor hoặc các block được gọi là biến cục bộ. Biến sẽ được khai báo và khởi tạo trong phương thức và sẽ bị hủy sau khi phương thức được hoàn tất.

- Biến thực thể (Instance variables): Các biến thực thể là các biến nằm trong một lớp nhưng nằm ngoài các phương thức. Các biến này được khởi tạo khi lớp được khởi tạo. Biến thực thể có thể được truy cập bên trong các phương thức, constructor hoặc block của lớp cụ thể.

- Biến của lớp (Class variables): Biến của lớp là biến khai báo trong một lớp, bên ngoài các phương thức và có từ khóa static.

Một lớp có thể có nhiều phương thức để truy cập giá trị của các loại phương thức khác nhau. Trong ví dụ trên barking(),hungry()sleeping() là các phương thức.

Constructor trong Java

Khi nói về các lớp trong Java, một trong những chủ đề ngoài lề khác mà người dùng quan tâm đó là constructor trong Java. Mỗi lớp có một constructor. Nếu người dùng không viết constructor cho lớp, trình biên dịch sẽ tạo một constructor mặc định cho lớp đó.

Mỗi lần một đối tượng mới được tạo, ít nhất sẽ có một constructor được gọi. Nguyên tắc chính của constructor là có cùng tên với lớp. Một lớp có thể có một hoặc nhiều constructor.

Dưới đây là ví dụ về constructor:

lop va doi tuong trong java 3

Ngoài ra Java cũng hỗ trợ lớp Singleton, tại đây bạn có thể tạo một đối tượng cho một lớp.

Lưu ý là có 2 loại constructor khác nhau, Zaidap.com sẽ giới thiệu cho bạn trong các bài viết tiếp theo.

Tạo một đối tượng trong Java

Như Zaidap.com đã đề cập ở trên, một lớp cung cấp các bản thiết kế (blueprint) cho các đối tượng. Về cơ bản, một đối tượng được tạo ra từ một lớp. Trong Java từ khóa new được sử dụng để tạo các đối tượng mới.

Dưới đây là 3 bước để tạo một đối tượng từ một lớp:

- Khai báo: Một khai báo biến bao gồm tên biến và loại đối tượng.

- Cài đặt: Từ khóa new được sử dụng để tạo đối tượng mới.

- Khởi tạo: Theo sau từ khóa new là lời gọi một constructor. Hàm này được gọi là khởi tạo đối tượng mới.

Dưới đây là ví dụ đơn giản để tạo một đối tượng:

lop va doi tuong trong java 4

Nếu biên dịch và chạy chương trình trên, nó sẽ trả về kết quả đầu ra là:

Passed Name is :tommy

Truy cập các biến thực thể và các phương thức

Các biến thực thể và phương thức được truy cập thông qua các đối tượng được tạo. Để truy cập các biến thực thể, dưới đây là đường dẫn đầy đủ:

lop va doi tuong trong java 5

Ví dụ

Ví dụ dưới đây giải thích cách truy cập các biến thực thể và các phương thức của một lớp trong Java:

lop va doi tuong trong java 6

Nếu biên dịch và chạy chương trình trên, nó sẽ trả về kết quả đầu ra là:

Name chosen is :tommy

Puppy's age is :2

Variable Value :2

Quy tắc khai báo file nguồn (Source File Declaration Rules)

Phần cuối bài viết Zaidap.com sẽ cung cấp cho bạn các quy tắc khai báo file nguồn. Các quy tắc này cần thiết cho việc khai báo các lớp, lệnh import và package trong file nguồn.

- Mỗi file nguồn có thể chỉ có một lớp public.

- Một file nguồn có thể có nhiều lớp không phải public.

- Tên lớp public cũng có thể là tên file nguồn, tên kết thúc bằng .java. Ví dụ tên lớp public là Employee{} thì tên file nguồn sẽ là Employee.java.

- Nếu lớp được định nghĩa trong package, lệnh package phải là lệnh đầu tiên trong file nguồn.

-Nếu có mặt các lệnh import, các lệnh này phải được viết giữa lệnh package và khai báo lớp. Nếu không có lệnh package nào, thì lệnh import là dòng đầu tiên trong file nguồn.

- Các lệnh import và package sẽ bao hàm tất cả các lớp có mặt trong file nguồn. Nó không thể khai báo các lệnh import và/hoặc lệnh package tới các lớp khác nhau trong file nguồn.

Các lớp có nhiều mức độ truy cập khác nhau và có nhiều loại lớp khác nhau, bao gồm các lớp trừu tượng (abstract class), lớp final, ....

Ngoài các lớp ở trên, Java cũng có một số lớp đặc biệt khác được gọi là lớp Inner và lớp Anonymous.

Package trong Java

Nói một cách đơn giản, package là cách để phân loại các lớp và interface. Khi phát triển các ứng dụng trong Java, hàng trăm lớp và interface sẽ được viết, vì vậy việc phân loại các lớp này là cần thiết.

Lệnh Import trong Java

Trong Java, nếu một tên đủ điều kiện, bao gồm tên package và tên lớp, được cung cấp thì trình biên dịch có thể dễ dàng xác định vị trí của các lớp hoặc mã nguồn. Lệnh import là một cách cung cấp chính xác vị trí cho trình biên dịch tìm ra lớp cụ thể đó.

Ví dụ, lệnh dưới đây sẽ yêu cầu trình biên dịch tải tất cả các lớp có sẵn trong thư mục java_installation/java/io:

import java.io.*;

Ví dụ đơn giản

Ví dụ để tạo 2 lớp là Employee và EmployeeTest.

Đầu tiên mở Notepad trên máy tính của bạn và thêm đoạn mã dưới đây vào. Lưu ý lớp Employee là lớp public. Sau đó lưu file bằng tên Employee.java.

Lớp Employee có 4 biến thực thể bao gồm: tên, tuổi, chức danh và mức lương. Lớp này có một constructor được định nghĩa rõ ràng lấy một tham số.

Ví dụ:

lop va doi tuong trong java 7

Để chạy lớp Employee, bạn phải có một phương thức chính và phải tạo các đối tượng. Để làm được điều này bạn phải tạo một lớp riêng.

Dưới đây là lớp EmployeeTest, tạo ra 2 đối tượng của lớp Employee và gọi phương thức cho mỗi đối tượng để gán các giá trị cho mỗi biến.

Lưu đoạn mã dưới đây trong file EmployeeTest.java.

import java.io.*;

public class EmployeeTest {

public static void main(String args[]) {

/* Create two objects using constructor */

Employee empOne = new Employee("James Smith");

Employee empTwo = new Employee("Mary Anne");

// Invoking methods for each object created

empOne.empAge(26);

empOne.empDesignation("Senior Software Engineer");

empOne.empSalary(1000);

empOne.printEmployee();

empTwo.empAge(21);

empTwo.empDesignation("Software Engineer");

empTwo.empSalary(500);

empTwo.printEmployee();

}

}

lop va doi tuong trong java 8

Sau khi biên dịch cả 2 lớp và chạy EmployeeTest sẽ trả về kết quả đầu ra như dưới đây:

lop va doi tuong trong java 9

http://thuthuat.taimienphi.vn/lop-va-doi-tuong-trong-java-32507n.aspx
Như vậy bài viết trên Zaidap.com đã giới thiệu cho bạn các khái niệm lớp và đối tượng trong Java. Bạn đọc có thể tìm hiểu thêm hướng dẫn cơ bản về ngôn ngữ Java để nắm toàn bộ những kiến thức cần thiết về ngôn ngữ này. Chúc các bạn thành công !

0