- - วิธีใช้ 'คงที่' ใน Java

วิธีใช้ 'คงที่' ใน Java

โดยปกติสมาชิกคลาสจะต้องเข้าถึงได้ร่วมกับวัตถุของคลาส จะมีบางครั้งที่คุณต้องการกำหนดสมาชิกคลาสที่สามารถเข้าถึงได้โดยไม่ต้องสร้างอินสแตนซ์ของคลาสนั้น สิ่งนี้สามารถทำได้โดย 'คงที่' หากต้องการสร้างสมาชิกดังกล่าวให้นำหน้าการประกาศด้วยคำหลัก "คงที่"

ข้อดีของการคงที่

เมื่อสมาชิกได้รับการประกาศคงที่มันสามารถเข้าถึงได้ก่อนที่วัตถุใด ๆ ของระดับของมันจะถูกสร้างขึ้นหรือไม่มีการอ้างอิงไปยังวัตถุใด ๆ

ทำไมเราถึงประกาศ main () เป็น static?

main () เป็นจุดเริ่มต้นของคลาส ในจาวาทุกสิ่งที่เขียนในชั้นเรียน ตอนนี้เมื่อคุณเรียกใช้ชื่อไฟล์ java บนพรอมต์คำสั่งโหลดเดอร์จะโหลดคลาสและ JVM จะค้นหาวิธีการหลักเพื่อเข้าสู่คลาส ดังนั้นการสร้าง main () เป็น static จะทำให้ JVM เข้าถึงได้โดยตรงผ่าน classname.main ()

นั่นคือสาเหตุที่ชื่อโปรแกรมจะต้องตรงกับชื่อคลาสที่เราเขียนฟังก์ชั่นหลัก

จุดสำคัญที่ต้องจำ

  1. ตัวแปรอินสแตนซ์ที่ประกาศเป็นแบบสแตติกเป็นตัวแปรระดับโลก เมื่อคุณสร้างออบเจ็กต์ของคลาสนั้นจะไม่มีการคัดลอกตัวแปรสแตติก แม้แต่วัตถุทั้งหมดก็ยังคงมีตัวแปรสแตติกเดียวกัน
  2. ตัวแปรคงที่หรือฟังก์ชั่นสมาชิกจะโหลดระหว่างชั้นเรียน นั่นหมายถึงก่อนที่จะสร้างอินสแตนซ์ (วัตถุ) ใด ๆ ฟังก์ชั่นหลักคือฟังก์ชั่นที่ทำงานได้ครั้งแรกของโปรแกรมใด ๆ ที่เราเรียกใช้ด้วยตนเอง
  3. หากคุณต้องการได้รับบางสิ่งที่ถูกเรียกใช้ / การกำหนดค่าเริ่มต้นของตัวแปรสแตติกก่อนที่จะโหลดคลาสจริงให้ใส่ทั้งหมดในบล็อกแบบสแตติก

เช่น.

คงที่{

System.out.println (“ บล็อกเริ่มต้นคงที่…”);

}

มันจะถูกดำเนินการก่อนเมธอด main () ระหว่างการโหลดคลาส

ข้อ จำกัด ขณะใช้งานสแตติก

  1. วิธีการคงที่สามารถเข้าถึงตัวแปรคงที่เท่านั้น
  2. วิธีการแบบคงที่สามารถเรียกใช้วิธีการแบบคงที่เท่านั้น
  3. วิธีการคงที่ไม่สามารถอ้างถึงสิ่งนี้และวิธีการสุดยอดได้

โปรแกรม

class Addition{
static int num1;
static int num2;
int a;
int b;
Addition(){
num1 = -1;
num2 = -1;
a = -1;
b = -1;
}
Addition(int num1,int num2,int a,int b){
this.num1 = num1;
this.num2 = num2;
this.a = a;
this.b = b;
}
static void sum(){
//System.out.println("Sum of 4 numbers is: "+(num1+num2+a+b)); /*static method can’t access static vars */
System.out.println("Sum of 'num1' and 'num2' is: "+(num1+num2));
System.out.println();
}
void add(){
System.out.println("Addition of 4 numbers is: "+(num1+num2+a+b));
System.out.println();
}
}
class AditionDemo1{
public static void main(String args[]){
System.out.println();
System.out.println("Static method sum() called without creating any object");
System.out.println("------------------------------------------------------");
Addition.sum();
Addition ad1 = new Addition();
System.out.println("Static Method sum() is invoked second time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Non-Static Method add() is invoked using Object ad1");
System.out.println("-----------------------------------------------");
ad1.add();
Addition ad2 = new Addition(10,20,30,40);
System.out.println("Static Method sum() is invoked second time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Non-Static Method add() is invoked using Object ad2");
System.out.println("-----------------------------------------------");
ad2.add();
System.out.println("Static Method sum() is invoked third time");
System.out.println("-----------------------------------------------");
Addition.sum();
System.out.println("Static Method sum() is invoked using Object");
System.out.println("-------------------------------------------");
ad1.sum();
ad2.sum();
}
}

เอาท์พุต

คงที่ใน java

คำอธิบายของรหัส Java & ผลผลิต

หากคุณเห็นรหัสอย่างระมัดระวังแล้วคุณจะพบเราได้รับสองตัวแปรคงที่และสองตัวแปรไม่คงที่ซึ่งเริ่มต้นได้โดยสอง constructors ได้แก่ อันหนึ่งถูกกำหนดพารามิเตอร์และอีกอันหนึ่งเป็นค่าเริ่มต้น เราได้กำหนดวิธีคงที่หนึ่งวิธีและวิธีไม่คงที่หนึ่งวิธี

ใน main () อันดับแรกเราได้เรียกใช้ผลรวมของ static method () โดยไม่ต้องสร้างวัตถุใด ๆ ของ Addition Class

ในรหัสคุณจะเห็นว่าวิธีการคงที่ไม่สามารถเข้าถึงตัวแปรที่ไม่คงที่ได้ หากคุณพยายามเข้าถึงคุณจะได้รับข้อผิดพลาดต่อไปนี้ตามที่เราได้รับ:

คงที่ใน java

ตอนนี้ถ้าคุณเห็นตัวแปรสแตติกเป็นตัวแปรโกลบอลเท่านั้น โดยไม่คำนึงถึงวัตถุที่ให้ผลลัพธ์แบบเดียวกันทุกครั้งที่มีการเรียกใช้ผลรวมของวิธีการคงที่ () โดยวัตถุใด ๆ

วิธีการไม่คงที่สามารถเข้าถึงตัวแปรคงที่

วิธีการไม่คงที่สามารถเรียกใช้วิธีการคงที่

เมธอดสแตติกสามารถเรียกใช้ด้วย <classname>. <ชื่อเมธอดแบบสแตติก> และด้วย <objectname>. <ชื่อเมธอดแบบสแตติก> เช่นกัน

สำหรับตัวแปรที่ไม่คงที่แต่ละวัตถุจะมีสำเนาของตัวแปรที่ไม่คงที่ที่มีค่าแตกต่างกันสำหรับวัตถุที่แตกต่างกัน

ต่อไปเราจะเรียนรู้เกี่ยวกับ วิธีใช้คีย์เวิร์ด“ this” ใน Java.

ชำระเงินบทเรียนที่มีประโยชน์มากขึ้นและแนวทางที่ชัดเจนในการเขียนโปรแกรม Java ที่นี่

ความคิดเห็น