ค้นหาเว็บไซต์

แนวทางเชิงวัตถุของการเขียนโปรแกรม Java และการห่อหุ้ม - ตอนที่ 5


ตั้งแต่เริ่มต้นซีรีส์นี้ (และก่อนหน้านั้น) คุณรู้ว่า Java เป็นภาษาการเขียนโปรแกรมเชิงวัตถุ ภาษาการเขียนโปรแกรมเชิงวัตถุนั้นขึ้นอยู่กับแนวคิดของ “วัตถุ ” ซึ่งมีข้อมูลเป็นคุณลักษณะในวิธีการ

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

ตัวอย่างเช่น,

เครื่อง A อาจขับเคลื่อนด้วย Debian และมี RAM ขนาด 8GB ในขณะที่ เครื่อง B สามารถติดตั้ง Gentoo ด้วย RAM ขนาด 4GB นอกจากนี้ยังเห็นได้ชัดว่าการจัดการเครื่องที่ติดตั้ง Gentoo ต้องใช้ความรู้เพิ่มเติม - พฤติกรรมที่กระทำต่อสถานะ วิธีการที่นี่ใช้ค่าตัวแปรอินสแตนซ์

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

ทุกอินสแตนซ์ของคลาสมีวิธีการเดียวกัน แต่เป็นไปได้ที่อินสแตนซ์ทั้งหมดจะมีพฤติกรรมต่างกัน

คลาส OS มีตัวแปรอินสแตนซ์ 3 ตัว ได้แก่ ชื่อ OS, ประเภท OS, หมวดหมู่ OS

OS
OS_Name
OS_Type
OS_Category
Boot()
Reboot()
scan()

วิธีการ Boot() จะบูตระบบปฏิบัติการหนึ่งซึ่งแสดงด้วยชื่อระบบปฏิบัติการสำหรับอินสแตนซ์นั้น ดังนั้น หากคุณ boot() บนอินสแตนซ์หนึ่ง คุณจะบูตเข้าสู่ Debian ในขณะที่อีกอินสแตนซ์หนึ่ง คุณจะบูตเข้าสู่ Gentoo รหัสวิธีการยังคงเหมือนเดิมไม่ว่าในกรณีใด

Void Boot() 
	{
	bootloader.bootos(OS_Name);
	}

คุณทราบแล้วว่าโปรแกรมเริ่มทำงานหลังจากเมธอด main() คุณสามารถส่งผ่านค่าไปยังวิธีการของคุณได้

ตัวอย่างเช่น คุณต้องการแจ้งระบบปฏิบัติการว่าบริการใดบ้างที่จะเริ่มเมื่อบู๊ตเครื่องเป็น:

You are already aware that the program starts to execute just after the main() method. You can pass values into you method. For example you would like to tell you OS what services to start at boot as:
OS.services(apache2);

สิ่งที่คุณส่งผ่านไปยังวิธีการต่างๆ เรียกว่า อาร์กิวเมนต์ คุณสามารถใช้ตัวแปรที่มีประเภทและชื่อภายในวิธีการได้ สิ่งสำคัญคือต้องส่งค่าที่มีพารามิเตอร์หากวิธีการรับพารามิเตอร์

OS deb = debian();
deb.reboot(600);

ที่นี่วิธีการรีบูตบนระบบปฏิบัติการส่งค่า 600 (เครื่องรีบูตหลังจาก 600 วินาที) เป็นอาร์กิวเมนต์ของวิธีการ จนถึงตอนนี้เราได้เห็นวิธีการคืนค่า void อยู่เสมอ ซึ่งหมายความว่าจะไม่ส่งคืนสิ่งใดให้คุณเลย ง่ายๆ ดังนี้:

void main()
	{
	…
	…
	}

อย่างไรก็ตาม คุณสามารถขอให้คอมไพเลอร์ของคุณได้รับสิ่งที่คุณต้องการอย่างแน่นอน และคอมไพเลอร์ของคุณจะไม่ส่งคืนประเภทที่ผิดให้คุณ คุณอาจจะชอบ:

int Integer()
	{
	…
	…
	return 70;
	}

คุณสามารถส่งค่ามากกว่าหนึ่งค่าไปยังวิธีการได้ คุณสามารถทำได้โดยการเรียกวิธีพารามิเตอร์สองวิธีแล้วส่งไปยังอาร์กิวเมนต์ หมายเหตุประเภทตัวแปรและประเภทพารามิเตอร์จะต้องตรงกันเสมอ

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}
ประกาศและเริ่มต้นตัวแปรอินสแตนซ์

1. เมื่อคุณไม่ทราบค่าที่จะเริ่มต้น

int a;
float b;
string c;

2. เมื่อทราบค่าที่จะเตรียมใช้งานแล้ว

int a = 12;
float b = 11.23;
string c = tecmint;

หมายเหตุ: ตัวแปรอินสแตนซ์มักจะสับสนกับตัวแปรภายในเครื่อง อย่างไรก็ตาม มีเส้นบางมากระหว่างตัวแปรเหล่านั้นที่ต้องแยกแยะ

3. ตัวแปรอินสแตนซ์จะถูกประกาศภายในคลาส ซึ่งแตกต่างจากตัวแปรท้องถิ่นที่ถูกประกาศภายในวิธีการ

4. ไม่เหมือนกับตัวแปรอินสแตนซ์ ตัวแปรท้องถิ่นจะต้องเริ่มต้นก่อนจึงจะสามารถใช้งานได้ คอมไพลเลอร์จะรายงานข้อผิดพลาดหากคุณใช้ตัวแปรท้องถิ่นก่อนที่จะเตรียมใช้งาน

การห่อหุ้ม

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

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

นั่นคือทั้งหมดที่สำหรับตอนนี้. เชื่อมต่อไปยังส่วนถัดไปของ Java Series “คลาสและอ็อบเจ็กต์ใน Java และสร้างอ็อบเจ็กต์แรกของคุณใน Java ” ในขณะที่ฉันกำลังดำเนินการอยู่ หากคุณชอบซีรีส์และโพสต์แจ้งให้เราทราบในข้อเสนอแนะ