Bài 3. Class Trong Java | Tự học Java Căn Bản

Published on
Thuộc danh mục: Học Java Căn Bản|Đăng bởi: Lê Thanh Giang||11 min read
Facebook share iconLinkedIn share iconTwitter share iconPinterest share iconTumblr share icon
Bài 3. Class Trong Java | Tự Học Java Căn Bản

Class trong Java là gì?

Class (lớp) trong Java là một mẫu thiết kế (blueprint) hoặc khuôn mẫu để tạo ra các đối tượng (objects). Nó định nghĩa các thuộc tính (biến)hành vi (phương thức) mà các đối tượng thuộc lớp đó sẽ có. Trong lập trình hướng đối tượng (OOP), class là thành phần cốt lõi giúp tổ chức và quản lý mã nguồn.

Cấu Trúc Cơ Bản Của Class

Một class trong Java có cấu trúc cơ bản như sau:

class ClassName {
    // Các thuộc tính của class
    dataType fieldName;

    // Các phương thức của class
    returnType methodName() {
        // Thực thi phương thức
    }
}
  • ClassName: Tên của class (theo quy tắc CamelCase).
  • Field: Các thuộc tính hoặc biến của class.
  • Method: Các phương thức của class (hoặc hành vi của đối tượng).

Ví Dụ Đơn Giản Về Class

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

class Person {
    // Các thuộc tính của class
    String name;
    int age;

    // Phương thức của class
    void introduce() {
        System.out.println("Hi, my name is " + name + " and I am " + age + " years old.");
    }
}

Trong ví dụ trên:

  • Person là tên class.
  • nameage là các thuộc tính của class.
  • introduce() là một phương thức in ra thông tin giới thiệu về đối tượng.

Khởi Tạo Đối Tượng (Object) Từ Class

Một khi bạn đã định nghĩa một class, bạn có thể tạo ra các đối tượng từ class đó. Đây là quá trình khởi tạo đối tượng. Để khởi tạo một đối tượng, bạn sử dụng từ khóa new.

Ví dụ:

public class Main {
    public static void main(String[] args) {
        // Khởi tạo đối tượng của class Person
        Person person1 = new Person();
        person1.name = "Alice";
        person1.age = 25;

        // Gọi phương thức của đối tượng person1
        person1.introduce();
    }
}

Kết quả sẽ là:

Hi, my name is Alice and I am 25 years old.

Các Thành Phần Của Class

Thuộc Tính (Fields)

Thuộc tính của một class là các biến đại diện cho dữ liệu của đối tượng. Ví dụ trong class Person, nameage là các thuộc tính.

Phương Thức (Methods)

Phương thức trong class là các hành động mà đối tượng có thể thực hiện. Một phương thức có thể thay đổi giá trị của các thuộc tính, thực thi các phép toán, hoặc in kết quả ra màn hình.

Constructor

Constructor là một phương thức đặc biệt trong lớp (class) được sử dụng để khởi tạo các đối tượng của lớp. Constructor có những đặc điểm chính sau:

  1. Cùng tên với class: Constructor luôn có tên giống hệt với tên của class mà nó thuộc về. Điều này giúp JVM nhận diện và gọi constructor khi khởi tạo đối tượng.

  2. Không có kiểu trả về: Điều này có nghĩa là constructor không trả về bất kỳ giá trị nào, kể cả void. Mặc dù phương thức trong Java thường phải có kiểu trả về, constructor lại không cần như vậy.

  3. Khởi tạo đối tượng: Constructor thường được dùng để khởi tạo các giá trị ban đầu cho đối tượng của lớp. Khi một đối tượng được tạo ra, constructor sẽ tự động được gọi để thiết lập trạng thái ban đầu của đối tượng.

  4. Có thể có nhiều constructor: Lớp có thể có nhiều constructor với các tham số khác nhau. Điều này gọi là constructor overloading (nạp chồng constructor). Các constructor này có thể khởi tạo đối tượng với các giá trị khác nhau tùy vào yêu cầu của chương trình.

Ví dụ:

class Person {
    String name;
    int age;

    // Constructor
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    void introduce() {
        System.out.println("Hi, my name is " + name + " and I am " + age + " years old.");
    }
}

Trong ví dụ này, Person(String name, int age) là một constructor, giúp khởi tạo đối tượng Person với các giá trị nameage.

Khi tạo đối tượng Person, bạn có thể gọi constructor như sau:

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person("Alice", 25);
        person1.introduce();
    }
}

Kết quả:

Hi, my name is Alice and I am 25 years old.

Phương Thức Getter và Setter

Phương thức gettersetter là các phương thức dùng để truy xuất và thay đổi giá trị của các thuộc tính trong class.

Ví dụ:

class Person {
    private String name;
    private int age;

    // Getter và Setter cho name
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // Getter và Setter cho age
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

Với gettersetter, bạn có thể kiểm soát việc truy cập và thay đổi các thuộc tính của class từ bên ngoài.

public class Main {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.setName("Alice");
        person1.setAge(25);

        System.out.println(person1.getName());
        System.out.println(person1.getAge());
    }
}

Kết quả:

Alice
25

Giải Thích về Hàm main Trong Java Class

Hàm main trong Java là điểm bắt đầu của chương trình. Mỗi khi bạn chạy một chương trình Java, Java Virtual Machine (JVM) sẽ tìm và thực thi hàm main từ lớp mà bạn chỉ định. Cấu trúc cơ bản của hàm main là:

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

Trong ví dụ trên, hàm main nhận một tham số là String[] args, đây là một mảng chuỗi dùng để nhận các đối số từ dòng lệnh khi chương trình được thực thi. Tham số này cho phép bạn truyền dữ liệu vào chương trình khi chạy từ terminal hoặc command line.

Một điểm quan trọng là hàm main phải được khai báo là static. Điều này là vì hàm main được gọi mà không cần phải tạo đối tượng của lớp. Khi một chương trình Java được chạy, JVM sẽ không tạo đối tượng của lớp mà chỉ đơn giản là gọi hàm main. Nếu không khai báo là static, bạn sẽ cần phải tạo đối tượng của lớp trước khi có thể gọi hàm main, điều này làm phức tạp quá trình khởi chạy và không phù hợp với vai trò "điểm bắt đầu" của chương trình.

Trong các chương trình phức tạp, hàm main thường không chứa quá nhiều logic mà chỉ thực hiện các bước khởi tạo cần thiết. Ví dụ, trong một ứng dụng lớn, hàm main có thể được dùng để:

  • Tạo các đối tượng cần thiết (như các lớp xử lý chính của chương trình).
  • Thiết lập các tài nguyên cần thiết (như kết nối cơ sở dữ liệu).
  • Chuyển quyền điều khiển cho các lớp hoặc đối tượng khác để tiếp tục thực hiện các tác vụ cụ thể.

Ví dụ dưới đây cho thấy một hàm main trong chương trình phức tạp hơn, nơi nó chỉ khởi động ứng dụng và chuyển quyền điều khiển cho một lớp khác:

public class Application {
    public static void main(String[] args) {
        System.out.println("Khởi động chương trình");
        MyApp app = new MyApp();
        app.run();
    }
}

Ở đây, hàm main chỉ khởi động chương trình và tạo đối tượng MyApp, sau đó gọi phương thức run của lớp MyApp để tiếp tục xử lý các công việc cụ thể của ứng dụng.

Một chương trình Java có thể có nhiều lớp, nhưng chỉ cần một hàm main để chạy. Nếu không có hàm main, JVM sẽ báo lỗi.

Các Loại Class Trong Java

Java hỗ trợ nhiều loại class khác nhau, bao gồm:

  1. Class thông thường (Normal Class): Đây là loại class phổ biến nhất mà bạn đã thấy trong các ví dụ trước.
  2. Class trừu tượng (Abstract Class): Là class không thể khởi tạo trực tiếp mà phải được kế thừa. Class này có thể chứa các phương thức trừu tượng mà các lớp con cần phải cài đặt.
  3. Class giao diện (Interface): Giao diện trong Java giống như một contract mà các lớp phải tuân theo. Các phương thức trong giao diện không có thân (body), và các lớp phải cung cấp phần thân cho các phương thức đó.

Thao Tác Với Eclipse

Cách Tạo Class Java Trong Dự Án với Eclipse IDE

  1. Tạo Dự Án Java Mới:

    • Mở Eclipse.
    • Chọn File > New > Java Project.
    • Trong cửa sổ hiện lên, nhập tên dự án (ví dụ: MyFirstJavaProject), sau đó nhấn Finish.
  2. Tạo Class Mới trong Dự Án:

    • Sau khi tạo dự án, trong Project Explorer ở phía bên trái, tìm đến dự án bạn vừa tạo.
    • Click chuột phải vào thư mục src (nếu chưa có thư mục này, bạn cần tạo một thư mục src).
    • Chọn New > Class.
    • Cửa sổ New Java Class sẽ hiện lên.
Tạo Class trong dự án Java với Eclipse IDE
  1. Điền Thông Tin Class:
    • Trong cửa sổ New Java Class, bạn cần nhập:
      • Tên Class: Ví dụ: HelloWorld.
      • Chọn public static void main(String[] args) nếu bạn muốn tự động tạo hàm main (dành cho các chương trình Java đơn giản).
      • Chọn Package (tuỳ chọn) nếu bạn muốn Class này nằm trong một package cụ thể (ví dụ: com.myapp).
  2. Hoàn Tất Tạo Class:
    • Sau khi điền thông tin, nhấn Finish. Class mới sẽ được tạo trong thư mục src của dự án và mở ngay trong cửa sổ làm việc của Eclipse.

Tạo nhanh hàm main trong một Class

Khi bạn tạo một lớp mới trong Eclipse, bạn có thể muốn nhanh chóng thêm một hàm main để bắt đầu chương trình. Thay vì gõ toàn bộ cú pháp của hàm main, bạn có thể sử dụng một cách nhanh chóng như sau:

  1. Trong class của bạn, gõ từ khóa main.
  2. Sau đó, nhấn tổ hợp phím Ctrl + Space, Eclipse sẽ hiển thị các gợi ý.
  3. Chọn gợi ý đầu tiên hoặc nhấn Enter để tự động hoàn thiện hàm main.

Ví dụ: Khi bạn gõ từ khóa main và nhấn Ctrl + Space + Enter, Eclipse sẽ tạo ra đoạn mã sau:

public static void main(String[] args) {
    // TODO Auto-generated method stub
}

Chạy Chương Trình Trong Eclipse

Để chạy chương trình trong Eclipse, bạn có thể làm theo 1 trong 3 cách sau:

  • Cách 1: Chạy chương trình từ cửa sổ code: Mở file Java mà bạn muốn chạy. Sau đó click chuột phải vào bất kỳ đâu trong cửa sổ của chương trình và chọn Run As > Java Application.

  • Cách 2: Chạy chương trình từ thanh công cụ: Sau khi mở chương trình, bạn có thể click vào nút Run (màu xanh lá cây với biểu tượng hình tam giác) ở góc trên bên phải của cửa sổ Eclipse để chạy chương trình.

  • Cách 3: Chạy chương trình từ thanh menu: Bạn có thể chọn Run > Run từ thanh menu trên cùng.

Kết Luận

Class trong Java là một công cụ mạnh mẽ và quan trọng để tổ chức mã nguồn, giúp bạn dễ dàng tạo ra các đối tượng và tương tác với chúng. Hiểu rõ về class và các thành phần của nó là bước đầu tiên để bạn có thể xây dựng các chương trình Java hiệu quả và dễ bảo trì.

Khi bạn tiếp tục học lập trình Java, việc làm quen với các khái niệm như kế thừa, đa hình và trừu tượng hóa sẽ giúp bạn sử dụng class một cách thành thạo và phát triển các ứng dụng phức tạp hơn.

Bài tiếp theo: Bài 4. Cách khai báo biến trong Java

Bài viết mới nhất

Bài viết liên quan

Newsletter border

Đăng ký để nhận tin từ RiverLee