Sự khác biệt giữa class variablesvà instancecác biến, chỉ đơn giản là một câu hỏi về who knows what?.
An instance variablechỉ đượ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 variableMặ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 staticlà từ khóa để phân biệt giữa class variablesvà 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 statictín hiệu từ khóa, rằng nó là khác nhau.
firstName, lastNamelà 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 statictừ khóa.
Tài liệu thêm về Java có ở đây