ตัวแปร Static (Class Variable)
ตัวแปรที่ประกาศด้วยคีย์เวิร์ด static เรียกว่าตัวแปรคลาส (class variable) ถูกกำหนดภายในคอนสตรัคเตอร์หรือนอกฟังก์ชันของคลาส เมื่อตัวแปรเป็น static จะถูกแบ่งปันระหว่างอ็อบเจ็กต์ทุกตัวของคลาสนั้น ไม่ว่าจะสร้างอ็อบเจ็กต์กี่ตัวก็ตาม
ตัวอย่างการทำงานของคีย์เวิร์ด static กับตัวแปร
public class Demo {
String name;
static String designation;
public void display_data() {
System.out.println("The name is: " + name);
System.out.println("The designation of this team members is : " + designation);
}
public static void main(String s[]) {
Demo.designation = "Intern";
Demo my_obj = new Demo();
my_obj.name = "Joe";
Demo my_obj_2 = new Demo();
my_obj_2.name = "Joanna";
my_obj.display_data();
my_obj_2.display_data();
my_obj.designation = "Senior dev";
System.out.println("\nAfter the changes, the data is :\n");
my_obj.display_data();
my_obj_2.display_data();
}
}
ผลลัพธ์
The name is: Joe The designation of this team members is : Intern The name is: Joanna The designation of this team members is : Intern After the changes, the data is : The name is: Joe The designation of this team members is : Senior dev The name is: Joanna The designation of this team members is : Senior dev
คลาส Demo มีตัวแปรและฟังก์ชัน display_data สำหรับแสดงค่าตัวแปรคลาส ในฟังก์ชัน main สร้างอินสแตนซ์ของคลาสและกำหนดค่า name และ designation ให้กับตัวแปรของอ็อบเจ็กต์ แสดงผล จากนั้นสร้างอ็อบเจ็กต์อีกตัวหนึ่งและทำซ้ำ การเปลี่ยนแปลงค่า designation สะท้อนให้อ็อบเจ็กต์ทั้งสองเห็นค่าใหม่
Static Final Blank Variable
คือตัวแปร final ที่ไม่ได้กำหนดค่าเริ่มต้น (blank) พร้อมกับคีย์เวิร์ด static หมายความว่าสามารถกำหนดค่าเริ่มต้นได้เฉพาะใน static block เท่านั้น
Blank Final Variable
ตามชื่อเลยครับ ตัวแปร final ที่ไม่มีการกำหนดค่าใดๆ เรียกว่า blank final variable สามารถกำหนดค่าเริ่มต้นได้เฉพาะในคอนสตรัคเตอร์เท่านั้น หากไม่ได้กำหนดค่าจะเกิด compilation error
ตัวอย่างการทำงานของ Blank Final Variable
public class Demo {
private static final int val_1;
private final int val_2;
static {
val_1 = 1;
}
Demo(int val_3) {
val_2 = val_3;
}
public static void main(String s[]) {
Demo obj_1 = new Demo(95);
Demo obj_2 = new Demo(99);
System.out.println("The value of first variable is : ");
System.out.println(Demo.val_1);
System.out.println("The value of first variable accessed using the object : ");
System.out.println(obj_1.val_2);
}
}
ผลลัพธ์
The value of first variable is : 1 The value of first variable accessed using the object : 95
คลาส Demo มีตัวแปรและคอนสตรัคเตอร์ชื่อ Demo ใช้สำหรับกำหนดค่าให้ตัวแปรคลาสอีกตัวหนึ่ง ในฟังก์ชัน main สร้างอินสแตนซ์ของคลาส 2 ตัวและแสดงค่าบนคอนโซล
ตัวแปร Static (Class Variable)
ตัวแปรที่ประกาศด้วยคีย์เวิร์ด static เรียกว่าตัวแปรคลาส (class variable) ถูกกำหนดภายในคอนสตรัคเตอร์หรือนอกฟังก์ชันของคลาส เมื่อตัวแปรเป็น static จะถูกแบ่งปันระหว่างอ็อบเจ็กต์ทุกตัวของคลาสนั้น ไม่ว่าจะสร้างอ็อบเจ็กต์กี่ตัวก็ตาม
ตัวอย่างการทำงานของคีย์เวิร์ด static กับตัวแปร
public class Demo {
String name;
static String designation;
public void display_data() {
System.out.println("The name is: " + name);
System.out.println("The designation of this team members is : " + designation);
}
public static void main(String s[]) {
Demo.designation = "Intern";
Demo my_obj = new Demo();
my_obj.name = "Joe";
Demo my_obj_2 = new Demo();
my_obj_2.name = "Joanna";
my_obj.display_data();
my_obj_2.display_data();
my_obj.designation = "Senior dev";
System.out.println("\nAfter the changes, the data is :\n");
my_obj.display_data();
my_obj_2.display_data();
}
}
ผลลัพธ์
The name is: Joe The designation of this team members is : Intern The name is: Joanna The designation of this team members is : Intern After the changes, the data is : The name is: Joe The designation of this team members is : Senior dev The name is: Joanna The designation of this team members is : Senior dev
คลาส Demo มีตัวแปรและฟังก์ชัน display_data สำหรับแสดงค่าตัวแปรคลาส ในฟังก์ชัน main สร้างอินสแตนซ์ของคลาสและกำหนดค่า name และ designation ให้กับตัวแปรของอ็อบเจ็กต์ แสดงผล จากนั้นสร้างอ็อบเจ็กต์อีกตัวหนึ่งและทำซ้ำ การเปลี่ยนแปลงค่า designation สะท้อนให้อ็อบเจ็กต์ทั้งสองเห็นค่าใหม่
Static Final Blank Variable
คือตัวแปร final ที่ไม่ได้กำหนดค่าเริ่มต้น (blank) พร้อมกับคีย์เวิร์ด static หมายความว่าสามารถกำหนดค่าเริ่มต้นได้เฉพาะใน static block เท่านั้น
Blank Final Variable
ตามชื่อเลยครับ ตัวแปร final ที่ไม่มีการกำหนดค่าใดๆ เรียกว่า blank final variable สามารถกำหนดค่าเริ่มต้นได้เฉพาะในคอนสตรัคเตอร์เท่านั้น หากไม่ได้กำหนดค่าจะเกิด compilation error
ตัวอย่างการทำงานของ Blank Final Variable
public class Demo {
private static final int val_1;
private final int val_2;
static {
val_1 = 1;
}
Demo(int val_3) {
val_2 = val_3;
}
public static void main(String s[]) {
Demo obj_1 = new Demo(95);
Demo obj_2 = new Demo(99);
System.out.println("The value of first variable is : ");
System.out.println(Demo.val_1);
System.out.println("The value of first variable accessed using the object : ");
System.out.println(obj_1.val_2);
}
}
ผลลัพธ์
The value of first variable is : 1 The value of first variable accessed using the object : 95
คลาส Demo มีตัวแปรและคอนสตรัคเตอร์ชื่อ Demo ใช้สำหรับกำหนดค่าให้ตัวแปรคลาสอีกตัวหนึ่ง ในฟังก์ชัน main สร้างอินสแตนซ์ของคลาส 2 ตัวและแสดงค่าบนคอนโซล