Bài 12: Class (lớp) và đối tượng trong Java!

Xem trong 'Làng Tin Tức' đăng bởi Trangcct, 29/3/15, [ Mã Tin: 18160 ] [195 lượt xem - 0 bình luận]

  1. SĐT :
    01xxxxxxxx
    Địa Chỉ :
    Thăng Long- Kinh Môn -Hải Dương
    Gửi tin nhắn
    Để có kiến thức tổng quan và một vài khái niệm mới trong lập trình hướng đối tượng

    Trước tiên, bạn hãy đọc thật kỹ bài này Lập trình hướng đối tượng với công nghệ Java

    Ở bài này, mình sẽ chỉ viết về class trong Java và chúng ta bắt đầu thực hành, làm bài tập nhỏ để làm quen với class.


    1. Khái niệm class (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).

    Lớp trong java gần giống như bản ghi trong lập trình C hoặc pascal, nhưng tất nhiên nó cao cấp hơn.

    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.

    Vd :

    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. Có lẽ, các bạn sẽ thấy nó có vẻ giống với các bản ghi nếu như bạn đã được học lập trình C hoặc Pascal.


    2. Khai báo/định nghĩa lớp:



    PHP:

    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.


    Ở bài này, tạm thời chúng ta sẽ chưa quan tâm tới constructor và method nhé, những bài sau mình sẽ viết rõ về những khái niệm đó.


    Các bạn hãy xem vd2 code về lớp để định nghĩa những gì đã viết trong ví dụ 1

    Ví dụ 2: (Ở đây, tạm thời chưa cần hiểu public là gì nhé, xuống phần dưới sẽ nói kỹ hơn)

    PHP:

    class SinhVien {
    public String hoTen;
    public int namSinh;
    public String lopHoc;
    }

    3. 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:

    PHP:

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

    4. 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:



    PHP:

    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 3 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.

    Ví dụ 4:

    PHP:

    class SinhVien{
    public String hoTen;
    private int namSinh;
    protected String lopHoc;
    public static String tenTruong = "HV KT Mật Mã";
    }

    - Thuộc tính "hoTen" có thể được truy cập đến từ tất cả các đối tượng khác. (public)

    - Thuộc tính "namSinh" chỉ có thể truy cập được từ các đối tượng có kiểu "SinhVien"(private)

    - Thuộc tính "lopHoc", so có thể truy cập được từ các đối tượng có kiểu "SinhVien" và các đối tượng của các lớp con dẫn xuất từ lớp "SinhVien" (protected)

    - "tenTruong" là biến tĩnh có giá trị là "HV KT Mật Mã"trong tất cả các thể hiện tạo ra từ lớp "SinhVien" (public static)


    Lưu ý: Thông thường để an toàn cho vùng dữ liệu của các đối tượng người ta tránh dùng tiền tố public, mà thường chọn tiền tố private để ngăn cản quyền truy cập đến vùng dữ liệu của một lớp từ các phương thức bên ngoài lớp đó.


    Vậy class được định nghĩa, được viết ở vị trí nào trong 1 bài lập trình Java hướng đối tượng. Việc tạo đối tượng, truy cập dữ liệu của các đối tượng được tạo tạo những class đó ra sao! Ở bài sau mình sẽ viết rõ và kỹ hơn để các bạn có cái nhìn cụ thể!


    Kết thúc bài này, mình sẽ viết 1 ví dụ đơn giản:


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

    Tạo 2 đối tượng là sinh viên a và sinh viên b. Gán giá trị cho các thuộc tính và in giá trị các thuộc tính từng sinh viên ra màn hình!

    PHP:

    package javademoandroidvn;//Vd5class SinhVien {

    public String hoTen;
    public int namSinh;
    public String lopHoc;
    }

    public class JavaDemoAndroidVn {

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

    hoc lap trinh java, hoc lap trinh android
     

    hoabt thích bài này.