ให้เรตสมาชิก: 2 / 5

ดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

Java - Variable Types

ตัวแปรใน Java นั้นจะมีชนิดของตัวแปรอยู่ ซึ่งจะบ่งบอกถึงขนาดและขอบเขตที่สามารถใช้ตัวแปรนั้นได้ โดยชนิดของตัวแปรจะมีทั้งหมด 3 ชนิด

1. Local variables - ตัวแปรที่ถูกประกาศใน method, constructor, block

2. Instance variables - ตัวแปรของ object

3. Static variables - ตัวแปรของ Class

1. Local variables - ตัวแปรที่ถูกประกาศใน method, constructor หรือ block

               Local variables เป็นตัวแปรที่ถูกประกาศใน method, constructors หรือ blocks โดยจะถูกสร้างขึ้นเมื่อ method, constructors หรือ block ถูกเรียกใช้ และจะถูกทำลายเมื่อสิ้นสุด method, constructors หรือ block โดยตัวแปรแบบ Local นั้นจะถูกมองเห็นเฉพาะขอบเขตที่ถูกประกาศเอาไว้เท่านั้น เช่น ถ้าประกาศตัวแปรเอาไว้ใน method ตัวแปรนั้นก็จะสามารถใช้งานได้ภายใน method นั้นเท่านั้น

               ตัวแปรแบบ Local นั้นจะไม่มีค่า Default ดังนั้นเราจึงควรที่จะใส่ค่าให้กับตัวแปร Local ในตอนที่เราได้ทำการประกาศตัวแปร

ตัวอย่าง การประกาศตัวแปรแบบ Local

public class Test {

    public void pupAge() {

        int age = 0;

        age = age + 7;

        System.out.println("Puppy age is : " + age);

    }

    public static void main(String args[]) {

        Test test = new Test();

        test.pupAge();

    }

}

ผลการรัน

Puppy age is: 7

2. Instance variables - ตัวแปรของ object

               ตัวแปรแบบ Instance นั้นจะถูกประกาศเอาไว้ในคลาส แต่จะอยู่ภายนอกของ method, constructor และ block ต่างๆ ซึ่งตัวแปรแบบ Instance นั้นจะถูกสร้างขึ้นก็ต่อเมื่อมีการสร้าง Object ขึ้นมา

การเรียกใช้ตัวแปรแบบ Instance นั้นสามารถเรียกใช้ภายใน method, constructor หรือใน block ได้

เรายังสามารถใส่ Access Modifiers ให้กับตัวแปรแบบ Instance ได้ซึ่งจะทำให้เราสามารถกำหนดระดับการเข้าถึงตัวแปรนั้นๆได้ เช่น กำหนดให้เห็นได้เฉพาะในคลาส หรือจะให้คลาสอื่นสามารถเห็นก็ได้ แต่โดยปกติแล้วตัวแปรแบบ Instance นั้นเราจะกำหนด Access Modifier ให้เป็น private เพื่อที่ตัวแปรนั้นๆจะถูกใช้ได้แค่ภายในคลาสที่ทำการประกาศตัวแปรเอาไว้เท่านั้น

               หากเราไม่กำหนดค่าให้ตัวแปร Instance  ตัวแปร Instance จะมีค่า Default ให้เองโดยอัตโนมัติ

ซึ่งขึ้นอยู่กับชนิดของตัวแปรข้อมูลที่เราได้ทำการประกาศไว้ เช่น ประกาศตัวแปรเอาไว้เป็น int i; ค่า default ของ i จะเท่ากับ 0 โดยอัตโนมัติ

ตัวอย่าง การประกาศตัวแปรแบบ Instance    

import java.io.*;

public class Employee {

    // this instance variable is visible for any child class.

    public String name;

    // salary variable is visible in Employee class only.

    private double salary;

    // The name variable is assigned in the constructor.

    public Employee(String empName) {

        name = empName;

    }

    // The salary variable is assigned a value.

    public void setSalary(double empSal) {

        salary = empSal;

    }

    // This method prints the employee details.

    public void printEmp() {

        System.out.println("name  : " + name);

        System.out.println("salary :" + salary);

    }

    public static void main(String args[]) {

        Employee empOne = new Employee("Ransika");

        empOne.setSalary(1000);

        empOne.printEmp();

    }

}

ผลการรัน

name  : Ransika
salary :1000.0

3. Static variables - ตัวแปรของ Class

ตัวแปรแบบ Static หรือตัวแปรของ Class นั้นจะมีการประกาศคล้ายๆ กับตัวแปรแบบ Instance โดยจะแตกต่างกันที่ ตัวแปรแบบ Static นั้นจะมีการประกาศคำว่า Static เอาไว้ข้างหน้าของตัวแปรเช่น static String testStatic; และข้อแตกต่างอีกอย่างหนึ่งก็คือ ตัวแปรแบบ Static จะเอาไว้ใช้กับคลาสเท่านั้น ซึ่งคลาสจะสามารถมีได้แค่ 1 คลาส ส่วนตัวแปรแบบ Instance นั้นจะเกิดขึ้นก็ต่อเมื่อมีการสร้าง Object ขึ้นมา ซึ่ง Object ต่างๆก็จะเกิดขึ้นมาจากคลาส แต่คลาส 1 คลาสสามารถสร้าง Object ได้ไม่จำกัด โดยที่ตัวแปรแบบ Instance นั้นจะใช้ได้แค่ใน Object เดียว ซึ่งถ้าหากเราทำการสร้าง Object ใหม่อีกเราก็จะได้ตัวแปรอันใหม่สำหรับ Object ที่เราสร้างใหม่ ซึ่งไม่เกี่ยวกับ Object เดิมที่เคยสร้างไว้

ตัวอย่าง การประกาศตัวแปรแบบ Static

import java.io.*;

public class Employee {

    // salary variable is a private static variable

    private static double salary;

    // DEPARTMENT is a constant

    public static final String DEPARTMENT = "Development ";

    public static void main(String args[]) {

        salary = 1000;

        System.out.println(DEPARTMENT + "average salary:" + salary);

    }

}

ผลการรัน

Development average salary:1000

 

 

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
บันทึกการประชุม OpenERP MD-ERP
โดย rinrada ส 04 ก.พ. 2017 11:52 am บอร์ด OpenERP - MD-ERP (Main)
26
173
พฤ 21 พ.ย. 2019 6:56 pm โดย thatsawan
การใช้ ฟังก์ชัน hsl() และ hsal () กำหนดค่าของสี
โดย bankjittapol พฤ 21 พ.ย. 2019 6:55 pm บอร์ด CSS Knowledge
0
3
พฤ 21 พ.ย. 2019 6:55 pm โดย bankjittapol
วิธีการแยกตัวอักษรเข้าอาร์เรย์ (Array) แต่ล่ะอาร์เรย์ ด้วยคำสั่ง split
โดย jamepiyawat พฤ 21 พ.ย. 2019 6:50 pm บอร์ด Jquery & Ajax Knowledge
0
2
พฤ 21 พ.ย. 2019 6:50 pm โดย jamepiyawat
วิธีการดึงค่า class ที่มีหลาย
โดย Ittichai_chupol พฤ 21 พ.ย. 2019 6:39 pm บอร์ด Jquery & Ajax Knowledge
0
6
พฤ 21 พ.ย. 2019 6:39 pm โดย Ittichai_chupol
การติดตั้ง wkhtmltopdf ด้วย terminal บน ubuntu
โดย jirawoot พฤ 27 มิ.ย. 2019 4:00 pm บอร์ด Linux - Web Server
3
694
พฤ 21 พ.ย. 2019 2:49 pm โดย mindphp
การปรับแก้ไข(Overrides) Modules ใน Template
โดย bankjittapol พฤ 21 พ.ย. 2019 2:36 pm บอร์ด Joomla Developing Knowledge
0
4
พฤ 21 พ.ย. 2019 2:36 pm โดย bankjittapol
wkhmtltopdf คืออะไร
โดย jirawoot พ 03 ก.ค. 2019 6:35 pm บอร์ด Share Knowledge
1
215
พฤ 21 พ.ย. 2019 2:34 pm โดย mindphp
อัพเกรด wkhtmltopdf บน Ubuntu 16.04
โดย mindphp พฤ 21 พ.ย. 2019 2:33 pm บอร์ด Linux - Web Server
0
5
พฤ 21 พ.ย. 2019 2:33 pm โดย mindphp
VDO - โปรแกรมแปลงพื้นที่
โดย numtan5839 พฤ 21 พ.ย. 2019 1:59 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
9
พฤ 21 พ.ย. 2019 4:27 pm โดย thatsawan
VDO - การใช้โปรแกรมคำนวณแคลอรี่
โดย numtan5839 พฤ 21 พ.ย. 2019 1:46 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
8
พฤ 21 พ.ย. 2019 4:24 pm โดย thatsawan
แนะนำ tools Online
โดย chaiyasitpraphut พ 13 พ.ย. 2019 6:21 pm บอร์ด MindPHP News / Feedback
1
48
พฤ 21 พ.ย. 2019 12:33 pm โดย mindphp
ต้องการเก็บ cache ข้อมูลที่ดึงมาจาก api ของ กรมอุตุฯ ต้องทำยังไงครับ
โดย bankjittapol พฤ 21 พ.ย. 2019 10:40 am บอร์ด Joomla Development
1
13
พฤ 21 พ.ย. 2019 10:43 am โดย thatsawan
อัพเดทความคืบหน้า / Progress - ThaiVI
โดย mindphp พ 10 ต.ค. 2018 3:49 am บอร์ด ThaiVI (Main)
409
2754
พฤ 21 พ.ย. 2019 10:32 am โดย thatsawan
งานประจำวันที่ 21 พฤศจิกายน 2562
โดย numtan5839 พฤ 21 พ.ย. 2019 10:11 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
7
26
พฤ 21 พ.ย. 2019 7:23 pm โดย numtan5839
Google Station บริการ Wi-Fi ฟรี จาก google มีบริการภายในสนามบิน 6 แห่ง
โดย jamepiyawat จ 26 ส.ค. 2019 6:19 pm บอร์ด Share Knowledge
2
292
พฤ 21 พ.ย. 2019 9:49 am โดย aloha11x
เปลี่ยน Default Python3 บนเครื่อง Ubuntu 16.04 จาก Python3.5 เป็น Python3.6
โดย mindphp พฤ 21 พ.ย. 2019 7:04 am บอร์ด Linux - Web Server
0
5
พฤ 21 พ.ย. 2019 7:04 am โดย mindphp
สร้าง Template ใน Joomla
โดย bankjittapol พ 20 พ.ย. 2019 8:06 pm บอร์ด Joomla Developing Knowledge
0
8
พ 20 พ.ย. 2019 8:06 pm โดย bankjittapol
list box เลือกแสดงรูปแบบของวันที่ (Date Format )
โดย bankjittapol พ 20 พ.ย. 2019 6:55 pm บอร์ด Joomla Developing Knowledge
0
10
พ 20 พ.ย. 2019 6:55 pm โดย bankjittapol
คำสั่งเข้าใช้งาน PostgreSQL ด้วย Command Line
โดย mindphp อ 30 ก.ค. 2017 11:24 pm บอร์ด PostgreSQL
6
1812
พ 20 พ.ย. 2019 6:38 pm โดย mindphp
replace() คำสั่งค้นหาแทนที่ใน javascript
โดย jamepiyawat พ 20 พ.ย. 2019 6:36 pm บอร์ด Jquery & Ajax Knowledge
0
8
พ 20 พ.ย. 2019 6:36 pm โดย jamepiyawat