JAVA中什么时候需要写出默认的构造方法?

如题所述

如果有带参数的构造方法时候,必须填写乜有参数的构造方法,也就是默认的构造方法。
解释:
构造方法本事就是通过new一个对象的形式进行的实现,如果使用者本身不知道有带参数的构造方法是什么,此时就可以通过 "A a = new A()"的形式来构造一个空参数的方法。
但是如果此时没有的话,那么就会直接报错,所以这个是不被java规范所允许的,也就规定了在有参数的构造方法的时候必须构造默认的无参构造方法。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-03
比如,现在已经有一个带参的构造函数,但是,创建有时候对象,并不知道参数值是什么。
比如
class stu
{
private String name;
public stu(){

}

public stu(String name){
this.name = name;
}
public void setName(String name){
this.name = name;
}
}

这样我们就可以通过两种方式创建stu对象
(1)我们知道要创建的stu的姓名
就可以这样:stu s = new stu("Mr wang");
(2)如果我们刚开始不知道stu的姓名,如果这时候有没有默认构造函数,这时候就创建不了任何空名字的对象。
如果有了默认构造函数,就可以这样
stu s = new stu();//如果这样创建的话,假如有带参的构造函数,那么默认构造函数也一定要显式的出现
s.setName("Mr wang");本回答被提问者采纳
第2个回答  2011-01-03
这么说吧,你想创建出一个新的对象,并且在创建的时候就给里面的变量赋值,这时你就需要一个带参数的构造方法!
如果你的变量时私有的,你在用这个新的对象的时候可以直接通过get方法把值取到!
带参数的构造方法就是初始化的时候赋值!
第3个回答  2011-01-02
最好都要写

因为继承的时候会调用 所以还是先写好本回答被网友采纳

JAVA中什么时候需要写出默认的构造方法?
如果有带参数的构造方法时候,必须填写乜有参数的构造方法,也就是默认的构造方法。解释:构造方法本事就是通过new一个对象的形式进行的实现,如果使用者本身不知道有带参数的构造方法是什么,此时就可以通过 "A a = new A()"的形式来构造一个空参数的方法。但是如果此时没有的话,那么就会直接报错,所以这个是不被jav...

java程序中为什麼要用构造函数?? 在什麽情况下要用到???
\/\/不定义构造方法,此时默认的构造方法是Student1();new \/\/一个对象时只能这样构造,Student1 s=new Studnet1();} 另外再写一个有定义构造方法的类:class Student2{ Student(String name);Student(String name,int age);} Student2有两个构造方法,默认的构造方法就没有了 创建Student2对象时只...

java构造方法和默认构造方法
构造和默认构造这两个类本质上是一样的,当没有提供构造方法时,编译器会自动加上一个默认的不带参数的构造方法,就是下面2个类的例子。自己写上的话编译器就不加了,省略编译器就加上。class Test {int n;}class Test {int n;Test() {}}每个类都必须至少有一个构造方法,不写时便是上述原...

v函数的构造方法有哪些?
默认构造函数:这是最简单的构造函数,没有任何参数。当你创建一个新对象时,如果没有提供任何参数,就会调用这个构造函数。例如,在Java中,你可以这样定义一个默认构造函数:java 复制代码 运行 public class MyClass { public MyClass() { \/\/ 初始化代码 } } 带参数的构造函数:这种构造函数接受一...

java类中构造方法是必须的吗?还是只有javabean中的构造方法是必须...
一、在java中,构造方法不是必须显示定义的,如果没有定义构造方法,那么该类就有一个默认的无参数构造方法 二、main方法也不是必须的,main方法是作为运行这个类的入口,如果你不是要单独的运行这个类则不用写main方法

JAVA中的参数化构造方法和默认构造方法他们有什么区别?
省略编译器就加上。每个类都必须至少有一个构造方法,不写时便是上述原因编译器自动给你加的,不是它没有构造方法。而带参数的构造方法或者说参数化的构造方法,就是指构造方法的参数不是空的,比如:class Test { int n;Test(int n) { this.n = n; } } 默认的是什么也不带的。

java中为什么要有构造方法?
\\x0d\\x0a\\x0d\\x0a就你描述的情况,默认构造方法其实就什么都没做啊,但是会有对象创建的时候就要赋值一些成员变量的情况,这种就要自定义构造方法,重载啊。可能你会说为什么非得要构造的时候就赋值呢,不能对象创建出来,set成员变量就得了。原因:1是麻烦。2是会有很多人创建了对象,忘记了set...

...了何种构造函数,创建对象时都可以使用默认的构造函数。
public Java(int a){ } } 当你要创建对象的时候,使用如下方法,JAVA就会报错 Java j=new Java();因为你自己定义了构造函数,JAVA就不再提供默认构造函数了 上面那个类的解决办法有两个 --- Java j=new Java(123);--- class Java{ public Java(){ } public Java(int a){ } } Java ...

JAVA的父类中是不是一定要有无参数的构造方法?为什么我不在父类中写空...
但是如果我们创建一个构造方法时,JVM就不会再为我们生成一个默认的构造方法。有时有必要的显示的写出这个默认构造函数,也就是无参构造函数。所以当这个类被继承时,子类就会默认的调用这个无参构造方法。如果你想显示的调用父类的构造方法,可以使用super()在子类的构造方法中的第一句。(构造方法中...

java中,如果你写了构造函数,则编译器就不会调用
很简单的类A,第一个无参数的构造方法就是默认的构造方法,第二个带参数的方法是我们自己写的构造方法。如果你两个构造方法都没有,那么这个类A就相当于隐式的含有第一个构造方法。如果你只写了第二个构造方法,那么第一个就当作不存在了,如果这个时候你写下面的语句 A a1=new A();编译器肯定...

相似回答