问答详情
源自:7-1 什么是 Java 中的封装

private修饰的成员变量能被重新赋值吗?

public class Study{
 private int a=0;
 public void setA{
  a=1;
 }
 public int getA{
 return a;
 }
 public static void main(String[] args){
  Study hello=new Study();
  System.out.println("a:"+hello.a);
 }
}
输出结果是a:0
这么说利用方法也不能改变private修饰的成员变量吗?
望解答,谢谢。


提问者:_Jack_Han_ 2016-01-02 23:02

个回答

  • Its_forever
    2016-01-03 12:43:20
    已采纳

    public class Student{
    	 private int a=0;
    	 public void setA(){
    	  a=1;
    	 }
    	 public int getA(){
    	 return a;
    	 }
    	 public static void main(String[] args){
    		 Student hello=new Student();
    		 hello.setA(); //需要调用Student对象的setA方法。
    		 System.out.println("a:"+hello.a);  //输出结果: a:1
    	 }
    	}

    private 只是将成员变量私有化,不能直接的去修改private 修饰的成员变量。而需要通过调用get/set 方法去对其进行修改。

  • killer00go
    2016-01-11 23:59:50

    方法没参数

  • 产品经理不是经理
    2016-01-02 23:14:11

    setA方法你没有调用为a赋值,当然你的hello.a=0。