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

 

 

 

 

 

 

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
MOD_MTB_NEWS_RECENT
ทำไมเข้าเมลตัวเองไม่ได้
โดย เอ็มกับจ๋า อ 24 ก.ย. 2017 9:41 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
5
อ 24 ก.ย. 2017 9:41 pm โดย เอ็มกับจ๋า
สอบถามเกี่ยวกับ task
โดย Minanda อ 24 ก.ย. 2017 6:11 pm บอร์ด Joomla Development
1
29
อ 24 ก.ย. 2017 6:11 pm โดย Minanda
อยากเป็นแฮกเกอร์
โดย ชื่อ ต้า ส 23 ก.ย. 2017 6:38 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
20
ส 23 ก.ย. 2017 6:38 pm โดย ชื่อ ต้า
อยากเป็นแฮกเกอร์ แค่ไม่รู้อะไรเลย
โดย ชื่อ ต้า ส 23 ก.ย. 2017 6:37 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
31
ส 23 ก.ย. 2017 6:37 pm โดย toonytoony2004
ฉันมีความกังวนในความเป็นส่วนตัว
โดย สิทธิ์ ของหัวจัย ศ 22 ก.ย. 2017 10:40 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
10
ศ 22 ก.ย. 2017 10:40 pm โดย สิทธิ์ ของหัวจัย
เฟสให้ยืนยันตัวตนด้วยรูปเพื่อนในเฟสแต่หนูจำไม่ได้จากนั้นก็เข้าไม่ได้เลยค๊ะ
โดย บุคคลทั่วไป ศ 22 ก.ย. 2017 1:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
16
ศ 22 ก.ย. 2017 1:25 pm โดย บุคคลทั่วไป
สีผิวของ โปรแกรมเมอร์ และอาชีพต่างๆในฤดูร้อน
โดย Before Dong ศ 22 ก.ย. 2017 10:10 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
38
ศ 22 ก.ย. 2017 10:10 am โดย Before Dong
เรียกใช้คำสั่งในการวาดสี่เหลี่ยมและวงกลม
โดย Ik Kat พฤ 21 ก.ย. 2017 7:28 pm บอร์ด JavaScript & Jquery Ajax
0
22
พฤ 21 ก.ย. 2017 7:28 pm โดย Ik Kat
อยากรู้วิธีใส่ Google Structure ใน Joomla ว่าใส่ตำแหน่งไหนและแก้ตรงไหนบ้างครับ
โดย Before Dong พฤ 21 ก.ย. 2017 2:20 pm บอร์ด Joomla Development
0
17
พฤ 21 ก.ย. 2017 2:20 pm โดย Before Dong
เมื่อ "ลูกค้า" บอกความต้องการของระบบ กับงบที่มี
โดย Before Dong พฤ 21 ก.ย. 2017 10:29 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
35
พฤ 21 ก.ย. 2017 10:29 am โดย Before Dong
oracle Sql loader
โดย jataz2 พ 20 ก.ย. 2017 5:13 pm บอร์ด SQL - Database
0
11
พ 20 ก.ย. 2017 5:13 pm โดย jataz2
ประกันสังคมพร้อมก้าวสู่ Digital SSO ไม่ต้องพกบัตรรับรองสิทธิ ตั้งแต่วันที่ 1 ม.ค. 61 เป็นต้นไป
โดย thatsawan พ 20 ก.ย. 2017 11:03 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
32
พ 20 ก.ย. 2017 11:03 am โดย thatsawan
เมื่อคุณประชุมทีมแล้ว ทีมไม่เข้าใจที่คุณพูด
โดย Before Dong พ 20 ก.ย. 2017 10:19 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
37
พ 20 ก.ย. 2017 10:19 am โดย Before Dong
Joomla 3.8 มาแล้ว
โดย mindphp อ 19 ก.ย. 2017 9:14 pm บอร์ด PHP News
0
20
อ 19 ก.ย. 2017 9:14 pm โดย mindphp
สถานะสถานพยาบาลที่เข้าร่วมประกันสังคม 2560 อัพเดทล่าสุด
โดย thatsawan อ 19 ก.ย. 2017 11:32 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
27
อ 19 ก.ย. 2017 11:32 am โดย thatsawan
ทุกปัญหาใหญ่สำหรับ "User" เสมอ!!
โดย Before Dong อ 19 ก.ย. 2017 10:16 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
30
อ 19 ก.ย. 2017 10:16 am โดย Before Dong
เจอ Process ไม่พึงประสงค์ ผังและรัน ภายใต้ /tmp ป้องกันไม่ใช้ รันไฟล์ใน tmp
โดย mindphp อ 19 ก.ย. 2017 7:52 am บอร์ด Linux - Web Server
0
16
อ 19 ก.ย. 2017 7:52 am โดย mindphp
ใครใช้ CCleaner เวอร์ชั่นเก่า อัพเกรดด่วน ให้ใหม่กว่า เวอร์ชัน 5.33
โดย mindphp อ 19 ก.ย. 2017 5:29 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
21
อ 19 ก.ย. 2017 5:29 am โดย mindphp
facebook มันมันบังคับให้ตั้งชื่อใหม่ ให้เป็นชื่อจริงๆ
โดย บุคคลทั่วไป อ 19 ก.ย. 2017 5:18 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
19
อ 19 ก.ย. 2017 5:18 am โดย บุคคลทั่วไป
สอบถามการประยุกต์ใช้คำสั่ง rect()
โดย Ik Kat จ 18 ก.ย. 2017 6:00 pm บอร์ด JavaScript & Jquery Ajax
0
26
จ 18 ก.ย. 2017 6:00 pm โดย Ik Kat