【直接送分】你如何理解实体类的构造方法呢? 本帖最后由 u012041238 于 2014-05-12 16:12:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,你得理解Java“构造函数”的概念,在这里就不多说了。可以参看:http://zhidao.baidu.com/link?url=JNBTZ15XvwnTj8J0qMg8-P433WfYIX-DZXooh7lZEPAREJzePAGpQ7VLDk8GiLQ_g928Rk2oY5gXnFzEZJ0B1q具体回答你的问题:1. 这些构造方法有什么用呢?在第一段代码里有空的构造函数Commodity()和非空的构造函数Commodity(String name, Integer count, Double price,String re),意思就是,在你要用到Commodity这个类的时候,你就要初始化它,怎么初始化?就是通过new出来,比如Commodity commodity = new Commodity ();那此时的commodity 的各个属性都是默认的值。但是如果用户通过页面,选择了某个商品,比如此商品的各个值是:name="iPhone"count=1price=5800.0re="苹果5S"那此时我就可以通过Commodity commodity = new Commodity ("iPhone",1,new Double(5800),"苹果5S");这样来初始化commodity 了,此时commodity的各个值就是你传进去的参数了。之后你就可以通过commodity .getName();等得到各个属性的值进行处理:if("iPhone".equals(commodity .getName()){ syso("这是苹果公司的产品");}等当然,这种情况你也同样可以Commodity commodity = new Commodity ();这样初始化,只不过,初始化之后你还要commodity.setName("iPhone");commodity.setCount(1);...来分别设置属性,太繁琐所以,构造函数的目的:创建对象同时,进行你想要的操作,包括初始化信息,检查,赋值等。如:public Commodity(String name, Integer count, Double price, String re) { this.name = name;//赋值 this.count = count; this.price = price; this.re = re; init();//初始化, 具体方法另外实现 check();//检查, 具体方法另外实现 }2. 这样又有什么不同呢?Java所有类继承Object类,因你的Commodity类没继承其他类即默认继承Object,所以public Commodity() { super(); }的意思就是:使用父类的构造方法,即:public Commodity() { new Object(); }这样和public Commodity() { }没有区别。3. 上面public Commodity(String name, Integer count, Double price, String re)又有什么作用? 见上面1解释。我CSDN回答的第一个问题当纪念吧 接分。。构造方法各种书,百度谷歌上也是一搜一大把吧。。你连基本的关于构造方法的都不知道,那更无法解释super以及overload是怎么回事了。。 我觉得有必要在全版强推THINKING IN JAVA xml 转 bean 的问题,求助。。。。。。 java 如何连接到 MS SQL 2008? 大家帮我注释下这几句小代码,关于Jslider. 如何将string 转化为 ListArray 没有开发经验,是不是工作特别难找? 新手,问一个比较菜的问题? 线程问题 积极 谁能提供一个sql2000的高效分页程序?分数不够再加 请高手推荐为java初学者推荐基本经典书籍 JAR打包成功,也可以运行,但效果却不一样,为什么? 如何获取Java.awt的父组件和子组件? Graphics类应用的一个问题。求助。
可以参看:http://zhidao.baidu.com/link?url=JNBTZ15XvwnTj8J0qMg8-P433WfYIX-DZXooh7lZEPAREJzePAGpQ7VLDk8GiLQ_g928Rk2oY5gXnFzEZJ0B1q具体回答你的问题:
1. 这些构造方法有什么用呢?
在第一段代码里有空的构造函数Commodity()和非空的构造函数Commodity(String name, Integer count, Double price,String re),意思就是,在你要用到Commodity这个类的时候,你就要初始化它,怎么初始化?就是通过new出来,比如
Commodity commodity = new Commodity ();
那此时的commodity 的各个属性都是默认的值。但是如果用户通过页面,选择了某个商品,比如此商品的各个值是:
name="iPhone"
count=1
price=5800.0
re="苹果5S"那此时我就可以通过
Commodity commodity = new Commodity ("iPhone",1,new Double(5800),"苹果5S");
这样来初始化commodity 了,此时commodity的各个值就是你传进去的参数了。
之后你就可以通过commodity .getName();等得到各个属性的值进行处理:
if("iPhone".equals(commodity .getName()){
syso("这是苹果公司的产品");
}
等
当然,这种情况你也同样可以
Commodity commodity = new Commodity ();
这样初始化,只不过,初始化之后你还要
commodity.setName("iPhone");
commodity.setCount(1);
...
来分别设置属性,太繁琐所以,构造函数的目的:创建对象同时,进行你想要的操作,包括初始化信息,检查,赋值等。如:
public Commodity(String name, Integer count, Double price,
String re) {
this.name = name;//赋值
this.count = count;
this.price = price;
this.re = re;
init();//初始化, 具体方法另外实现
check();//检查, 具体方法另外实现
}2. 这样又有什么不同呢?
Java所有类继承Object类,因你的Commodity类没继承其他类即默认继承Object,所以
public Commodity() {
super();
}
的意思就是:使用父类的构造方法,即:
public Commodity() {
new Object();
}这样和
public Commodity() {
}
没有区别。3. 上面public Commodity(String name, Integer count, Double price, String re)又有什么作用?
见上面1解释。我CSDN回答的第一个问题当纪念吧
构造方法各种书,百度谷歌上也是一搜一大把吧。。
你连基本的关于构造方法的都不知道,那更无法解释super以及overload是怎么回事了。。