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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨增坤 于 2013-10-8 21:08 编辑

class Person
{
         private String name;
         private int age;

         public void setName(String name)
        {
                         this.name=name;
                         tell();
        }
        
        public void setAge(int age)
        {
                this.age=age;
                tell();
        }

        public int getAge()
        {
                return age;
        }


         public void tell()
        {
                System.out.println("name="+name+" ,age="+age);
        }
}

class PersonDemo
{
        public static void main(String[] args)
        {
                Person p = new Person();
                p.setName("zhangsan");
                p.getAge(23);
               
        }
}

现在这个代码,运行编译都是没有问题的,但是我想用getAge来实现这个年龄,我应该怎么做,我直接p.getAge 就出现了如下错误

QQ截图20131008195106.png (24.13 KB, 下载次数: 69)

QQ截图20131008195106.png

评分

参与人数 1技术分 +1 收起 理由
To + 1 神马都是浮云

查看全部评分

11 个回复

倒序浏览
public void setAge(int age)
        {
                this.age=age;
                tell();
        }

        public int getAge()
        {
                return age;
        }

   p.getAge(23);  你这个括号中的23是神马呀,看看方法定义,是没有形参的,直接p.getAge()就行了,这是获取age的方法,返回一个int,不是设置age的方法

评分

参与人数 1技术分 +1 收起 理由
To + 1 淡定

查看全部评分

回复 使用道具 举报
我说楼主,你的getAge中根本就没有参数,jvm找不到你要的那个getAge方法
回复 使用道具 举报
  p.getAge(23);这句话 怎么编译过去的》?  getAge()不用传入值吧

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
class PersonDemo
{
        public static void main(String[] args)
        {
                Person p = new Person();
                p.setName("zhangsan");
                p.getAge();
               
        }
}
这样才对嘛,要不你就使用重载

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
应该是
  1. p.setAge(32);
  2. p.getAge();
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
应该先set在get呀,set是向里面传值的,没有值是没法获取的。
Person p=new Person();
p.setName("zhangsan");
p.setAge(23);

p.tell();

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
喝龙血的我 发表于 2013-10-8 20:06
p.getAge(23);这句话 怎么编译过去的》?  getAge()不用传入值吧

这个编译是错误的,错误提示就是那张截图,我没说清楚呢,我意思是setAge是正确的
回复 使用道具 举报
蔚蓝天色 发表于 2013-10-8 20:06
class PersonDemo
{
        public static void main(String[] args)

那这样的话,我的返回值就是默认的0了,有没有什么办法我可以用getAge得到我想要的年龄呢?
回复 使用道具 举报

这样的话,是不是那个p.getAge可以省略啊,第一步就可以得出我想要的结果了。可以直接用getAge得到我想要的数据吗?
回复 使用道具 举报
你需要的不是你定义的函数,是一个未定义的重载函数.  里面要传入参数的.所以你这样是错误的.
还有,你年龄还没有传入呢.怎么获得????就算获得了也是错误的.
回复 使用道具 举报
getAge方法你也没写需要参数啊...
Person p = new Person();
p.setName("zhangsan");
//我想你的意思应该是设置age
p.setAge(23);
//然后再调用get方法获得
p.getAge();

如果你不调用setAge(int)方法,直接调用getAge()方法,那么返回的数据age=0,因为你木有给它赋值,它默认为0.

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马