2013-12-19 2 views
-5

Большинство из них думает, как в «Setx() & GetX()» X это имя (мое намерение вместо X можно взять любое имя)
Ниже мой код:.Есть ли у сеттеров более одного аргумента? Если это так полезно?

public int getX() { 
    return ---; 

} 
public void setX(some X ,some Y) 
{ 
} 

Здесь я сомневаюсь, как установить два значения в setX(). и как я могу получить эти значения. Является ли это возможным?

+0

Ну, там у вас есть языковая конструкция и условная вещь. Сети, по соглашению, просто принимают один аргумент. Однако методы могут иметь много. Таким образом, всякий раз, когда имеет смысл собирать вещи, сделайте это, но, возможно, используйте лучшее имя для метода, который не указывает, что это сеттер (который по-прежнему является всего лишь методом). – Matthias

ответ

1

Сеттер обычно ссылается на метод, который устанавливает значение одной переменной класса. Поэтому ему нужен только один параметр. Если вам нужен метод, который задает значения двух переменных класса, вы можете это сделать, конечно, но обычно это не означает, что установщик.

Основываясь на дополнительном вопросе, заданном OP, я думаю, ему нужно что-то вроде этого.

public class Test001 { 

     private int x; 

     private int y; 

     public int getX() { 
      return x; 
     } 

     public void setX(int x) { 
      this.x = x; 
     } 

     public int getY() { 
      return y; 
     } 

     public void setY(int y) { 
      this.y = y; 
     } 

     public void setXY(int x, int y) { 
      setX(x); 
      setY(y); 
     } 

     public int[] getXY() { 
      return new int[] { x, y }; 
     } 

    } 
+0

Если я установил два значения для моего метода setX(), как я могу получить эти значения – Prabha

+0

@Prabha Сохраните их в двух отдельных переменных класса. Затем вы их там храните, и вы можете их получить. –

+0

@Prabha См. Обновленный ответ. –

0

Обычно мы используем setter для заданного значения для переменных класса. Это обычное применение. Но если вы хотите проанализировать два значения (два параметра), вы можете разобрать, так как setter также является методом.

public int[] getXY() { 
    return new int[]{x,y}; // return both x and y 

} 

public void setXY(int x, int y) { // set both x and y 
    this.x = x; 
    this.y = y; 
} 
+0

Как я могу получить эти значения – Prabha

+0

@Prabha вы можете сделать что-то вроде выше –

+0

Спасибо вам большое. есть ли какое-либо использование во время работы с веб-приложениями – Prabha

0

сеттер относится к установке значения одной переменной экземпляра (конвенции); не переменная класса, как было сказано некоторыми из предыдущих комментариев. Существует различие между переменными экземпляра и класса. Соглашение состоит в том, чтобы иметь сеттер для каждой переменной экземпляра, которая нуждается в доступе или настройке. Это концепция инкапсуляции свойств класса, при которой доступ к свойствам класса или объекта во время выполнения защищен от других объектов в программе.

Вы используете геттеры для получения значений этих свойств.

0

Если вы назовете свой метод setX, а также установите Y, вы скоро столкнетесь с некоторыми путаницами (ошибки). Одна вещь, которую вы можете использовать

public void setXAndY(some X, some Y) { // not recommended 
    this.X = X; 
    this.Y = Y; 
} 

И о получении более чем одного значения используйте массив или список.

public some[] getXAndY() { 
    return new some[]{ this.X, this.Y }; 
} 
+0

Я имею в виду setX(). Вместо X вы можете взять любое имя не так, как X – Prabha

Смежные вопросы