【直接送分】你怎么理解实体类的构造方法呢
【直接送分】你如何理解实体类的构造方法呢?
请看如下代码
getter & setter 略
这些构造方法有什么用呢?如果
这样又有什么不同呢?
上面public Commodity(String name, Integer count, Double price, String remark)又有什么作用?
------解决方案--------------------
首先,你得理解Java“构造函数”的概念,在这里就不多说了。
可以参看:http://zhidao.baidu.com/link?url=JNBTZ15XvwnTj8J0qMg8-P433WfYIX-DZXooh7lZEPAREJzePAGpQ7VLDk8GiLQ_g928Rk2oY5gXnFzEZJ0B1q
具体回答你的问题:
1. 这些构造方法有什么用呢?
在第一段代码里有空的构造函数Commodity()和非空的构造函数Commodity(String name, Integer count, Double price,String remark),意思就是,在你要用到Commodity这个类的时候,你就要初始化它,怎么初始化?就是通过new出来,比如
Commodity commodity = new Commodity ();
那此时的commodity 的各个属性都是默认的值。
但是如果用户通过页面,选择了某个商品,比如此商品的各个值是:
name="iPhone"
count=1
price=5800.0
remark="苹果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 remark) {
this.name = name;//赋值
this.count = count;
this.price = price;
this.remark = remark;
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 remark)又有什么作用?
见上面1解释。
我****回答的第一个问题。。。当纪念吧
请看如下代码
public class Commodity {
private Integer id;//商品编号
private String name;//商品名称
private Integer count;//商品数量
private Double price;//商品单价
private String remark;//商品备注
public Commodity() {
}
public Commodity(String name, Integer count, Double price,
String remark) {
this.name = name;
this.count = count;
this.price = price;
this.remark = remark;
}
}
getter & setter 略
这些构造方法有什么用呢?如果
public Commodity() {
super();
}
这样又有什么不同呢?
public Commodity(String name, Integer count, Double price,
String remark) {
this.name = name;
this.count = count;
this.price = price;
this.remark = remark;
}
上面public Commodity(String name, Integer count, Double price, String remark)又有什么作用?
------解决方案--------------------
首先,你得理解Java“构造函数”的概念,在这里就不多说了。
可以参看:http://zhidao.baidu.com/link?url=JNBTZ15XvwnTj8J0qMg8-P433WfYIX-DZXooh7lZEPAREJzePAGpQ7VLDk8GiLQ_g928Rk2oY5gXnFzEZJ0B1q
具体回答你的问题:
1. 这些构造方法有什么用呢?
在第一段代码里有空的构造函数Commodity()和非空的构造函数Commodity(String name, Integer count, Double price,String remark),意思就是,在你要用到Commodity这个类的时候,你就要初始化它,怎么初始化?就是通过new出来,比如
Commodity commodity = new Commodity ();
那此时的commodity 的各个属性都是默认的值。
但是如果用户通过页面,选择了某个商品,比如此商品的各个值是:
name="iPhone"
count=1
price=5800.0
remark="苹果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 remark) {
this.name = name;//赋值
this.count = count;
this.price = price;
this.remark = remark;
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 remark)又有什么作用?
见上面1解释。
我****回答的第一个问题。。。当纪念吧