当前位置: 代码迷 >> J2SE >> 小弟我是初学java的 发个代码问下,别喷小弟我好么
  详细解决方案

小弟我是初学java的 发个代码问下,别喷小弟我好么

热度:35   发布时间:2016-04-24 00:54:24.0
我是初学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的
  相关解决方案