ตัวอย่างโค๊ต java
Encapsulation ก็คือ รวม data และ method ทั้งหลายที่เกี่ยวข้องกัน และทำงานร่วมกันเอาไว้ใน object หนึ่งๆ นอกจากนี้แล้วยังมีการซ่อนรายละเอียดของการทำงานของ method ต่างๆใน object เอาไว้ และไม่ให้ object อื่นๆสามารถที่จะเข้าไปแก้ไข data ได้โดยตรง การติดต่อสื่อสารกันระหว่าง object จะติดต่อกันผ่าน interface ที่กำหนดเอาไว้ ซึ่งตรงนี้จะก่อให้เกิดความสะดวกในการจัดการโค้ดต่างๆครับ เช่นถ้าเราเปลี่ยนลักษณะการเขียนโค้ดใน class ที่ encapsule เอาไว้ การเปลี่ยนของเราจะไม่ไปกระทบกับ class อื่นๆ
ตัวอย่าง 1 class ที่มี encapsule
public class Test{
private int data = 10;
public void setData(int data){
this.data = data;
}
public int getData(){
data = doSomthing();
return data;
}
private int doSomething(){
data = data * 5;
return data;
}
จากโค้ดข้างบน method doSomething() ให้เป็น public
public class Test{ private int data = 10; public void setData(int data){ this.data = data; } public int getData(){ data = doSomthing(); data = doAnotherThing(); return data; } public int doSomething(){ data = data * 5; return data; } public int doAnotherThing(){ data = data + 5; return data; } }
ตัวอย่างที่ 2
public class EncapsulationDemo{
private int ssn;
private String
empName;
private int
empAge;
//Getter and
Setter methods
public int
getEmpSSN(){
return ssn;
}
public String
getEmpName(){
return
empName;
}
public int
getEmpAge(){
return empAge;
}
public void
setEmpAge(int newValue){
empAge =
newValue;
}
public void
setEmpName(String newValue){
empName =
newValue;
}
public void
setEmpSSN(int newValue){
ssn =
newValue;
}
}
public class EncapsTest{
public static void
main(String args[]){
EncapsulationDemo obj = new EncapsulationDemo();
obj.setEmpName("Mario");
obj.setEmpAge(32);
obj.setEmpSSN(112233);
System.out.println("Employee Name: " + obj.getEmpName());
System.out.println("Employee SSN: " + obj.getEmpSSN());
System.out.println("Employee Age: " + obj.getEmpAge());
}
}
ผลการรันโปรแกรมที่ได้ คือ
Employee Name: Mario
Employee SSN: 112233
Employee Age: 32
ไม่มีความคิดเห็น:
แสดงความคิดเห็น