class Person
{
private int age;

public void setAge(int a)
{
age=a;
}
public int getAge()
{
return age;
}
void speak()
{
System.out.println("年龄:"+this.age);
}
}
class PersonDome
{
 public static void main(String[] args)
{
Person p=new Person();
//p.age=20;
//p.setAge(20);
//p.getAge();
p.speak();
}

}为什么getAge里没有参数,而setAge里面有参数啊
还有就是如何引用getAge这个函数呢?

解决方案 »

  1.   

    这问题问的都不知道怎么回答了。
    有没有参数是根据业务需要来的。
    一般都是set有参数,get没参数。当然例外的也多了。Person p=new Person();
    p.setAge(20);
    p.getAge(); // 这句不就是调用getAge这个函数了么。还有你的p.age=20;是不对的,
    因为age的访问权限是private,在PersonDome里是看不到的。
      

  2.   

    顾名思义,setAge() 是设置age属性的值。getAge()是获得age属性的值。所以在设置的时候要告诉方法,设置成多少。
    需要用的时候就直接用。比如:
    输出对象p的年龄:
    System.out.println("对象p的年龄是  "+p.getAge());
      

  3.   

    谢谢各位好心人。1楼的 那我该如何用getAge这个函数呢 直接在主函数main中打印吗??举一个例子嘛  就拿我那个例子就行。。
    如果我就想打出一个人的年龄是15岁。只调用getAge那个函数该怎么做呢
      

  4.   

    只调用getAge那个函数?那是不行的,你都没有setAge,只调用getAge的话,那就返回默认的初始值0了,不会是15的。除非你先p.setAge(15);
    把Person里的age设置成15,然后再调用getAge返回你刚刚设置后的15.或者你就直接在Person里private int age = 15;
    这样不用set,直接get就是15
      

  5.   

    那这两个函数到底该怎么用呢??麻烦你举个例子嘛  
    实在不好意思 我是新手 而且还是自学 刚刚学到面向对象这,然后在这里就出了问题。
    以前定义函数不是都有参数的嘛 到这里就糊涂了 我就不明白如果都调用不到getAge这个函数为啥还建立这个函数呢 
      

  6.   

    简单就是读写分工,对Java来讲,各司其责是很重要的,setXXX:写,getXXX:读,getAge就是预先提供读的功能啦
      

  7.   


    其实就是javaBean的格式。
      

  8.   

    因为 getAge() 你是要去到age 你都不知道age是什么值 所以  应该设置为没有参数
    而 setAge() 是你要设置age 你知道 age 是什么值 应该设置为有参数
    建立这几个函数是为了其他类调用取得参数值,就像你的银行卡,人家跟你要钱,你不可能给人用你的银行卡自己去取,不安全。所以你自己取好了,等别人问你要了你就给。
      

  9.   

    因为getAge()这个方法是用来返回给你age的值的,它的用途只是返回给你值。
    而setAge()是让你传入一个参数,然后把这个参数的值设为age的值。就像你对电脑说:“把age设置成另一个值”,电脑会问:“设置成哪个值?”你说:“设置成20”。这个20就是你传给setAge的参数。
    但是如果使用getAge,你只用说“把age的值是多少告诉我”,电脑就会告诉你值了,不用你传入任何参数的。希望你能理解!
      

  10.   

    JavaBean的思想
    getXXX就是取出XXX
    setXXX就是传入XXX
      

  11.   

    你可以这样理解。set是什么? 中文意思就是设置。所以setxxx 这个方法就是有关设置的方法get是什么? 中文意思就是获取。所以getxxx 这个方法就是有关获取的方法为什么要setxx getxx 方法呢? 因为private 这个访问权限。如果要调用private定义的变量,那么就得使用getxx setxx 方法了。为什么要使用?这是规定,硬伤。
      

  12.   

    getAge()是你在private age中获取age的值,所以不需要参数(因为你上面的类中该方法没给形参,即不是写成getAge(int a)),而setAge(int a)是你赋值给private age中的age值(这时你就要给实参了)。所以你想设定age的值是15时,你必修调用setAge(15)把15赋值给age,这时相当age=15。因为是public方法,要引用,就直接调用new该类的方法(就如你上面的p.getAge()).
      

  13.   

    Java提倡 用方法改变成员变量。也就是set()和get()方法。
    楼主别想那么多,它们就是形象地描述设置和获取成员变量而已。
    直接用对象调用即可。先设置再获取。
      

  14.   

    你是说你哪不懂呢?你告诉我你主要是哪里不懂,就好给你解答了!我再说一点哈,getAge和setAge这两个方法,这个名字就可以随便取的,并不是java语法上规定这么取的。只是因为良好的编程习惯,大家习惯于都取这两个名字!
      

  15.   

    这样调用是可以,但你得到的age的值是10了(也就是你在person类中预先设定好的age值了)。