สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

Tutorial JAVA

01 install Eclipse 02 intro to programming Eclipse 03 condition 04.loop 05.array 05 2 array cont 06 01 function 06 02 function cont 07 object 08 string 09 constructor 10 01 oop 10 02 oop2 11 exception 12 reading file 13 thread 14 generic 15 01 GUI 15 02 GUI2 15 03.GUI3 16 using WindowBuilder 17 event 18 database management system 19 ER diagram 20 Relational 21 Xampp 22 JDBC 23 MVC 24 SQL

อ็อปเจ็ค(Objects)

            เรื่องอ็อปเจ็คเป็นเรื่องต่อเนื่องกับเรื่องฟังก์ชัน ต่อไปนี้จะพูดถึงเรื่องคลาสกับอ็อปเจ็คซึ่งเป็นเรื่องสำคัญสำหรับภาษาจาวา

คลาส(Class)

            เป็นเหมือนแบบร่างของวัตถุ เป็นเหมือนแปลนหรือแบบของบ้านเวลาจะสร้างบ้าน แต่แบบบ้านไม่ใช่บ้านจริงๆถ้าอยากอยู่ในบ้านได้จริงๆก็ต้องสร้างบ้านตามแบบแปลนขึ้นมาก่อน คลาสก็เช่นเดียวกันเป็นแบบแปลนที่เก็บข้อมูล เมท็อดว่าจะทำงานอะไรบ้าง สำหรับรอการสร้างเป็นอ็อปเจ็คที่สามารถใช้งานได้จริง

รูปแบบของคลาส

(modifier) class ชื่อคลาส[1] {

ประกาศตัวแปรคลาส

เมท็อดต่างๆของคลาส

}

ตัวแปรคลาส

            ตัวแปรจะเป็นตัวกำหนดลักษณะ ต้องประกาศภายในวงเล็บของคลาส

modifier ชนิดข้อมูล ชื่อตัวแปรคลาส;

เช่น

                public class Student  {

                        public int Stu_Id

public String name

private String phone

}

อ็อปเจ็ค(Object)

เป็นสิ่งที่สร้างขึ้นมาจากแบบแปลที่วางไว้ก็คือการทำให้แบบแปลนสามารถใช้งานได้จริงๆ ซึ่งอ็อปเจ็คจะมีสมบัติอยู่ 2 อย่าง อย่างแรกก็คือ ลักษณะ(attribute หรือ data) ก็คือรูปร่าง ลักษณะของวัตถุ และ สิ่งที่ทำได้(behavior หรือ method) ก็คือความสามารถของวัตถุ

ตัวอย่างเช่น หากเราจะสร้างหุ่นยนต์ขึ้นมา ก็ต้องมีการกำหนดรูปร่างหน้าตาขอหุ่นยนต์ หุ่นยนต์กู้ซากปรักหักพังก็จะมีหน้าตาต่างกับหุ่นยนต์ที่เป็นโอเปอเรเตอร์ต้อนรับคนหน้าโรงแรม ซึ่งเราก็ต้องกำหนดว่าจะมีสี มีรูปร่าง อย่างไร ส่วนการทำงานก็เช่น จะเก็บของอะไรบ้าง จะกระโดข้ามสิ่งกีดขวางหรือบุกไปเลย

หรืออีกตัวอย่างก็เช่นเวลาต้องการสร้างอ็อปเจ็คของพนักงานบริษัท พนักงานบริษัทก็ต้องประกอบไปด้วยคุณลักษณะคือมีรหัสพนักงาน ชื่อ นามสกุล ตำแหน่ง เงินเดือน และเมท็อดหรือสิ่งที่ทำก็เช่นการรับเงินเดือน เป็นต้น

การประกาศตัวแปรอ็อปเจ็ค

ชื่อคลาส ตัวแปรอ็อปเจ็ค ;

Student student;

การสร้างอ็อปเจ็ค

new ชื่อคลาส(พารามิเตอร์);

new Student();

หรือจะประกาศไว้ในบรรทัดเดียวกันก็ได้

Student student = new Student();

            เมื่อทำการประกาศตัวแปรอ็อปเจ็คถึงตรงนี้ก็จะทำให้มีอ็อปเจ็คที่สร้างขึ้นมามีคุณลักษณะและการทำงานแบบเดียวกับที่ตัวแปรคลาสและเมท็อดได้กำหนดเอาไว้ โดยที่มี student เป็นตัวอ้างอิงอ็อปเจ็คประเภท Student (เวลาเราสร้างคลาสก็จะถือว่าคลาสนั้นเป้นตัวแปรแบบพิเศษเหมือนพวก Array ก็เลยสร้างด้วยการ new ขึ้นมาได้)

การใช้ตัวแปรและเมท็อดประจำอ็อปเจ็ค

            เวลาที่สร้างตัวแปรแปรอ้างอิงอ็อปเจ็คขึ้นมาแล้ว ก็ต้องมีการเรียกใช้ตัวแปรและเมท็อด กล่าวคือ ตัวแปรอ็อปที่สร้างอ็อปเจ็คขึ้นมาจะทำให้อ็อปเจ็คมีรูปร่างหน้าตาและทำงานได้แบบในคลาส เช่น คลาส Student นักเรียน กำหนดว่านักเรียนมีรูปร่างเป็นน้ำหนักกับความสูง มีเมท็อดคือการรับเวลาเข้า-ออกโรงเรียน  พอสร้างตัวชี้อ็อปเจ็ค student ขึ้นมา student ก็จะมีน้ำหนักและส่วนสูงได้ แต่ยังไม่ได้บอกว่าเท่าไหร่ ทีนี้ถ้าจะกำหนดค่าน้ำหนักและส่วนสูงให้ student ก็ต้องกำหนดว่าให้น้ำหนักของ student เป็นเท่าๆไหร่  โดยการใช้เครื่องหมาย . (dot operator)ต่อด้วยตัวแปรประจำอ็อปเจ็ค

ตัวแปรอ้างอิงอ็อปเจ็ค. ชื่อตัวแปรประจำอ็อปเจ็ค

เช่น สมมติจะให้ h เก็บความสูง ก็เขียน student. h (อ่าน . ว่าของ ในที่นี้อ่านว่า h ของ student) student. h = 165 เป็นต้น

ในทำนองเดียวกนหากจะให้ตัวแปรอ็อปเจ็คเรียกเมท็อดก็ให้ใช้ เครื่องหมาย .

ตัวแปรอ้างอิงอ็อปเจ็ค. ชื่อเมท็อด();

 


รูป7-1

สร้างคลาสใหม่ขึ้นมาหนึ่งคลาสประกอบด้วยตัวแปรคลาส 3 ตัวคือ width, height, depth ให้เป็น double พร้อมด้วยเมท็อด volume ที่ทำหน้าที่คำนวณและคืนค่าออกไป สังเกตว่าตัวแปรเป็น double เมื่อเอาคำนวณก็ต้องคืนค่า double ออกไป

 


รูป 7-2

            หลังจากนั้นสร้างขึ้นมาอีก 1 คลาส

บรรทัดที่ 6 : สร้างตัวแปรอ้างอิงอ็อปเจ็ค box1 อ้างอิงตัวแปรประเภท Box

บรรทัดที่ 7 : สร้างตัวแปรอ้างอิงอ็อปเจ็ค box2 อ้างอิงตัวแปรประเภท Box

บรรทัดที่ 9-11 : กำหนดค่าตัวแปรคลาสของอ็อปเจ็ค box1 ด้วย . (dot operator)กลายเป็น width ของ box1

คือ 9

บรรทัดที่ 13-15 : กำหนดค่าตัวแปรคลาสของอ็อปเจ็ค box2 ด้วย . (dot operator) กลายเป็น depth ของ

box2 คือ 12

บรรทัดที่ 17 : ให้แสดงผลออกทางหน้าจอ โดยให้เอาค่าจากการคำนวณของเมท็อด volume มาแสดง ก็ใช้วิธี

เดียวกับตัวแปรคือใช้เครื่องหมาย . เรียกเมท็อด เมื่อทำการ .volume ขึ้นมา width, height, depth ของ box1 จะถูกนำไปคำนวณ

บรรทัดที่ 19 : ให้แสดงผลออกทางหน้าจอ โดยให้เอาค่าจากการคำนวณของเมท็อด volume ของ box 2 มา

แสดง

จะเห็นได้ว่าตอนที่เรียกเมท็อด volume เรียกจากอ็อปเจ็คคนละตัวคือ box1 และ box2 ดังนั้นแม้ในเมท็อด volme จะเขียนว่า width * height * depth แต่ก็จะเป็นค่า width, height, depthที่มาจากคนละค่ากัน ผลลัพธ์ก็จะไม่เหมือนกัน

ผลลัพธ์ที่ได้

 


รูป7-3

            นี่ก็คือตัวอย่างของคลาสและอ็อปเจ็ค คลาส Box ประกอบไปด้วยตัวแปรและมีเมท็อดที่ทำหน้าที่คำนวณ เมื่อสร้างคลาส BoxTest ขึ้นมา ก็สร้างอ็อปเจ็คขึ้นมาโดยที่อ็อปเจ็คนั้นจะใช้ตัวแปรและมีการทำงานแบบที่คลาสกำหนดไว้เลย

Modifier

            มี 2 แบบคือ access modifier กับ non- access modifier แต่จะพูดแค่ access modifier ก็คือสิ่งที่ประกาศไว้เพื่อระบุถึงการถูกเข้าถึง จะประกาศหน้าคลาส เมท็อดหรือตัวแปรคลาส ซึ่งได้แก่ public, protected, private และ package (แต่ protected และ private ใช้หน้าคลาสไม่ได้) ที่ได้เห็นกันมาตั้งแต่ในเมท็อด main ตรงด้านหน้า public static void main(String [] args)

            เป็นส่วนหนึ่งของเรื่อง OOP เรื่อง encapsulation ทำหน้าที่ในห่อหุ้มข้อมูลไม่ให้ถูกเห็นหรือเรียกใช้งานได้จากภายนอก ดังนั้นข้อมูลก็จะไม่ถูกแก้ไข

 


รูป 7-4

อธิบายรูป

public – ถ้าประกาศ public หน้าคลาส เมท็อด ตัวแปรคลาสใด คือคลาสอื่นๆจะสามารถนำไปใช้ได้อย่าง

อิสระ

protected – สามารถใช้ได้กับคลาสเดียวกัน package เดียวกัน และ คลาสที่เป็นแม่ลูกกัน แต่กับ package

อื่นๆจะไม่สามารถเรียกใช้ได้

private – จะปิดการเข้าถึงจากภายนอกทั้งหมด (ใช้กับ recursive ฟังก์ชัน)

 

เกี่ยวกับเมท็อดเพิ่มเติม

            เวลาที่กำหนด modifier เป็น private ให้กับตัวแปรคลาส คลาสอื่นเวลาเรียกตัวแปรนี้เอาไปใช้ก็เปลี่ยนแปลงอะไรไม่ได้ แต่ผู้เขียนโปรแกรมก็ต้องใช้วิธีอื่นสำหรับให้ผู้อื่นเปลี่ยนแปลงค่าของตัวแปรเหล่านั้น โดยใช้วิธี Accessor Method กับ Mutator Method

            Accessor Method ใช้ดึงค่าจากตัวแปรคลาสแล้วส่งออกไปนอกเมท็อด ใช้คำว่า getตามด้วยตัวแปรที่ถูกตั้งเป็น private

Mutator Method เมท็อดสำหรับการเปลี่ยนแปลงแก้ไข ใช้คำว่า set ตามด้วยตัวแปรที่ถูกตั้งเป็น private

 


รูป 7-5

สร้างคลาสหนึ่งขึ้นมา สร้างตัวแปรที่เป็น private คือไม่สามารถเปลี่ยนแปลงค่าที่ให้ได้ แต่ก็ให้เมท็อดสำหรับการเปลี่ยนค่าด้วย

บรรทัดที่ 6 : เมท็อด setNumber สำหรับรับเลขที่เป็น int เข้ามาแล้วไปเก็บไว้ในตัวแปร number

บรรทัดที่ 7 : เมท็อด getNumber สำหรับการส่งค่าของเมท็อดที่แก้ไขแล้วออกไป

 


รูป7-6

บรรทัดที่ 6 : สร้างอ็อปเจ็คเพื่อเรียกใช้สิ่งต่างๆจากคลาส Number

บรรทัดที่ 11 : ให้แสดงค่าของ x ซึ่งเป็นค่าเดียวกับ number ที่ getNumber มา ต้องเป็น 5

บรรทัดที่ 13 : ใช้ เมท็อด setNumber เพื่อเปลี่ยนแปลงค่าให้ให้เป็น 26

บรรทัดที่ 14 : ใช้เมท็อด getNumber อีกครั้งเพื่อแสดงค่าที่เปลี่ยนแปลงแล้วออกมา

ผลลัพธ์


 

 

 



[1] ตั้งตามกฎกาตั้งชื่อของจาวาและควรเป็นคำนามที่มีความหมาย



บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

C Article


C++ Article


Java Article


C#.NET Article


VB.NET Article


Python Article


Golang Article


JavaScript Article


Perl Article


Lua Article


Rust Article


Article


Python


Python Numpy


Python Machine Learning



แผนผังการเรียนเขียนโปรแกรม

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา