Sự khác biệt giữa class variables
và instance
các biến, chỉ đơn giản là một câu hỏi về who knows what?
.
An instance variable
chỉ được biết (= ràng buộc ) với trường hợp cụ thể đó - do đó tên.
public class Person {
private String firstName;
private String lastName;
[...]
}
Định nghĩa của một lớp giống như một bản thiết kế để xây dựng các đối tượng cụ thể. Có lẽ điểm này làm bạn bối rối một chút. Nhưng viết theo cách này, mọi biến sẽ bị ràng buộc với đối tượng cụ thể của nó: ví dụ: Mỗi người có FirstName riêng của mình
class variable
Mặt khác, A - như tên gọi - được biết đến với mỗi và mọi thành viên của một lớp; hoặc về mặt kỹ thuật: Nó được biết / ràng buộc ở cấp độ lớp . Ví dụ điển hình là một bộ đếm có bao nhiêu đối tượng, bạn đã tạo - mặc dù đó là một ví dụ rất có vấn đề; nhưng điều đó không quan trọng ở giai đoạn đầu này.
public class Person {
private String firstName;
private String lastName;
[...]
static int numberOfPersons = 0
}
numberOfPersons
được khai báo static
là từ khóa để phân biệt giữa class variables
và instance variabes
. Biến được khai báo giống như các biến khác trong định nghĩa lớp. Nhưng các static
tín hiệu từ khóa, rằng nó là khác nhau.
firstName
, lastName
là các biến thể hiện và ràng buộc với thể hiện cụ thể đó
numberOfPersons
được ràng buộc với lớp, để mọi trường hợp có thể truy cập vào biến này.
tl; dr
Nơi mà các biến được định nghĩa là định nghĩa lớp.
Các biến lớp được biết ở / ràng buộc với cấp độ lớp, tức là mỗi thể hiện cụ thể có quyền truy cập vào nó. Để xác định một biến lớp, bạn sử dụng từ khóa static
.
Biến sơ thẩm chỉ được biết ở cấp độ cá thể. Bạn xác định chúng mà không cần static
từ khóa.
Tài liệu thêm về Java có ở đây