A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我只知道get set是为了程序的封装,便于其他类读取。但set get方法具体有什么用呢?
比如下面这个程序
class GetSet{

        private int age;
        public void setAge(int a){
                age = a;
        }
        void speak(){
                System.out.println("age="+age);
        }
        public  static void main(String[] args){
        GetSet gs = new GetSet();
        gs.setAge(10);
        gs.speak();

        }
}
没有get方法同样也可以读取出age=10
那get方法又有什么用呢?

6 个回复

倒序浏览
看你需求,又不是一定要有get的.
如果我就是要age值,而不是要他打印出来呢?
回复 使用道具 举报
zhhrai 发表于 2015-7-10 13:49
看你需求,又不是一定要有get的.
如果我就是要age值,而不是要他打印出来呢?

打印的话不是用speak方法就可以吗?get是做什么用的?
回复 使用道具 举报
你可以拿这个值做其他事情的啊...不一定是打印..

但是你非要觉得不要get 那是可以的.这就是看需求.

以后可能需要访问private修饰的变量来做其他的...所以一般加上比较好.
我可以拿这个年龄和别人年龄比较...等等...
回复 使用道具 举报
主要是在一个类里面的私有成员,别的类里面访问不到
所以他自己就对外提供了set和get方法,用来保护他的
私有成员
如:
  1. class Person{
  2.         private String name;
  3.         private int age;
  4.         public Person(){
  5.                
  6.         }
  7.         public Person(String name,int age){
  8.                 this.name=name;
  9.                 this.age=age;
  10.         }
  11.         public void setName(){
  12.                 this.name=name;
  13.         }
  14.         public String getName(){
  15.                 return name;
  16.         }
  17.         public void setAge(int age){
  18.                 this.age=age;
  19.         }
  20.         public int getAge(){
  21.                 return age;
  22.         }
  23.         public static void study(){
  24.                 System.out.println("ѧϰ");
  25.         }

  26. }
复制代码

它对外就提供了设置名字和年龄的方法,这样外面的成员也可以
访问他了
回复 使用道具 举报
老师应该是为了演示才加上void speak()方法的
回复 使用道具 举报
一般就是为了避免让人可以直接访问成员变量,会把成员变量私有化  提供方法来访问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马