ให้เรตสมาชิก: 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

 

 

 

 

 

 

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
10 อันดับรถยนต์วินเทจ ที่ใครเห็นก็ต้องมอง
โดย Meygrand พ 11 ธ.ค. 2019 3:04 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
32
พ 11 ธ.ค. 2019 3:04 pm โดย Meygrand
อยากทราบวิธีการ override ไฟล์ bookmark มาใช้งานใน Extension ของ phpbb
โดย Ittichai_chupol พ 11 ธ.ค. 2019 11:00 am บอร์ด Programming - PHP
0
20
พ 11 ธ.ค. 2019 11:00 am โดย Ittichai_chupol
งานประจำวันที่ 11 ธันวาคม 2562
โดย noppadonsk พ 11 ธ.ค. 2019 10:05 am บอร์ด MT36 - นายนพดล สุชญากูล
10
51
พ 11 ธ.ค. 2019 7:00 pm โดย noppadonsk
งานประจำวันที่ 11 ธันวาคม 2562
โดย Grammanano พ 11 ธ.ค. 2019 10:02 am บอร์ด M098 - อนงค์นาท ไฝขาว
1
8
พ 11 ธ.ค. 2019 6:59 pm โดย Grammanano
งานประจำวันที่ 11 ธันวาคม 2562
โดย numtan5839 พ 11 ธ.ค. 2019 9:52 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
17
พ 11 ธ.ค. 2019 7:23 pm โดย numtan5839
R - Rotate back up file
โดย Grammanano จ 09 ธ.ค. 2019 8:20 pm บอร์ด M098 - อนงค์นาท ไฝขาว
1
7
จ 09 ธ.ค. 2019 8:24 pm โดย mindphp
การดึงข้อมูลใน ArrayList ภาษา Java
โดย Grammanano จ 09 ธ.ค. 2019 7:42 pm บอร์ด Share Knowledge
0
26
จ 09 ธ.ค. 2019 7:42 pm โดย Grammanano
ฺB - ไม่สามารถ cancel ใบกำกับภาษีที่สร้างผ่าน withholding tax โดยตรงได้
โดย nnamfon.26 จ 09 ธ.ค. 2019 7:27 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
4
จ 09 ธ.ค. 2019 7:27 pm โดย nnamfon.26
การเพิ่มข้อมูลใน ArrayList ภาษา Java
โดย Grammanano จ 09 ธ.ค. 2019 6:19 pm บอร์ด Share Knowledge
0
22
จ 09 ธ.ค. 2019 6:19 pm โดย Grammanano
การทำงานแบบ Multitasking เหมาะกับใคร - การทำหลาย ๆ อย่างพร้อมกัน
โดย noppadonsk จ 09 ธ.ค. 2019 6:06 pm บอร์ด Share Knowledge
0
27
จ 09 ธ.ค. 2019 6:06 pm โดย noppadonsk
บทเรียนสำหรับนักออกแบบมือใหม่
โดย noppadonsk จ 09 ธ.ค. 2019 5:48 pm บอร์ด Share Knowledge
0
35
จ 09 ธ.ค. 2019 5:48 pm โดย noppadonsk
มาดูเทรนด์สีมาแรง ในปี 2020
โดย noppadonsk จ 09 ธ.ค. 2019 5:18 pm บอร์ด Graphic design
0
31
จ 09 ธ.ค. 2019 5:18 pm โดย noppadonsk
วิธีการปรับแก้ไขลิ้งค์จากหัวข้อ ให้ไปยังตำแหน่งโพสต์ ที่ยังไม่มีการอ่าน ใน phpbb
โดย Ittichai_chupol จ 09 ธ.ค. 2019 5:16 pm บอร์ด PHP Knowledge
0
23
จ 09 ธ.ค. 2019 5:16 pm โดย Ittichai_chupol
ภาพประกอบ template Mooziicart Helix
โดย numtan5839 จ 09 ธ.ค. 2019 4:29 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
0
4
จ 09 ธ.ค. 2019 4:29 pm โดย numtan5839
VDO - Introducing to Mooziicart Helix - Template MooZiicart
โดย numtan5839 จ 09 ธ.ค. 2019 3:56 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
8
จ 09 ธ.ค. 2019 5:43 pm โดย numtan5839
VDO - Introducing to Mooziicart coupon feature
โดย numtan5839 จ 09 ธ.ค. 2019 11:30 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
4
18
พฤ 12 ธ.ค. 2019 11:18 am โดย numtan5839
การสร้าง ArrayList ในภาษา Java
โดย Grammanano จ 09 ธ.ค. 2019 11:28 am บอร์ด Share Knowledge
0
24
จ 09 ธ.ค. 2019 11:28 am โดย Grammanano
เพิ่ม primary key ใน pgadmin แล้ว error ค่ะ
โดย Grammanano จ 09 ธ.ค. 2019 11:15 am บอร์ด SQL - Database
0
35
จ 09 ธ.ค. 2019 11:15 am โดย Grammanano
งานประจำวันที่ 9 ธันวาคม 2562
โดย noppadonsk จ 09 ธ.ค. 2019 10:19 am บอร์ด MT36 - นายนพดล สุชญากูล
2
20
จ 09 ธ.ค. 2019 7:15 pm โดย jamepiyawat
งานประจำวันที่ 9 ธันวาคม 2562
โดย numtan5839 จ 09 ธ.ค. 2019 10:14 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
12
จ 09 ธ.ค. 2019 7:51 pm โดย numtan5839