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

 

 

 

 

 

 

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ติดปัญหา ทำอย่างไงจะให้ Query ข้อมูลได้รวดเร็วยิ่งขึ้น
โดย makup ศ 30 ต.ค. 2020 7:47 pm บอร์ด Programming - PHP
4
19
ศ 30 ต.ค. 2020 7:59 pm โดย makup
การรวมข้อความจากหลายตาราง
โดย Bellamy ศ 30 ต.ค. 2020 6:55 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
7
ศ 30 ต.ค. 2020 6:55 pm โดย Bellamy
ตัวระบบปฎิบัติการ ubuntu ที่เครื่องทำงานมีปัญหา , เมื่อเวลาทำการเปิดเครื่องบน Ubuntu
โดย makup ศ 30 ต.ค. 2020 2:40 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
25
ศ 30 ต.ค. 2020 3:12 pm โดย mindphp
การแก้ไขปัญหาภาษาไทยสระทับซ้อนกันใน โปรแกรม Adobe Illustrator cc 2019
โดย Bellamy พฤ 29 ต.ค. 2020 5:32 pm บอร์ด Graphic design
0
14
พฤ 29 ต.ค. 2020 5:32 pm โดย Bellamy
ขอวิธีแก้ Bug ปุ่ม Next ให้เป็นภาษาไทย , หลังจากที่ได้ทำการติดตั้งตัง ตัวรับรองภาษาไทยแล้ว
โดย makup พฤ 29 ต.ค. 2020 5:15 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
2
47
ศ 30 ต.ค. 2020 5:34 pm โดย makup
เกิด Fatal error ในหน้าแรก , เกิดจากเข้าไปตรง ส่วนเสริม แล้วพอคลิกปุ่ม หน้าเว็บบอรด์
โดย makup พฤ 29 ต.ค. 2020 4:20 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
31
พฤ 29 ต.ค. 2020 4:33 pm โดย thatsawan
จะอัพเกรดJoomla 1.5 ไปเป็น 3.9
โดย somporn.so พฤ 29 ต.ค. 2020 3:56 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
26
พฤ 29 ต.ค. 2020 4:08 pm โดย mindphp
จำทำเว็บขายของ ใช้ Joomla Virtuemart ดีไหม
โดย Anonymous พฤ 29 ต.ค. 2020 3:10 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
28
พฤ 29 ต.ค. 2020 4:10 pm โดย mindphp
ขอวิธีการติดตั้ง phpBB ในตัวเครื่อง Ubuntu หน่อยครับ
โดย makup พฤ 29 ต.ค. 2020 1:37 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
4
38
พฤ 29 ต.ค. 2020 2:29 pm โดย mindphp
แจ้งเตือนชำระเงิน บน browser ด้วย Plugin System MZC Notify ใน MooZiiCart
โดย bolue พ 28 ต.ค. 2020 6:37 pm บอร์ด MindPHP News & Feedback
0
35
พ 28 ต.ค. 2020 6:37 pm โดย bolue
จัดการเว็บไซต์ที่มีหลายร้านค้าง่ายๆ ด้วย Plugin System MZC Multi Shop ใน MooZiiCart
โดย bolue พ 28 ต.ค. 2020 6:27 pm บอร์ด MindPHP News & Feedback
1
26
ศ 30 ต.ค. 2020 6:41 pm โดย bolue
ลบส่วนส่วนเกินในรูปภาพ โดย Photoshop cc
โดย Bellamy พ 28 ต.ค. 2020 5:49 pm บอร์ด Graphic design
0
32
พ 28 ต.ค. 2020 5:49 pm โดย Bellamy
สอนการ บวก ลบ คูณ หาร ง่ายๆ ผ่านการใช้ Excel ออนไลน์
โดย Bellamy อ 27 ต.ค. 2020 7:38 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
30
อ 27 ต.ค. 2020 7:38 pm โดย Bellamy
การสไลด์โชว์สินค้าได้หลายรูปแบบ ด้วย Module MZC Slider ii ใน MooZiiCart
โดย bolue อ 27 ต.ค. 2020 5:58 pm บอร์ด MindPHP News & Feedback
0
33
อ 27 ต.ค. 2020 5:58 pm โดย bolue
การแก้ไขข้อความ หรือเพิ่มรายละเอียดข้อความ แบบตรวจสอบได้ ผ่านทาง word online
โดย Bellamy อ 27 ต.ค. 2020 5:28 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
30
อ 27 ต.ค. 2020 5:28 pm โดย Bellamy
ขั้นตอนทำงาน System Analyst and Design
โดย Bellamy จ 26 ต.ค. 2020 6:51 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
52
จ 26 ต.ค. 2020 6:51 pm โดย Bellamy
แนะนำแหล่งท่องเที่ยวและการเดินทางในกทม
โดย Bellamy จ 26 ต.ค. 2020 4:53 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
51
จ 26 ต.ค. 2020 6:50 pm โดย Bellamy
Content Marketing คือ - ในปัจจุบันสำคัญอย่างไร?
โดย ploypola จ 26 ต.ค. 2020 12:07 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
32
จ 26 ต.ค. 2020 12:07 pm โดย ploypola
วิธีการ Insert , edit ,delete โดยผ่านตัว Model Laravel Framework
โดย makup ส 24 ต.ค. 2020 3:44 pm บอร์ด PHP Knowledge
1
49
ส 24 ต.ค. 2020 3:59 pm โดย makup
ติดปัญหาการค้นหาข้อมูล Listbox ให้เลือกค่าเก่าค้างไว้
โดย makup พฤ 22 ต.ค. 2020 8:05 pm บอร์ด Programming - PHP
19
242
พฤ 29 ต.ค. 2020 12:51 pm โดย makup