วันจันทร์ที่ 9 พฤศจิกายน พ.ศ. 2558

Encapsulation

ตัวอย่างโค๊ต 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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Moodle 19+Font TH

Moodle 19+Font TH ดาวโหลด ดาวโหลด