Java 8 – Thao tác trên lớp


Được đăng vào ngày 26/04/2017 | 0 bình luận
Java 8 – Thao tác trên lớp
5 (100%) 1 vote

Phần này sẽ tìm hiểu thêm một số đặc điểm của lớp.

Trả về giá trị trong phương thức

Một phương thức quay trở lại nơi đã gọi nó khi:

  • Hoàn thành mọi câu lệnh, hoặc
  • Có câu lệnh return, hoặc
  • Giải phóng lỗi ngoại lệ (sẽ đề cập sau)

Khi chúng ta khai báo kiểu dữ liệu trả về trong phần khai báo phương thức thì chúng ta phải có câu lệnh return để “trả về” một giá trị nào đó dạng như thế này:

return value;

Nếu kiểu dữ liệu là void thì không cần, hoặc có thể ghi return không cũng được.

Kiểu dữ liệu của giá trị được trả về phải trùng với kiểu dữ liệu đã khai báo ở tên phương thức.

Ví dụ:

public class Rectangle {
    private int width = 1280;
    private int height = 720;
    public int area() {
        return width * height;
    }
}

Trong đoạn code trên thì phương thức area() có kiểu dữ liệu trả về là int, do đó trong câu lệnh return chúng ta phải ghi một biểu thức hoặc một biến nào đó có kiểu dữ liệu là int, ở đây là width * height.

Từ khóa this

Trong phần định nghĩa các phương thức của một lớp, chúng ta có thể sử dụng từ khóa this để tham chiếu đến đối tượng hiện tại – tức là đối tượng sẽ được gọi các phương thức của nó, để đọc/ghi tới tất cả các thuộc tính và phương thức của đối tượng đó.

Thông thường công dụng của từ khóa this là để phân biệt thuộc tính của lớp và tham số trong các phương thức. Ví dụ:

public class Point {
    public int x = 0;
    public int y = 0;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

Trong phương thức khởi tạo trên thì tên các biến tham số cũng trùng với tên các thuộc tính, do đó để phân biệt rõ biến nào là tham số, biến nào là phương thức thì chúng ta dùng từ khóa this.

Từ khóa phạm vi

Có tất cả 4 loại phạm vi, chúng ta đã biết 2 loại là publicprivate, các từ khóa này quy định việc các lớp khác có được truy xuất vào các biến và phương thức của lớp này hay không.

Bảng dưới đây mô tả các loại phạm vi của lớp:

TÊN

CÙNG LỚP

CÙNG PACKAGE

LỚP CON

MỌI NƠI KHÁC

public
protected Không
không có từ khóa Không Không
private Không Không Không

Theo như bảng trên thì các biến và phương thức của một lớp lúc nào cũng có thể được truy xuất trong chính lớp đó, các biến và phương thức có phạm vi là private thì chỉ có thể truy xuất được ở bên trong lớp đó, ở các nơi khác thì không.

Biến class

Biến class có tên khác là biến static, biến tĩnh…v.v là biến được dùng chung trong toàn bộ đối tượng, tức là khi một đối tượng thuộc một lớp thay đổi giá trị của biến này thì giá trị đó cũng sẽ được thay đổi trong các đối tượng cùng lớp khác.

Để khai báo biến static thì chúng ta chỉ cần thêm từ khóa static vào trước kiểu dữ liệu:

class Point {
    private static int width = 1280;
    private static int height = 720;
    
    public int getWidth() {
        return this.width;
    }

    public int getHeight() {
        return this.height;
    }

    public void changeWidth(int width) {
        this.width = width;
    }

    public void changeHeight(int height) {
        this.height = height;
    }
}
class StaticVar {
    public static void main(String[] args) {
        Point p1 = new Point();
        System.out.println(p1.getWidth());
        p1.changeWidth(1600);
        Point p2 = new Point();
        System.out.println(p2.getWidth());
    }
}
1280
1600

Và tương tự với thuộc tính, chúng ta cũng có thể có phương thức static, tuy nhiên phương thức static phải được gọi bằng tên lớp chứ không được gọi bằng tên đối tượng. Thông thường phương thức static được dùng để đọc/ghi các thuộc tính static là chính.

Ngoài ra trong Java còn có từ khóa final, biến nào có từ khóa final sẽ không thể chỉnh sửa được nữa, do đó từ khóa final thường được dùng để định nghĩa hằng số kết hợp với từ khóa static.

static final double PI = 3.141592653589793;
Được đăng vào ngày 26/04/2017