日期:2014-05-20  浏览次数:20663 次

什么时候构造方法必须定义
我们常说构造方法一般用于对参数等的初始化,但是这些初始化不放在构造方法里面定义,拿出来定义不可以么。
请问:
1.构造方法定义出来的目的是什么
2.什么时候必须定义构造方法


菜鸟谢谢大家了!!

------解决方案--------------------
构造方法是按照你的需要初始化成员的方法

你希望一个对象一实例化出来就是你想要的样子那么你就定义一个构造方法

当然也可以在外面定义参数初始化方法,例如init()方法来做

在程序中的任意位置调用init()方法就可以将实例置为初始化状态了
------解决方案--------------------
有些模式就一定要自己定义构造函数,比如设计模式中的单例模式
也就是这个类只允许一个实例产生
class Singleton {
private static Singleton instance = null;

private Singleton() {//定义为私有,只能由内部的getInstance方法调用,确保只能产生一个实例即instance,如果你不定义私有构造函数,那么默认提供的是public,也就不能保证单例了
}

synchronized public static Singleton getInstance() {
if (instance == null)
instance = new Singleton();
return instance;
}

}
------解决方案--------------------
public class A
{
int a;
String b;
public A(int a,String b)//构造方法.
{
this.a=a;
this.b=b;
}
void show()
{
System.out.println( "a= "+a+ " "+ "b= "+b);
}
public static void main(String args[])
{
A s=new A(1, "Hello! ");//我不知道如何解释,反正写构造方法就是为了在创建实例的时候能在后面参数对上号. 如果前面没有写构造方法,这里这样写就是错误的了.LZ自己体会体会吧.
s.show();
}
}
------解决方案--------------------
主要是为了对一些成员进行初始化,有的时候你必须定义构造函数,比如:拷贝构造函数,还有就是你不希望对方直接new你的类,你可以在构造函数前加private