屋檐和屋脊的区别:关于java中的构造方法

来源:百度文库 编辑:高校问答 时间:2024/04/28 07:00:01
一个类中定义了一个带有参数的构造方法后,实例化对象时是不是必须用这个构造方法,不能用没有参数的构造方法。另外构造方法前如果带上void的话还是构造方法吗?今天我定义了一个void asd(int a,int b)的构造方法时,为什么还能new asd()??

构造方法 只能是public 类名(){}

如果是带返回类型 如public void asd(int a,int b){}

就相当与定义了一个的方法,这个方法只能通过显示的调用才能运行

构造方法可以有多个,根据参数不同,new 对象实例的时候需要哪个就new哪个。

void asd(int a,int b),这个带参数的,不是构造方法,只是普通的方法,构造方法是没有返回值类型的

如果你使用了public asd(int a,int b)构造方法,就不能使用默认的asd()构造方法了,也就是说不能new asd()了,除非自己在类中定义pulblic asd()

如果自己定义了构造子,也就重写了Object的构造子,必须用自己的构造方法(包括参数)才能实例化类。但是
public Person(){
}

public Person(String name){
this.name=name;
}
若干个不同的构造子同时存在是允许的,用任何一个实例化对象都正确。

一个类中可以定义带参数的构造方法,也可以定义不带参数的构造方法以,这样的定义叫做重载,但是如果定义一个没有参数的构造方法的话呢这种情况呢一般是对类进行一种初始化
例如
可以这样来定义
class 类名{
定义变量;
public 类名(){}//这种是不带参数的构造方法
public 类名(参数类形 参数名){}//带参数的构造方法
前面不用void 这样的方法不是构造方法,只是一般的普通方法
你之所以还能用new asd()方法是因为这种不带参数的构造方法是一种默认的,就算不去定义也会有的,所以你还能用

你好!
看得出你是刚学的吧!从你的问题 中我总结了两点:
1.构造方法和构造函数你没有分清!
2.对像的具体含义你没有搞清楚!
下面我来回答你的问题:
1).构造方法也就是函数,只是java中更多的叫方法,方法在可以有参数,也可以没有,那么什么时候它会得到执行呢?答案是当你调用它的时候,可能你会问怎么调用它呢?答案是创建一个对像,用对像来调用它!对像.方法();
构造函数是指方法名和类名相同的时候的“方法”,这个方法就是在你创建对像的时候一定会被调用(这有一个问题:就是当参数相同的时候)!
2).如果用void表示没有反回值的意思,也就是只有给它(在有参数的情情况下),你确不能从它那里得到什么!
3)。如果是构造方法是不能用new的,你说你的那个可以,说明asd是你的类名,也只有这种情况,不然是不可能的使用new 表示创建的意思,也就是创建对像的意思

建议您看看JAVA基础的书,这个属于基本的定义问题...