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

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

Java - Object & Classes

Java เป็นภาษาเชิงวัตถุ เป็นภาษาที่มีคุณสมบัติเชิงวัตถุ, Java รองรับพื้นฐานต่อไปนี้

  • Polymorphism
  • Inheritance
  • Encapsulation
  • Abstraction
  • Classes
  • Objects
  • Instance
  • Method
  • Message Parsing

ในบทนี้จะมองไปที่ Classes และ Objects.

Object – จะประกอบด้วย State และ Behaviors ตัวอย่าง : สุนัขมี State คือ name, breed(สายพันธุ์) ที่คอยระบุลักษณะของ Object(วัตถุ) นั้นๆ ส่วน Behavior หรือพฤติกรรมของ Dog นั้นคือ เห่า, กิน, นอน  ฯลฯ
Class – คือต้นแบบที่กำหนดคุณสมบัติและพฤติกรรมการทำงานของ Object ที่ถูกสร้างมาจากคลาสนั้นๆ

องค์ประกอบของ Class มีสองส่วนหลักได้แก่

ข้อมูล (data) หรือ คุณสมบัติ (Field) สำหรับเก็บข้อมูลในการทำงานหรือบอกสถานะปัจจุบันObject ตัวอย่างเช่น คลาสชนิดบัญชีธนาคารสามารถมีข้อมูลคือ เลขที่บัญชี, ชื่อเจ้าของบัญชี, และยอดเงินปัจจุบัน

พฤติกรรมการทำงาน (method หรือ function) เป็นส่วนรับคำสั่งและทำงานตามคำสั่งนั้น เช่น Class บัญชีธนาคารจากตัวอย่างข้างบนอาจจะมีฟังก์ชันสำหรับฝากและถอนเงินจากบัญชี เป็นต้น

นอกจากนี้ คลาสยังสามารถมีฟังก์ชันพิเศษเรียกว่า constructor ซึ่งจะถูกเรียกใช้ในเวลาที่กำลังสร้างObjectจาก Class เพื่อตั้งค่าเริ่มต้นให้กับข้อมูลและคุณสมบัติของObject นั้น

การเขียน Class

ยกตัวอย่าง การสร้าง Class Dog ให้กำหนด Field, Method ของ Dog

 

public class Dog {
    // กำหนดคุณสมบัติ(Field)
    String Name;
    String Breed;

    // Constructor
    Dog() {
    }

    // Method สำหรับ กำหนดชื่อสุนัข
    public void setName(String name) {
        Name = name;
    }

    // Method สำหรับ กำหนดสายพันธุ์
    public void setBreed(String breed) {
        Breed = breed;
    }

    // Method สำหรับไว้ให้เรียกดูชื่อสุนัข
    public String getName() {
        return Name;
    }

    // Method สำหรับไว้ให้เรียกดูสายพันธุ์สุนัข
    public String getBreed() {
        return Breed;
    }
}

เมื่อสร้าง Class เสร็จ ให้ทดสอบการทำงานของ Class Dog

public class RunDog {

    public static void main(String[] args) {

        Dog dog1 = new Dog(); // สุนัขตัวที่ 1

        dog1.setName("Red"); // ชื่อสุนัข ชื่อว่า “Red”

        dog1.setBreed("Golden Retriever"); // ชื่อพันธุ์ สุนัขพันธุ์ “Golden Retriever”

        Dog dog2 = new Dog(); // สุนัขตัวที่ 1

        dog2.setName("Blue"); // ชื่อสุนัข ชื่อว่า “Blue”

        dog2.setBreed("Siberian Husky"); // ชื่อพันธุ์ สุนัขพันธุ์ “Siberian Husky”

        System.out.println("สุนัขตัวที่ 1");

        System.out.println("Name :" + dog1.getName());

        System.out.println("Breed :" + dog1.getBreed());

        System.out.println("สุนัขตัวที่ 2");

        System.out.println("Name :" + dog2.getName());

        System.out.println("Breed :" + dog2.getBreed());

    }

}

การทำงานเราจะทำการสร้าง Object ขึ้นมา Dog dog1 = new Dog(); ซึ่ง dog1 คือ Object จะมีคุณสมบัติเหมือนกับที่เรากำหนดไว้ใน Class Dog ซึ่ง Object ที่เราสร้างจะเปรียบเสมือนสุนัข 1 ตัว

        Dog dog1 = new Dog();  //สุนัขตัวที่ 1
        dog1.setName("Red");    // ชื่อสุนัข ชื่อว่า “Red”
        dog1.setBreed("Golden Retriever"); // ชื่อพันธุ์ สุนัขพันธุ์ “Golden Retriever”

หลังจากที่มี Object สุนัข 1 ตัว เราก็จะตั้งชื่อโดยเรียกใช้ Method set โดย dog1.setName("Red"); ระบุสายพันธุ์ dog1.setBreed("Golden Retriever"); โดยเราสามารถเรียก Method ในการกำหนดโดยใช้ . โดยใช้ Object dog1 เป็นตัวเรียกใช้ การแสดงผลเราก็ใช้ Object เรียกใช้ Method get

        System.out.println("สุนัขตัวที่ 1");
        System.out.println("Name :"+dog1.getName());
        System.out.println("Breed :"+dog1.getBreed());

ผลการ Run

สุนัขตัวที่ 1
Name :Red
Breed : Golden Retriever
สุนัขตัวที่ 2
Name :Blue
Breed : Siberian Husky

 

 

 

 

 

 

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
จะทำอย่างไรให้เราดึงชื่อรูปออกมาได้จากพาดยาว ๆ ครับ
โดย jamepiyawat จ 25 พ.ย. 2019 4:44 pm บอร์ด Programming - PHP
1
30
จ 25 พ.ย. 2019 4:45 pm โดย tsukasaz
โปรแกรมคำนวณอัตราแลกเปลี่ยนสกุลเงิน
โดย prmindphp จ 25 พ.ย. 2019 4:26 pm บอร์ด MindPHP News & Feedback
0
26
จ 25 พ.ย. 2019 4:26 pm โดย prmindphp
โปรแกรมตรวจสอบหมายเลขพัสดุ
โดย prmindphp จ 25 พ.ย. 2019 4:12 pm บอร์ด MindPHP News & Feedback
0
37
จ 25 พ.ย. 2019 4:12 pm โดย prmindphp
นิยามของสินทรัพย์ หนี้สิน และส่วนของเจ้าของ
โดย Chidchanok อ 15 ม.ค. 2019 6:13 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
1
1491
จ 25 พ.ย. 2019 3:39 pm โดย mindphp
VDO - Program Convert Area
โดย numtan5839 จ 25 พ.ย. 2019 3:16 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
25
พ 27 พ.ย. 2019 2:29 am โดย mindphp
งานประจำวันที่ 25 พฤศจิกายน 2562
โดย numtan5839 จ 25 พ.ย. 2019 10:13 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
17
จ 25 พ.ย. 2019 7:22 pm โดย numtan5839
วิธีการลงทุนที่ดีที่สุดสำหรับ "มนุษย์เงินเดือน"
โดย somying อ 12 พ.ย. 2019 12:13 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
262
จ 25 พ.ย. 2019 5:58 am โดย tidehunter
ไปรษณีย์ไทยเอาใจ e-commerce ด้วยบริการ ePacket
โดย numtan5839 ส 09 พ.ย. 2019 11:21 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
190
จ 09 ธ.ค. 2019 3:21 pm โดย LEG
อัพเดดความคืบหน้า / Progress - AZKing
โดย mindphp อ 29 มิ.ย. 2014 5:47 pm บอร์ด AZKing (Main)
598
3298
อ 03 ธ.ค. 2019 6:34 pm โดย thatsawan
insert แล้วไม่ขึ้น error ไม่มีข้อความไดเกิดขึ้น ไม่บันทึกข้อมูลลงฐานข้อมูลด้วยคับ
โดย สายลม พ 06 พฤษภาคม 2015 8:20 am บอร์ด Programming - PHP
6
3389
ส 23 พ.ย. 2019 9:50 pm โดย Weerawut Wongdang
Animation ประกอบ Tools
โดย numtan5839 ส 23 พ.ย. 2019 7:21 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
8
56
ศ 13 ธ.ค. 2019 6:37 pm โดย numtan5839
ข้อแตกต่าง ระหว่าง ฟังก์ชัน onContentBeforeDisplay กับ onContentAfterDisplay
โดย bankjittapol ส 23 พ.ย. 2019 6:56 pm บอร์ด Joomla Developing Knowledge
0
41
ส 23 พ.ย. 2019 6:56 pm โดย bankjittapol
หน่วยของค่าที่ใช้ต่างๆ ใน CSS
โดย bankjittapol ส 23 พ.ย. 2019 6:20 pm บอร์ด CSS Knowledge
0
47
ส 23 พ.ย. 2019 6:20 pm โดย bankjittapol
งานประจำวันที่ 23 พฤศจิกายน 2562
โดย numtan5839 ส 23 พ.ย. 2019 10:17 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
6
29
ส 23 พ.ย. 2019 7:22 pm โดย numtan5839
จะแปลง {new} {/new} {update} {/update} {bug} {/bug} ให้เป็นตามรูปยังไงครับ(ตามรูปที่แนบไว้)
โดย bankjittapol ส 23 พ.ย. 2019 5:08 pm บอร์ด Joomla Development
0
60
ส 23 พ.ย. 2019 5:08 pm โดย bankjittapol
จะเอาเลขเวอร์ชั่น และวันที่ ที่อยู่ข้างใน {version} ออกมายังไงครับ
โดย bankjittapol ส 23 พ.ย. 2019 3:39 pm บอร์ด Joomla Development
2
62
ส 23 พ.ย. 2019 3:56 pm โดย bankjittapol
มาแล้ว !! Plugin MDEmbed สร้าง Link อัพวีดีโอบทความ เว็บไซต์ Joomla 2.5, 3.x
โดย Patipat ศ 30 ส.ค. 2019 5:46 pm บอร์ด MindPHP News & Feedback
1
301
ส 23 พ.ย. 2019 11:11 am โดย mindphp
รวม แนะนำโปรแกรม POS (ระบบขายหน้าร้าน)
โดย nipon09 พฤ 06 พ.ย. 2014 7:09 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
5
7609
ส 23 พ.ย. 2019 1:30 am โดย nightstalker
การใช้ text-align เพื่อจัดข้อความ
โดย bankjittapol ศ 22 พ.ย. 2019 6:28 pm บอร์ด CSS Knowledge
0
59
ศ 22 พ.ย. 2019 6:28 pm โดย bankjittapol
อยากทราบคำสั่ง joomla ที่จะทำให้ย่อยรูปได้ครับ
โดย jamepiyawat ศ 22 พ.ย. 2019 5:53 pm บอร์ด Joomla Development
1
76
ศ 22 พ.ย. 2019 8:35 pm โดย mindphp