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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Demo{
      public static void main(String[]args){
                        Bear b1 = new Bear("小白" , '公');
                         b1.bite()             }
}         


class Bear{
        private String name;
        private char sex;
        
        public Bear(String name,char sex){
                this.name = name;
                this.sex = sex;
        
        }

        public void bite(){
                System.out.println("我是"+sex+"熊--"+name);
        }
}



评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励新同学!以后一句话的回答是没有分的~.

查看全部评分

16 个回复

倒序浏览
可以啊,不用setter和getter赋值.
回复 使用道具 举报
这个用不用。get 和set取决与自己。如果。对程序要求比较严谨一般用。否则相反,效果一样,还有一点是,
回复 使用道具 举报
本帖最后由 潘际昌 于 2013-11-23 15:27 编辑

private私有,类外面不能直接对其访问,但内部可以直接访问,你的bite()方法在Bear内部,可以直接访问属性。需不需要用set和get方法,主要是看你的需求,如果你需要单个改变name或者sex的值,就需要set;如果需要返回其中一个属性,那就要用到get;你这程序的需求只是输出name和sex,完全没必要用set和get.

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 我看到了你的努力~!

查看全部评分

回复 使用道具 举报
这个情况要看自己了,自己代码需要而定,如果不希望去改变值,就不去用get,set
回复 使用道具 举报
潘际昌 发表于 2013-11-23 15:24
private私有,类外面不能直接对其访问,但内部可以直接访问,你的bite()方法在Bear内部,可以直接访问属性 ...

“小白”和“公”不算在类外面设定值么,为什么可以不用set呢
回复 使用道具 举报
 『无』尘 发表于 2013-11-23 15:38
“小白”和“公”不算在类外面设定值么,为什么可以不用set呢

那不是new了对象吗!new了对象,用对象的方法!你也可以用set方法啊!你可以在Bear类里面用个set方法,然后你可以调用 就直接改变name或者sex的值!
回复 使用道具 举报
潘际昌 发表于 2013-11-23 15:45
那不是new了对象吗!new了对象,用对象的方法!你也可以用set方法啊!你可以在Bear类里面用个set方法,然 ...

我是初学者,很多东西不明白,如果问的低级别见笑,我还是不明白为什么new了个对象就可以直接访问private的属性了。。。
回复 使用道具 举报
本题中,当你创建Bear类对象时,会调用你的Bear类中的有参构造new对象,
然后由对象调用其类中定义的方法,所以你的类可以正常运行,
而你说的没设置set和get方法,是因为你的类不需要改变和获取Bear类中的属性,
当你需要改变或获取时,才需要编写对应的set和get方法;
回复 使用道具 举报
 『无』尘 发表于 2013-11-23 15:56
我是初学者,很多东西不明白,如果问的低级别见笑,我还是不明白为什么new了个对象就可以直接访问private ...

不是直接调用,是通过new对象,可以用Bear里面的方法!
回复 使用道具 举报
潘际昌 发表于 2013-11-23 16:03
不是直接调用,是通过new对象,可以用Bear里面的方法!

可以这么理解么?就是类外面通过调用set方法给封装属性赋值,而new相当于在类外面直接调用了构造函数,调用构造方法就直接连接到类内部了,所以不需要用set赋值了。我这么理解对么
回复 使用道具 举报
忄雾飞扬 发表于 2013-11-23 16:02
本题中,当你创建Bear类对象时,会调用你的Bear类中的有参构造new对象,
然后由对象调用其类中定义的方法 ...

“小白”和“公”算是赋值吧?赋值是把原来的空变成“小白”和“公”,这不也算改变么,我新手问得弱智别见怪,嘿嘿
回复 使用道具 举报
调用构造方法时,是初始化赋值,不算改变,每次new对象时,必须有初始化赋值,
回复 使用道具 举报
忄雾飞扬 发表于 2013-11-23 16:17
调用构造方法时,是初始化赋值,不算改变,每次new对象时,必须有初始化赋值, ...

哦,谢谢
回复 使用道具 举报
徐君 中级黑马 2013-11-23 16:43:28
15#
你这构造器一出来就是有姓名跟性别了,就不用再调用set  get方法了。。
回复 使用道具 举报
楼主加油!
回复 使用道具 举报
FFF 金牌黑马 2013-11-24 00:02:33
17#
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
如果没有解决,可能你的问题问得不够清楚。可以重新发问的哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马