Java: Как изменить значения переменных экземпляра с помощью методов - PullRequest
0 голосов
/ 26 мая 2018

Я совершенно новичок в Java, и я очень признателен, если смогу получить ссылку на другой поток, который, вероятно, уже охватывал этот вопрос новичка.

Но как вы можете изменить значение переменной экземпляра с помощьюметод?

public class Example{
    private static int x = 1;
    private static String y;
    public static void setString(){
        if (x > 0){y = "Message A.";}
        else{y = "Message B.";}
    }
    public static void main(String args[]){
        System.out.print(y);         
    }
}

Ответы [ 4 ]

0 голосов
/ 26 мая 2018

Чтобы изменить значение переменной экземпляра с помощью метода, вам необходимо использовать методы «setter» и «getter».Пример:

public class ABC
  {
   private String name; // instance variable

   // method to set the name in the object       
  public void setName(String name)              
  {                                             
     this.name = name; // store the name        
  }                                             

  // method to retrieve the name from the object   
  public String getName()                          
  {                                                
     return name; 
  }                                                


   public static void main(String args[]){
    ABC b = new ABC();
   Scanner input = new Scanner(System.in);
   String name = input.nextLine(); // read a line of text
   b.setName(name); // put name in ABC  
   System.out.println("NAME IS "+ b.getName());

}

} 
0 голосов
/ 26 мая 2018

Вам необходимо получить доступ к значению статической переменной, используя сам класс.Ниже код может дать вам представление.Функция print - это нестатическая функция, вызываемая экземпляром объекта e.

      public class Example{
        private static int x = 1;
        private static String y;
        public static void setString(){
            if (x > 0){y = "Message A.";}
            else{y = "Message B.";}
        }
        public void print(){
            System.out.println("x "+x);
            System.out.println("y "+y);

        }
        public static void main(String args[]){
            System.out.print(y);
            Example.x = 0;
            Example e = new Example();
            Example.setString();
            e.print();

            }

    }
0 голосов
/ 26 мая 2018

Чтобы изменить значение переменной экземпляра, вам нужно использовать метод экземпляра, и такой метод, который изменяет состояние экземпляра, называется «сеттером» или мутатором.Например:

public class Example {
    private static int x = 1;

    private int a; // Instance variable
    private static String y;
    public static void setString(){
        if (x > 0){y = "Message A.";}
        else{y = "Message B.";}
    }
    public void setA(int a) { // This is a mutator
        this.a = a; // Sets the value of a to the specified 'a'
    }
    public void getA() { // This is an accessor
        return a; // we return a
    }

    public static void main(String args[]){
        Example k = new Example();
        k.setA(4);
        System.out.println(k.a);         
    }
}
0 голосов
/ 26 мая 2018

y является статической переменной, поэтому она принадлежит классу (но не экземпляру класса), поэтому она доступна из статического метода main.x == 1 => x > 0 следовательно y = Message A.

public static void main(String args[]){
    setString();
    System.out.print(y);         
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...