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

来源:7-1 什么是 Java 中的封装

_Jack_Han_

2016-01-02 23:02

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修饰的成员变量吗?
望解答,谢谢。


写回答 关注

3回答

  • 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 方法去对其进行修改。

    _Jack_...

    非常感谢!

    2016-01-07 23:03:09

    共 1 条回复 >

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

    方法没参数

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

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

    半成品LY

    他这个应该是set和get方法写错了。都少了一个()。但是为什么不报错我想知道这一点?请问你知道什么原因吗?

    2016-01-10 23:29:36

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530644 学习 · 6091 问题

查看课程

相似问题