Java:如何使用方法更改实例变量的值

时间:2018-05-26 05:37:24

标签: java oop static

我是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 :(得分:2)

y是静态变量,因此它属于类(但不属于类实例),因此可以从静态方法main访问它。 x == 1 => x > 0因此y = Message A.

public static void main(String args[]){
    setString();
    System.out.print(y);         
}

答案 1 :(得分:1)

要使用方法更改实例变量的值,您需要使用" 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());

}

} 

答案 2 :(得分:0)

您需要使用类本身访问静态变量的值。下面的代码可能会给你一个想法。函数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();

            }

    }

答案 3 :(得分:0)

要更改实例变量的值,您需要使用 实例方法和改变状态的方法 实例称为“setter”或mutator。例如:

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);         
    }
}