黑马程序员技术交流社区

标题: 请问这个输出结果是什么? [打印本页]

作者: 728503435    时间: 2015-4-20 15:19
标题: 请问这个输出结果是什么?
class Person
{
        private int age ;
        public void setAge(int a)
        {if(a>0&&a<130)
        {age=a;
        speak();}
        else
        System.out.println("shabi");
        }
        public int getAge()
        {
        return age;
        }
        void speak()
        {System.out.println("age="+age);
        }
}

class PersonDemo
{
         public static void main(String[] age)
        {
        Person p=new Person();
        p.setAge(999);
        p.speak();
       

        }
}













作者: 静心明德    时间: 2015-4-20 19:11
输出结果如下:
shabi
age=0
这有什么问题吗?

作者: Struggle_168    时间: 2015-4-20 19:20
是啊,有什么问题?
作者: 728503435    时间: 2015-4-20 22:36
静心明德 发表于 2015-4-20 19:11
输出结果如下:
shabi
age=0

那么我把999改成50呢?
作者: 728503435    时间: 2015-4-20 22:40
静心明德 发表于 2015-4-20 19:11
输出结果如下:
shabi
age=0

本来存在疑虑的通过和同学讨论明白了
我把999换成30运算结果是?
作者: Sheng.cn    时间: 2015-4-20 22:47
shabi
age=0
这就是结果
作者: fanxia_2007    时间: 2015-4-20 23:00
728503435 发表于 2015-4-20 22:36
那么我把999改成50呢?

把999换成50,则赋值成功,输出为

age=50
作者: kayaking    时间: 2015-4-20 23:14
130以内就成功赋值了啊
作者: itheima_llt    时间: 2015-4-20 23:23
确实不错,眼前一亮的好文
作者: lclxjzz    时间: 2015-4-20 23:32
大亮的题目!学习了   由于赋值不成功,但是speak()仍然会执行 打印出默认初始化值0
作者: 忘言    时间: 2015-4-21 00:02
楼主真无聊

作者: 横看成岭侧成锋    时间: 2015-4-21 00:26
楼主,有你的
作者: 静心明德    时间: 2015-4-21 00:51
728503435 发表于 2015-4-20 22:36
那么我把999改成50呢?

大于0小于130当然会赋值成功的,怎么?你什么问题?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2