문제

저는 PHP 세계 출신입니다. 게스터와 세터가 무엇인지 설명하고 몇 가지 예를 들어 줄 수 있습니까?

도움이 되었습니까?

해결책

튜토리얼은 실제로 필요하지 않습니다. 읽으십시오 캡슐화

private String myField; //"private" means access to this is restricted

public String getMyField()
{
     //include validation, logic, logging or whatever you like here
    return this.myField;
}
public void setMyField(String value)
{
     //include more logic
     this.myField = value;
}

다른 팁

Java Getters와 Setters는 완전히 일반적인 기능입니다. 그들이 getters 또는 setter를 만드는 유일한 것은 컨벤션입니다. foo를위한 getter는 getfoo라고하며 세터를 setfoo라고합니다. 부울의 경우, getter를 Isfoo라고합니다. 또한 '이름'에 대한 getter and setter 의이 예에서 볼 수 있듯이 특정 선언이 있어야합니다.

class Dummy
{
    private String name;

    public Dummy() {}

    public Dummy(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

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

회원을 공개하는 대신 getters and setter를 사용하는 이유는 인터페이스를 변경하지 않고 구현을 변경할 수 있기 때문입니다. 또한 반사를 사용하여 개체를 검사하는 많은 도구와 툴킷은 getter와 세터가있는 객체 만 허용합니다. Javabeans 예를 들어, 다른 요구 사항뿐만 아니라 게터와 세터가 있어야합니다.

class Clock {  
        String time;  

        void setTime (String t) {  
           time = t;  
        }  

        String getTime() {  
           return time;  
        }  
}  


class ClockTestDrive {  
   public static void main (String [] args) {  
   Clock c = new Clock;  

   c.setTime("12345")  
   String tod = c.getTime();  
   System.out.println(time: " + tod);  
 }
}  

프로그램을 운영하면 프로그램이 메인에서 시작됩니다.

  1. 객체 C가 생성됩니다
  2. 기능 setTime() 객체 c
  3. 변수 time 지나가는 값으로 설정됩니다
  4. 기능 getTime() 객체에 의해 호출됨 c
  5. 시간이 반환됩니다
  6. 그것은 가질 것입니다 tod 그리고 tod 인쇄하십시오

당신은 또한 읽고 싶을 수도 있습니다.Getter와 Setter 방법이 사악한 이유":

getter/setter 방법은 Java에서 일반적이지만 특히 객체 지향 (OO)은 아닙니다. 실제로 코드의 유지 보수성을 손상시킬 수 있습니다. 더욱이, 수많은 getter 및 setter 방법의 존재는 프로그램이 OO 관점에서 반드시 잘 설계된 것은 아니라는 적기입니다.

이 기사에서는 Getters and Setters를 사용해서는 안되는 이유를 설명하고 (그리고 사용할 수있을 때) Getter/Setter 정신에서 벗어날 수있는 디자인 방법론을 제안합니다.

1. 최고의 게터 / 세터는 똑똑합니다.

Mozilla의 JavaScript 예는 다음과 같습니다.

var o = { a:0 } // `o` is now a basic object

Object.defineProperty(o, "b", { 
    get: function () { 
        return this.a + 1; 
    } 
});

console.log(o.b) // Runs the getter, which yields a + 1 (which is 1)

나는 이것들 때문에 이것을 많이 사용했습니다 엄청난. 코딩 + 애니메이션으로 공상을받을 때 사용할 것입니다. 예를 들어, Number 웹 페이지에 해당 번호가 표시됩니다. 세터가 사용되면 A를 사용하여 이전 번호를 새 번호로 애니메이션 트위너. 초기 숫자가 0이고 10으로 설정되면 숫자가 0에서 10으로 빠르게 뒤집어지면 반 초가됩니다. 사용자는이 물건을 좋아하고 만드는 것이 재미 있습니다.

2. PHP의 게터 / 세터

SOF의 예

<?php
class MyClass {
  private $firstField;
  private $secondField;

  public function __get($property) {
    if (property_exists($this, $property)) {
      return $this->$property;
    }
  }

  public function __set($property, $value) {
    if (property_exists($this, $property)) {
      $this->$property = $value;
    }

    return $this;
  }
}
?>

인용 :

다음은 Java에서 Getter와 Setter를 사용하는 가장 간단한 방법을 설명하는 예입니다. 보다 간단한 방식으로 이것을 할 수 있지만 Getter와 Setter는 상속에서 아동 수업에서 부모 수업의 개인 구성원을 사용할 때 특별한 것을 가지고 있습니다. Getter 및 Setter를 사용하여 가능하게 할 수 있습니다.

package stackoverflow;

    public class StackoverFlow 

    {

        private int x;

        public int getX()
        {
            return x;
        }

        public int setX(int x)
        {
          return  this.x = x;
        }
         public void showX()
         {
             System.out.println("value of x  "+x);
         }


        public static void main(String[] args) {

            StackoverFlow sto = new StackoverFlow();
            sto.setX(10);
            sto.getX();
            sto.showX();
        }

    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top