读书人

小弟我是初学java的 发个代码问下别

发布时间: 2012-06-01 16:46:36 作者: rapoo

我是初学java的 发个代码问下,别喷我好么。
我就发点我不懂的地方
get和set我就不复制了麻烦大家知道就好了

Java code
//这是父类public abstract class Drink {    private String name;    private String taste;        public Drink(){            }        public Drink(String name, String taste){        this.name=name;        this.taste=taste;    }        public abstract void drink();      


Java code
//这是子类继承父类的代码public class Beer extends Drink {        public void drink() {        System.out.println("名称:" + this.getName() + "\n口感:" + this.getTaste()                + "\n冰镇饮用口感最好");    }}

Java code
//测试类public class DrinkTest {        public static void main(String[] args) {                Coffee pl = new Coffee();        pl.setName("曼特宁咖啡");        pl.setTaste("醇厚偏苦");        pl.drink();       }}


这样修改了一下
我把子类添加了2个构造方法一个是没有参数的一个有2个参数的。
在测试类new的时候我就直接传了2个参数
Coffee p1 = new Coffee("曼特宁咖啡","醇厚偏苦");
p1.drink();

运行出来的是一样的。

这有什么区别么?和上面的有什么不同 不好之分么?



[解决办法]
说没区别是不是太绝对了?效果一样就行了。。。
Coffee p1 = new Coffee("曼特宁咖啡","醇厚偏苦");//这种是在构造方法中对成员变量进行初始化。
Coffee pl = new Coffee();//先构造一个Coffee实例,name,taste 取默认值null;然后调用set方法赋值。
pl.setName("曼特宁咖啡");
pl.setTaste("醇厚偏苦");
其实,你现在接触的本来就不多,还考虑什么区别,只要功能实现,你成功了一小步了。。等接触多了,这些疑问自行解决,都算不算疑问。


[解决办法]
当然还有误区,就是假如我说那种好,然后你写代码一直用那种,这种情况还不糟糕,因为毕竟对的代码没什么影响。要是遇到比较特殊的情况,就不知道怎么变通了。所以区别有,好坏之分。。。尽量不要这么想。学习的时候能多用不同的表现形式是有好处的,到了工作是用你最顺手的就可以了吧。
[解决办法]
个人认为其实就是方便和不方便的问题
[解决办法]
你这个Coffee 也是继承Drink的吧。。看你上面的代码都没交代…
这两种方法基本没啥区别吧,一个是初始化时候设置数据,一个是对象初始化后再set数据。

现在新手只要能实现功能就好,纠结于这种问题没什么意思,浪费精力。等学的多了自然会明白吧
[解决办法]
探讨
说没区别是不是太绝对了?效果一样就行了。。。
Coffee p1 = new Coffee("曼特宁咖啡","醇厚偏苦");//这种是在构造方法中对成员变量进行初始化。
Coffee pl = new Coffee();//先构造一个Coffee实例,name,taste 取默认值null;然后调用set方法赋值。
pl.setName("曼特宁咖啡");
pl.setTaste("醇厚偏……

[解决办法]
擦,明显是想引用2l的

读书人网 >J2SE开发

热点推荐