黑马程序员技术交流社区

标题: 请问构造函数在什么情况下用 [打印本页]

作者: hg3093483    时间: 2013-4-1 11:01
标题: 请问构造函数在什么情况下用
本帖最后由 hg3093483 于 2013-4-1 18:44 编辑

构造函数是在什么情况下用呢,感觉可有可无啊?请给小弟详细解释一下。谢谢啦。

顺便问下:我要随机一个40到100的整数,为什么不是60而要在61当中随机呢?
       Random ran = new Random();
            int  a = ran.nextInt(61)+40;

作者: 邵震    时间: 2013-4-1 11:09
假设对象是游戏  构造函数就是WASD 空格 鼠标左右键的默认设置

没有也行 但是每个人安装完游戏都要自己设置一遍
作者: 王亚东    时间: 2013-4-1 11:55
构造函数是必须要有的,自己不显式写出来的话,编译器默认从父类继承一个无参构造函数。
当需要通过构造函数赋值初始化一些操作时,需要自己写带参数的构造函数,只是简单的创建对象的话,直接使用默认的就可以了,所以感觉可有可无。
第二个:ran.nextInt(61)是随机0到60.9999无穷,精确到int就是0到60,如果使用60,实际只到59
作者: hg3093483    时间: 2013-4-1 11:57
王亚东 发表于 2013-4-1 11:55
构造函数是必须要有的,自己不显式写出来的话,编译器默认从父类继承一个无参构造函数。
当需要通过构造函 ...

谢谢,豁然开朗
作者: whs_nk    时间: 2013-4-1 17:21
首先明确两点(1)继承的原则:子类继承父类的成员变量;子类继承父类的除构造方法之外的成员方法,换句话说,也就是子类不能继承父类的构造方法。(2)构造函数的存在,首先便是为了创建对象并进行初始化。
子类可以用super调用父类的构造函数,而当一个子类没有声明自己的构造方法时,java会默认通过调用 super调用其父类无参数的构造方法,从而子类得以创建对象。
所以,它的存在是上帝式的存在哦。。
作者: HM周一帆    时间: 2013-4-1 17:27
本帖最后由 HM周一帆 于 2013-4-1 17:28 编辑

看看 对理解有帮助

作者: 影响力147753321    时间: 2013-4-1 17:52
构造函数在创建对象时用。用于对象的初始化。 必须有构造函数,如果没有显示的定义。编译器会悄悄地加入一个默认无参构造函数。
作者: 山西_李帅    时间: 2013-4-1 18:05
每一个类都有一个构造函数。
我们要是不写的话,会默认的从父类继承一个。
构造函数呢,有两种,一种是无参构造,一种是有参构造。
那么当你使用无参构造函数建立对象时,就需要用set/get进行赋值取值了。
那当你使用有参构造函数建立对象时,直接在建立对象时进行赋值就可以了。
//无参构造
        Poker(){}

        //有参构造
        Poker(String color, String number){
                this.color=color;
                this.number=number;
        }

1,Poker p = new Poker();
2,  Poker p = new Poker("红色","A");
那第二种是不是使对象的初始化很方便呢!




第二个问题是:

int  a = ran.nextInt(61)+40;

这里呢,ran.nextInt只能是左边取值从0开始,而右边呢是小于61的,也就是说肯定取不了61了,只能取60.








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2