Header Ads

Lập Trình Hướng Đối Tượng Trong Java Bài 2: Lớp Và Đối Tượng Trong Java

Gói

Khai báo gói (package)phải xuất hiện đầu tiên khi bạn định nghĩa một lớp:

package packageName;
Mọi đối tượng Java đều nằm trong một gói. Nếu bạn không nói rõ ràng nó thuộc gói nào, Java sẽ đặt nó vào trong gói mặc định. Một gói chỉ đơn giản là một tập các đối tượng, thông thường liên quan với nhau theo một cách nào đó. Các gói quy chiếu theo đường dẫn đến tệp tin trong hệ thống tệp của bạn.

Lệnh nhập khẩu (Import)

import  packageNameToImport;
Khi đối tượng của bạn sử dụng các đối tượng trong các gói khác, trình biên dịch của Java cần biết tìm chúng ở đâu. Một lệnh nhập khẩu (import) sẽ cho trình biên dịch biết nơi tìm những lớp bạn cần dùng.

Ví dụ, nếu bạn muốn dùng lớp ArrayList từ gói java.util, bạn cần nhập khẩu theo cách sau:

import java.util.ArrayList;
Bạn có thể viết bao nhiêu câu lệnh nhập khẩu cũng được. Nếu bạn nhập khẩu nhiều hơn một lớp từ cùng một gói, bạn có thể dùng cách viết tắt để cho biết bạn muốn nạp tất cả các lớp trong gói này.

Ví dụ, nếu bạn muốn dùng các lớp trong gói java.util, bạn sẽ nhập khẩu chúng như sau:

import java.util.*;

Khái niệm lớp

Chúng ta có thể xem lớp như một khuôn mẫu (template) của đối tượng (Object). Trong đó bao gồm dữ liệu của đối tượng (fields hay properties) và các phương thức (methods) tác động lên thành phần dữ liệu đó gọi là các phương thức của lớp.

Các đối tượng được xây dựng bởi các lớp nên được gọi là các thể hiện của lớp (class instance).

Ví dụ 1: Ta khai báo 1 lớp SinhVien gồm các thuộc tính:
- hoTen
- namSinh
- lopHoc.
Lớp này chính là 1 khuôn mẫu. Khi ta tạo ra các đối tượng dựa trên lớp này, các đối tượng đều tương tự như mẫu trên.

Ví dụ:
Tạo đối tượng a, khi đó a sẽ có 3 thuộc tính, và ta có thể thao tác gán giá trị các thuộc tính đó như sau:
- hoTen là "Nguyễn Văn A";
- namSinh là "1992";
- lopHoc là "At7a";
đối tượng b, c, ... cũng tương tự nhưng giá trị của chúng sẽ đặc trưng cho từng đối tượng riêng.

Khai báo lớp

class <ClassName> {
<kiểu dữ liệu> <field_1>;
<kiểu dữ liệu> <field_2>;
constructor
method_1
method_2
}
- class: là từ khóa của java
- ClassName: là tên chúng ta đặt cho lớp
- field_1, field_2: các thuộc tính, các biến, hay các thành phần dữ liệu của lớp.
- constructor: là sự xây dựng, khởi tạo đối tượng lớp.
- method_1, method_2: là các phương thức/hàm thể hiện các thao tác xử lý, tác động lên các thành phần dữ liệu của lớp.
Ví dụ 2:
class SinhVien {
public String hoTen;
public int namSinh;
public String lopHoc;
}

Tạo đối tượng của lớp

ClassName objectName = new ClassName();

Ví dụ 3: Tạo 2 đối tượng sinh viên a và sinh viên b dựa trên class đã định nghĩa ở ví dụ 2:

SinhVien a = new SinhVien();
SinhVien b = new SinhVien();

Thuộc tính của lớp 

Vùng dữ liệu (fields) hay thuộc tính (properties) của lớp được khai báo bên trong lớp như sau:

class <ClassName>{
// khai báo những thuộc tính của lớp
<tiền tố> <kiểu dữ liệu> field1;
// …
}
Để xác định quyền truy xuất của các đối tượng khác đối với vùng dữ liệu của lớp người ta thường dùng các tiền tố sau:
- public: có thể truy xuất từ tất cả các đối tượng khác
- private: một lớp không thể truy xuất vùng private của 1 lớp khác.
- protected: vùng protected của 1 lớp chỉ cho phép bản thân lớp đó và những lớp dẫn xuất từ lớp đó truy cập đến.
- không có định tố, (hoặc package protected (có bảo vệ theo gói)): Chỉ có các lớp trong cùng một gói với lớp chứa biến là có thể thấy biến mà thôi.

Ví Dụ 5: Tạo class sinh viên gồm các thuộc tính: hoTen, namSinh, lopHoc

package sinhvien;

class SinhVien {
 
    public String hoTen;
    public int namSinh;
    public String lopHoc;
}
 
public class thongtinsv {
 
    public static void main(String[] args) {
 
        SinhVien a = new SinhVien();
        a.hoTen = "Vũ Văn Tường";
        a.namSinh = 1992;
        a.lopHoc = "At7a";
 
        SinhVien b = new SinhVien();
        b.hoTen = "Nguyễn Văn Tùng";
        b.namSinh = 1990;
        b.lopHoc = "Bk1";
 
        System.out.println("Thông tin sinh vien a là: ");
        System.out.println("Họ tên: " + a.hoTen + " Năm sinh: " + a.namSinh + " Lớp Học: " + a.lopHoc);
 
        System.out.println("\nThông tin sinh vien b là: ");
        System.out.println("Họ tên: " + b.hoTen + " Năm sinh: " + b.namSinh + " Lớp Học: " + b.lopHoc);
    }
}

Không có nhận xét nào

Được tạo bởi Blogger.