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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 jacktang 于 2012-1-5 19:29 编辑

昨晚我在复习看毕老师讲题的时候,发现貌似有一个错误的问题,现在还不太确定,麻烦大家帮忙判断..

在画图的时候讲

大家注意从入口看执行到setAge时,就已经把speak();执行一边了,为什么下面还要一个p.speak();
r如果是我误解了,请学长帮忙告知一下几点
我能不能只让p.speak();执行一次;是我在调用p.speak();时执行.
而不是执行到setAge时执行...


是在             毕老师java视频的第五天-面向对象封装(private)
代码是这样的
class Person
{
        private int age;
        public void setAge(int a)
        {
        if(a>0&&a<130)
                {
                age=a;
                speak();
                }
        else
                System.out.println("feifa age");
        }
        public int getAge()
        {
        return age;
        }
        void speak()
        {
                System.out.println("age="+age);
        }
}
class PersonDemo
{
        public static void main(String[]args)
        {
        Person p=new Person();
        //p.age=-20;
        p.setAge(+40);
        p.speak();
        }
}

10 个回复

正序浏览
李盈科 发表于 2012-1-5 08:09
我看了一下视频,p.speak();这条语句是毕老师自己故意加上的,目的就是让你你看打印了哪个对象的age,也就 ...

哦  明白
回复 使用道具 举报
胡威 黑马帝 2012-1-5 09:35:40
10#
当然可以啊,运行你给出的代码的结果是age=40  age=40,两个speak()中你任意去掉一个都行。已经验证
回复 使用道具 举报
你这图也太抽象了点啊........
回复 使用道具 举报
我看了一下视频,p.speak();这条语句是毕老师自己故意加上的,目的就是让你你看打印了哪个对象的age,也就是打印了P对象的age。是故意为之~不想调用setAge()时调用speak的话就去掉不就完了。
回复 使用道具 举报
lyj749 发表于 2012-1-4 23:03
毕老师现在给我们班上课呢正好,如果有错误完了我直接去告诉他但是你这也看不见啊。。。 ...

我把代码写上了
回复 使用道具 举报
颜小飞 发表于 2012-1-4 22:10
根本就看不到内容

你在看看
回复 使用道具 举报
李盈科 发表于 2012-1-4 22:08
你的图是黑的。。。。能不能把代码写出来或者重截图。

你在看看
回复 使用道具 举报
毕老师现在给我们班上课呢正好,如果有错误完了我直接去告诉他{:soso_e113:}但是你这也看不见啊。。。
回复 使用道具 举报
根本就看不到内容
回复 使用道具 举报
你的图是黑的。。。。能不能把代码写出来或者重截图。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马