Tôi đã gặp phải vấn đề này nhiều lần và tôi không bao giờ bận tâm tìm hiểu lý do tại sao nó xảy ra và tìm hiểu những gì "tĩnh" thực sự có nghĩa là. Tôi vừa áp dụng thay đổi mà Eclipse đã đề xuất và tiếp tục.Chính xác "tĩnh" có nghĩa là gì khi khai báo các biến "toàn cục" trong Java?
public class Member {
// Global Variables
int iNumVertices;
int iNumEdges;
public static void main(String[] args) {
// do stuff
iNumVertices = 0; // Cannot make a static reference to the non-static field iNumVertices
// do more stuff
} // main end
}
Vì vậy, nhật thực cho tôi biết làm static int iNumVertices;
và tôi không chắc chắn lý do. Vì vậy, những gì chính xác là "tĩnh", làm thế nào là nó được sử dụng, mục đích của việc sử dụng "tĩnh" là gì, và tại sao nó cho tôi vấn đề này?
Đó không phải là biến toàn cục. Họ thậm chí không công khai. Ngay cả khi chúng được công khai, chúng sẽ không phải là các biến toàn cục. Ngay cả khi chúng được công khai và tĩnh họ sẽ không phải là biến toàn cầu. Java không có khái niệm toàn cầu. ** Mọi thứ ** được khai báo cục bộ hoặc trong một lớp hoặc giao diện. –
@Mark ... Tôi xin lỗi? Tôi đã không nhận thức được những sự kiện này. Cảm ơn bạn đã làm rõ. Vậy làm thế nào bạn sẽ phân loại chúng? – Hristo
@Hristo: Tôi nghĩ rằng "biến thành viên" là cụm từ chính xác. – torak