การประกาศตัวแปรprivate static varName;แตกต่างจากการประกาศตัวแปรprivate varName;หรือไม่?
ใช่ทั้งสองแตกต่างกัน และเป็นครั้งแรกหนึ่งเรียกว่าclass variableเพราะมันเก็บค่าเดียวสำหรับการว่าclassในขณะที่คนอื่น ๆ จะเรียกว่าเพราะมันสามารถเก็บค่าที่แตกต่างกันสำหรับการที่แตกต่างกันinstance variable instances(Objects)อันแรกถูกสร้างเพียงครั้งเดียวใน jvm และอีกอันหนึ่งถูกสร้างขึ้นหนึ่งครั้งต่อหนึ่งอินสแตนซ์นั่นคือถ้าคุณมี 10 อินสแตนซ์คุณจะมี 10 private varName;ใน jvm ที่แตกต่างกัน
ไม่ประกาศตัวแปรstaticให้คุณสมบัติพิเศษอื่น ๆ ?
ใช่ตัวแปรแบบสแตติกได้รับคุณสมบัติที่แตกต่างจากตัวแปรอินสแตนซ์ทั่วไป ฉันได้กล่าวเพียงไม่กี่แล้วและขอให้เห็นบางส่วนที่นี่: class variables(เช่นตัวแปรซึ่งได้รับการประกาศให้เป็นคงที่) ClassName.varNameสามารถเข้าถึงได้โดยตรงโดยใช้ชื่อชั้นเช่น และวัตถุใด ๆ ของคลาสนั้นสามารถเข้าถึงและแก้ไขค่าของมันซึ่งแตกต่างจากตัวแปรอินสแตนซ์ที่เข้าถึงได้โดยวัตถุที่เกี่ยวข้องเท่านั้น ตัวแปรคลาสสามารถใช้ในวิธีการคงที่
อะไรคือการใช้ private static variableใน Java คืออะไร?
เหตุผลprivate static variableไม่แตกต่างจากpublic static variableคนแรกให้คุณควบคุมได้มากขึ้น IMO คุณสามารถแทนที่ได้อย่างแท้จริงpublic static variableด้วยโดยprivate static variableใช้public staticวิธี getter และ setter
หนึ่งในพื้นที่ที่ใช้กันอย่างแพร่หลายprivate static variableในการใช้Singletonรูปแบบง่าย ๆที่คุณจะมีเพียงตัวอย่างเดียวของชั้นเรียนนั้นในโลกทั้งใบ staticตัวระบุที่นี่มีบทบาทสำคัญในการทำให้อินสแตนซ์เดียวนั้นสามารถเข้าถึงได้โดยโลกภายนอก (แน่นอนว่าวิธีการทะเยอทะยานในที่สาธารณะยังมีบทบาทหลักด้วย)
public class Singleton {
private static Singleton singletonInstance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return Singleton.singletonInstance;
}
}