โค้ดยิม/จาวาบล็อก/สุ่ม/Accessors และ Mutators ใน Java
John Squirrels
ระดับ
San Francisco

Accessors และ Mutators ใน Java

เผยแพร่ในกลุ่ม
ก่อนที่เราจะดำ ดิ่ง สู่แนวคิดนี้ คุณต้องทราบคลาสและการห่อหุ้มใน Java

การห่อหุ้มใน Java

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

accessors และ mutators ใน Java คืออะไร?

อุปกรณ์เสริม

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

ไวยากรณ์

เราใช้คีย์เวิร์ด “ get ” สำหรับ Java accessors ในการเข้าถึงตัวแปร “ name ” เราสามารถใช้ getter getName()ต่อไปนี้ สำหรับตัวอย่างวิธีการเข้าถึง ให้ดูต่อไปนี้
public class Student {

	private String name;

	public String getName() {
		return name;
	}
}
โปรดทราบว่า getter แต่ละตัวมีคีย์เวิร์ด " get " ก่อนชื่อตัวแปรในลายเซ็นเมธอด และประเภทการส่งคืนจะเหมือนกับของตัวแปรที่จะส่งคืน เนื่องจากตัวแปร “ name ” เป็นประเภท “ String ” ดังนั้นเมธอด getter/accessor จึงส่งคืนค่า “ String ” ด้วย

มิวเตเตอร์

วิธี mutator ใน Java ขับเคลื่อนโดยคำว่า "mutate" ซึ่งหมายถึงการแก้ไขอย่างแท้จริง Mutators อนุญาตให้ผู้ใช้ตั้งค่า / เปลี่ยนแปลงค่าของตัวแปรส่วนตัวของวัตถุคลาส ในบริบทการเขียนโปรแกรมเชิงวัตถุ เมธอด “ set ” หรือ “ setters ” เรียกอีกอย่างว่ามิวเตเตอร์ ตัวตั้งค่าอำนวยความสะดวกในการห่อหุ้มเนื่องจากสมาชิกข้อมูลส่วนตัวไม่สามารถแก้ไขได้โดยตรง ดังนั้น setter method/mutators จะถูกใช้เพื่ออัพเดตค่าของตัวแปรนอกขอบเขตคลาส

ไวยากรณ์

สำหรับการกลายพันธุ์ เราใช้คีย์เวิร์ด " set " setter แต่ละตัวถูกกำหนดโดยคีย์เวิร์ด “set” ตามด้วยชื่อของตัวแปรที่จำเป็นต้องกลายพันธุ์ ที่นี่เราใช้ setter setName()ที่รับตัวแปรประเภทสตริงเป็นพารามิเตอร์
public class Student {

	private String name;

	public void setName(String name) {
		this.name = name;
	}
}

ทำไมเราต้องมีตัวเข้าถึงและตัวกลายพันธุ์?

เราต้องการ getters และ setters หรือ accessors และ mutators เพื่อปกป้องข้อมูลที่ละเอียดอ่อนในคลาส ข้อมูลได้รับการปกป้องจากการใช้ที่ผิดกฎหมายโดยใช้วิธีการมาตรฐานเหล่านี้ ยิ่งไปกว่านั้น ชุดข้อมูลในมิวเตเตอร์ยังสามารถตรวจสอบได้หากตรงตามข้อกำหนดทั้งหมดของโปรแกรม

ตัวอย่าง Accessor และ Mutator

โดยใช้คลาสนักเรียนด้านล่าง มาดูตัวอย่างวิธี accessor และ mutator กัน

ตัวอย่าง

import java.util.Arrays;

public class Student {

	private String name;
	private Integer ID;
	private String DOB;
	private double GPA;
	private String[] courses;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getID() {
		return ID;
	}

	public void setID(Integer iD) {
		this.ID = iD;
	}

	public String getDOB() {
		return DOB;
	}

	public void setDOB(String dOB) {
		this.DOB = dOB;
	}

	public double getGPA() {
		return GPA;
	}

	public void setGPA(double gPA) {
		this.GPA = gPA;
	}

	public String[] getCourses() {
		return courses;
	}

	public void setCourses(String[] courses) {
		this.courses = courses;
	}

	public static void main(String[] args) {

		Student student1 = new Student();

		System.out.println("Student Bio [ Before using Accessors & Mutators ]");

		// calling accessor methods
		System.out.print("Name: " + student1.getName());
		System.out.print("\tID: " + student1.getID());
		System.out.print("\tGPA: " + student1.getGPA());
		System.out.print("\tDOB: " + student1.getDOB());
		System.out.println("\tCourses: " +  Arrays.toString(student1.getCourses()));

		// calling mutator methods
		student1.setName("Alex Coy");
		student1.setID(3115);
		student1.setGPA(2.79);
		student1.setDOB("08/08/1998");
		String[] courses = { "Object Oriented Programming", "Cryptography", "Photography", "Network Security" };
		student1.setCourses(courses);

		System.out.println("\nStudent Bio [ After using Mutators & Accessors ]");

		// calling accessor methods
		System.out.print("Name: " + student1.getName());
		System.out.print("\tID: " + student1.getID());
		System.out.print("\tGPA: " + student1.getGPA());
		System.out.print("\tDOB: " + student1.getDOB());
		System.out.println("\tCourses: " + Arrays.toString(student1.getCourses()));
	}
}

เอาต์พุต

ประวัตินักศึกษา [ ก่อนใช้ Accessors & Mutators ] ชื่อ: null ID: null GPA: 0.0 DOB: null หลักสูตร: null Student Bio [ หลังใช้ Mutators & Accessors ] ชื่อ: Alex Coy ID: 3115 GPA: 2.79 DOB: 08/08/1998 หลักสูตร: [การเขียนโปรแกรมเชิงวัตถุ การเข้ารหัส การถ่ายภาพ ความปลอดภัยเครือข่าย]

บทสรุป

นี่คือบทนำและตัวอย่างสั้นๆ ของ accessors และ mutators ใน Java คุณควรสร้างตัวอย่างตัวอย่างของคุณเองและทดสอบวิธีการเหล่านี้ด้วยตัวคุณเอง ในแบบฝึกหัดถัดไป คุณสามารถหาวิธีเพิ่ม getters และ setters โดยอัตโนมัติโดย IDE ค้นหาและแจ้งให้เราทราบ!
ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ