ความแตกต่างระหว่างclass variables
และตัวแปรเป็นเพียงคำถามของinstance
who 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 อยู่ที่นี่