黑马程序员技术交流社区
标题:
用基础面向对象,输出一副扑克牌中的疑问。。
[打印本页]
作者:
樊玲
时间:
2013-3-10 00:03
标题:
用基础面向对象,输出一副扑克牌中的疑问。。
class Test7
{
public static void main(String[] args)
{
String[] cs={"黑桃","红桃","方块","梅花"};
String[] ns={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
Puker[] ps=new Puker[cs.length*ns.length]; //可以装入52个扑克对象 ps中的元素现在的值是null
int index=0;
for(int i=0;i<cs.length;i++){
for(int j=0;j<ns.length;j++){
ps[index++]=new Puker(cs[i],ns[j]);
}
}
for(int i=0;i<ps.length;i++){
if(i%ns.length==0){
System.out.println();
}
ps[i].print();
}
}
}
class Puker
{
private String color;
private String number;
Puker(){} // 这里为什么用构造函数?
Puker(String color,String number){ //这个构造函数重载方法,除了给this.属性赋值,还有别的作用吗?那不是跟set方法重了吗???
this.color=color;
this.number=number;
}
void setColor(String color){
this.color=color;
}
String getColor(){
return color;
}
void setNumber(String number){
this.number=number;
}
String getNumber(){
return number;
}
void print(){
System.out.print(color+number+" ");
}
}
作者:
江华
时间:
2013-3-10 00:08
1、 构造函数的意义,你是特别理解
请看这个帖子中,我的回答!
作者:
江华
时间:
2013-3-10 00:11
无语,找不到了,算了,重新再敲一下
作者:
江华
时间:
2013-3-10 00:25
首先,先声明一点,java是面相对象的开发语言,所以,在写程序时,时刻保持着面相对象的思想。
构造函数的作用,你不是特别理解。
构造函数: 从字面意思来说,构造== 构画、设计、建造
其实,它就相当于建房子时的设计图纸,这个函数里包含了这个对象的一些信息,在创建的时候就必须有的。
在程序开发中,构造函数起到一个初始化的作用,一个对象在创建的时候,
某些值是在创建的时候,就必须有,这时候,就要传入一些信息,例如:银行账户,在你开户的时候,这个账户必须有一个数字账号,然后才去保存账号对象的用户信息。
所以,你的这个代码也是同样的作用
Puker(String color,String number){ //这个构造函数重载方法,除了给this.属性赋值,还有别的作用吗?那不是跟set方法重了吗???
this.color=color;
this.number=number;
}
复制代码
用来接收,初始化设置的值
在有些时候,创建对象,我们不用传递初始化值
所以,就出现你下边的代码
Puker(){} // 这里为什么用构造函数?
复制代码
如果,没有上边的代码,那在创建这个类的时候,必须传递参数
,否者,java虚拟机不知道你要干啥。
作者:
wodeairenw
时间:
2013-3-10 00:27
这里需要讲到构造函数的用法
Puker(){}
Puker(String color,String number){
this.color=color;
this.number=number;
你建立对象时给对象初始化用的
比如你想建立一个没有参数的对象Puker s =new Puker(这里不写),表示建立对象时,初始化没有设置color及number
比如你想建立一个没有参数的对象Puker s =new Puker(String color,String number),表示建立对象时,初始化时设置了color及number
而set方法是对象生成之后,你需要修改里面的颜色和数字而建立的。是不同的两个概念。
作者:
杨博
时间:
2013-3-10 02:26
private String number;
Puker(){} // 这里为什么用构造函数?
Puker(String color,String number){ //这个构造函数重载方法,除了给this.属性赋值,还有别的作用吗?那不是跟set方法重了吗???
this.color=color;
this.number=number;
}
首先在这里,这是这个类定义的构造函数,作用就是对对象进行初始化了,那么,定义两个,其实就是在你创建一个对象时,如果是new Pucker(),那么,他初始化对象并没有其他信息带入,但是,如果你new Puker(cs[i],ns[j])这个,他会带入coloe与number的初始化信息,这些信息是对象一建立就有的,就是说不同的构造函数产生的对象初始化的信息不同。
至于你说与set方法重了,其实不是这样,构造函数创立对象,是他本身带有的信息,而你的set方法,是对对象的信息进行改变,二者并不重复
希望对你有帮助
作者:
amen0205
时间:
2013-3-10 04:48
注释1 这个构造函数你没用到 所以 就没有用了 删了也可以 但注意以后就别用 new Puker()创建对象那个了
注释2 构造函数和set方法的区别:1 用构造函数我可以在对象创建就给对象命名 构造函数就是用来给对象初始化的
2 set方法非静态的话 不用对象调用不能运行 是后期给对象该名的
作者:
黄玉昆
时间:
2013-3-10 09:16
我觉得吧,构造函数是初始化对象用的,个人愚见
作者:
江华
时间:
2013-3-10 13:08
本帖最后由 江华 于 2013-3-10 13:09 编辑
江华 发表于 2013-3-10 00:25
首先,先声明一点,java是面相对象的开发语言,所以,在写程序时,时刻保持着面相对象的思想。
构造函数的 ...
构造函数是用来 初始化函数的,
同时也是作为接口区使用的!
要初始化,就要传递,两者之间有了传递就是沟通
不同的对象之间的沟通,我觉得就是接口的作用
作者:
黑马17期-闫东东
时间:
2013-3-10 13:20
构造方法
.如果一个类没构造方法,那么当它加载时, jvm会为其分配一个默认的空的无参构造方法
但是如果我们手动去创建了一个构造方法,那么默认的就不会在创建。
构造方法是用来创建对象的,构造方法也可以重载。好处是可以通过多种途径去实例化类的对象。
构造方法带参数的目的:是可以在创建对象的过程中就对对象的属性进行赋值操作。
用到数组:
怎样定义52个扑克牌-数组
扑克牌的花色与值固定 可以用数组来描述
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2