ความแตกต่างระหว่างclass variablesและตัวแปรเป็นเพียงคำถามของinstancewho knows what?
An instance variableเป็นที่รู้จัก (= ผูก ) กับตัวอย่างที่เป็นรูปธรรมนั่นจึงเป็นชื่อ
public class Person {
private String firstName;
private String lastName;
[...]
}
คำจำกัดความของคลาสนั้นเหมือนกับพิมพ์เขียวสำหรับการสร้างวัตถุที่เป็นรูปธรรม บางทีจุดนี้อาจทำให้คุณสับสน แต่การเขียนด้วยวิธีนี้ทุกตัวแปรจะผูกพันกับวัตถุที่เป็นรูปธรรมเช่นทุกคนมีชื่อของตัวเอง
class variableในมืออื่น ๆ เป็น - เป็นชื่อกล่าวว่า - ที่รู้จักกันในแต่ละคนและสมาชิกของชั้นเรียนทุก; หรือในทางเทคนิค: มันเป็นที่รู้จักกัน / ผูกไว้ที่ระดับชั้น ตัวอย่างทั่วไปเป็นตัวนับจำนวนวัตถุที่คุณสร้างขึ้น - แม้ว่ามันจะเป็นตัวอย่างที่มีปัญหามาก แต่นั่นไม่สำคัญในช่วงแรกนี้
public class Person {
private String firstName;
private String lastName;
[...]
static int numberOfPersons = 0
}
numberOfPersonsมีการประกาศstaticซึ่งเป็นคำที่ต้องการ distingush ระหว่างและclass variables instance variabesตัวแปรถูกประกาศเช่นเดียวกับตัวอื่น ๆ ภายในการกำหนดคลาส แต่staticคำหลักส่งสัญญาณว่ามันแตกต่างกัน
firstName, lastNameมีตัวแปรเช่นและผูกไว้กับตัวอย่างที่เป็นรูปธรรมที่
numberOfPersons ถูกผูกไว้กับคลาสเพื่อให้ทุกอินสแตนซ์สามารถเข้าถึงตัวแปรนี้ได้
TL; DR
สถานที่ที่มีการกำหนดตัวแปรคือคำจำกัดความของคลาส
ตัวแปรระดับเป็นที่รู้จักกันที่ / ผูกพันกับระดับชั้นคือแต่ละตัวอย่างที่เป็นรูปธรรมสามารถเข้าถึงได้ staticการกำหนดตัวแปรชั้นเรียนคุณใช้คำหลัก
ตัวแปรอินสแตนซ์เป็นที่รู้จักในระดับอินสแตนซ์เท่านั้น คุณกำหนดโดยไม่มีstaticคำหลัก
เอกสารเพิ่มเติมสำหรับ Java อยู่ที่นี่