我怎样才能在对象变量中实现setter方法?请解释

时间:2017-04-19 10:19:40

标签: java getter-setter

我如何访问beginX& beginY to setBeginX& setBeginY.can我使用setX()方法检索beginX& beginY

public class Line {
   private Point begin;    
   private Point end;

   public Line (Point begin, Point end) {  
      this.begin = begin;
      this.end=end;
   }
   public Line (int beginX, int beginY, int endX, int endY) {
      begin = new Point(beginX, beginY);  
      end =new Point(endX,endY);
   }

   public void setBeginX(int beginX) { 
    // how can i set beginX here.
   }
   public void setBeginY(int beginY) {
   // how can i set beginY here.
   }

1 个答案:

答案 0 :(得分:0)

检查API的Point(参见https://docs.oracle.com/javase/7/docs/api/java/awt/Point.html),您可以看到没有setX()或setY(),但有:

  

setLocation(int x,int y)

     

更改指定的点   地点。包含此方法是为了完整性,与之并行   Component的setLocation方法。它的行为与之相同   move(int,int)。

坐标x和y也是公共的,这意味着您可以直接访问它们。你可以从技术上做到:

public void setBeginX(int beginX) { 
  this.begin.setLocation(beginX, this.begin.getY());
}

但我建议您更改自己的API,以便同时设置x和y。

如果您实际上在询问"如何设置传递给构造函数"的beginX变量,则不能使其成为成员变量。