คำถามติดแท็ก non-static

12
ตัวแปรแบบไม่คงที่ไม่สามารถอ้างอิงได้จากบริบทแบบคงที่
ฉันเขียนโค้ดทดสอบนี้: class MyProgram { int count = 0; public static void main(String[] args) { System.out.println(count); } } แต่มันให้ข้อผิดพลาดต่อไปนี้: Main.java:6: error: non-static variable count cannot be referenced from a static context System.out.println(count); ^ ฉันจะทำให้วิธีการของฉันจดจำตัวแปรคลาสได้อย่างไร

10
ความแตกต่างระหว่าง Static method และ Instance method
ฉันแค่อ่านข้อความที่ให้ไว้ในหนังสือเรียนและฉันไม่แน่ใจจริงๆว่าฉันเข้าใจสิ่งที่มันพูด โดยพื้นฐานแล้วจะบอกฉันว่าเมธอดแบบคงที่หรือคลาสเมธอดนั้นมีคีย์เวิร์ด "ตัวแก้ไข" แบบคงที่ แต่ฉันไม่รู้จริงๆว่ามันหมายถึงอะไร? ใครช่วยอธิบายให้ฉันเข้าใจง่ายๆว่า Static หรือ Class Methods คืออะไร นอกจากนี้ฉันขอคำอธิบายง่ายๆเกี่ยวกับวิธีการของอินสแตนซ์ได้หรือไม่ นี่คือสิ่งที่พวกเขาให้ฉันในตำราเรียน: มีผลกระทบในทางปฏิบัติที่สำคัญของการมีหรือไม่มีของตัวปรับแต่งคงที่ เมธอดคลาสสาธารณะอาจถูกเรียกใช้และเรียกใช้งานได้ทันทีที่ Java ประมวลผลนิยามของคลาสที่เป็นอยู่ นั่นไม่ใช่กรณีสำหรับวิธีการอินสแตนซ์ ก่อนที่วิธีการอินสแตนซ์สาธารณะอาจถูกเรียกใช้และดำเนินการอินสแตนซ์จะต้องถูกสร้างขึ้นจากคลาสที่เป็นสมาชิก ในการใช้เมธอดคลาสสาธารณะคุณต้องมีคลาส ในทางกลับกันก่อนที่คุณจะสามารถใช้วิธีการอินสแตนซ์สาธารณะคุณต้องมีอินสแตนซ์ของคลาส ลักษณะที่เรียกใช้เมธอดแบบคงที่ภายในนิยามของวิธีการอื่นจะแตกต่างกันไปขึ้นอยู่กับว่าทั้งสองวิธีเป็นของคลาสเดียวกัน ในตัวอย่างข้างต้นแฟกทอเรียลและเมนเป็นทั้งเมธอดของคลาส MainClass เป็นผลให้การเรียกใช้แฟกทอเรียลในคำจำกัดความของ main เพียงแค่อ้างอิงชื่อเมธอด "แฟกทอเรียล"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.