开始的时候我也不理解为什么要构造函数,
因为那时候的设计思想还停留在面向过程编程。即我要干什么事,这件事有几个步骤,然后我决定怎么干。
面向对象不是这么直接简单,它的设计思想就是要代码重用。即我以前干过类似的事,那么我找出以前可以用到的代码,完成一部分。以前没有的我重新写。这样就有了类。
回到你提的问题。有了类,就是有了可以重用的代码,但是我怎么产生这个对象呢。必须要实例化这个类(当然这不是唯一产生对象的途径,比如单例模式,但本质上说所有途径都是一样的)。那么就要用到构造函数。
即告诉程序我现在要实例化一个对象了,你给我马上分配内存。将内存的首地址赋给我指定的类对象。而且有时候你需要传递参数到函数里面,有了构造函数就方便了,构造函数可以有无数个。当然,传递参数到到对象里面也可以其它方法,比如直接赋一个值给成员变量,举例:- class point2{
- int x,y;
- point2(){ }
- point2(int a,int b){
- //构造函数;含参的构造函数;构造方法必须要和类名一致,且没有返回值
- x=a;
- y=b;
- }
- void output(){
- System.out.println(x);
- System.out.println(y);
- }
- public static void main(String args[]){
- point2 pt=new point2();//实例化对象,这时候x,y没有赋值,默认初始值为0;
- pt.output();
- pt.x=3;pt.y=3;
- pt.output();
- }
- }
复制代码 |