第1个回答 2018-07-04
1.构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带有返回值。
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的。
4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点。
5.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。本回答被网友采纳
第2个回答 2010-01-29
类是用来制造对象的,你现在可以这么理解,类的范围要比对象大(也就是说类更抽象一点) 一个类可以有多种对象,比如说椅子类,他可以有很多对象,像是石椅啊,竹椅啊等等,而你的那个point2类也一样,他也可以有多个对象,像你现在的这个对象就是x=2,y=3的这么一个point2对象,如果你在new一个,比如这样new point2(7,7); 那么这个他就是一个x=7,y=7的这么一个point2对象,而构造方法就是用来生成不一样的对象的!你刚开始学吧,呵呵,我以前也这样,怎么都想不通,其实不用管它,JAVA语法就是这么规定的,他让你这样写。你就这样写。等你以后打的多了,自然就明白了
第3个回答 2010-01-29
public static void main(String args[]){
point2 pt;
pt=new point2(3,3);//是这儿调用了类中的构造函数
pt.output;
}
在Java中,或者说是在面向对象的编程语言中,构造函数作用是用来创建对象的,也是对象的唯一创建方法,就算是静态方法如public static Object getInstanse(),其内部也是通过new关键字来创建对象的。
如果不创建对象是无法修改或访问对象的内部成员,或者是通过类名来访问类的静态成员。
试想车子还没造出来,怎么能使用它呢。
加点分吧
第4个回答 2015-11-10
使用构造器时需要记住:
1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)
2.每个类可以有一个以上的构造器
3.构造器可以有0个、1个或1个以上的参数
4.构造器没有返回值
5.构造器总是伴随着new操作一起调用
示例:
A.java
Java代码
public class A{
public A(){
System.out.println("调用了无参的构造函数");
}
public A(String mess){
System.out.println("调用了有参的构造函数\n"+
"参数内容为:"+mess);
}
}
Test.java
Java代码
public class Test{
public static void main(String [] args){
A a_1=new A();//调用无参的构造函数
A a_2=new A("Hello");//调用有参的构造函数
}
}
输出结果:
继承与构造函数
使用super调用父类构造器的语句必须是子类构造器的第一条语句
如果子类构造器没有显式地调用父类的构造器,则将自动调用父类的默认(没有参数)的构造器。如果父类没有不带参数的构造器,并且在子类的构造器中又没有显式地调用父类的构造器,则java编译器将报告错误
示例:
A.java
Java代码
public class A{
public A(){
System.out.println("调用了A的无参构造函数");
}
public A(String mess){
System.out.println("调用了A的有参的构造函数\n"+
"参数内容为:"+mess);
}
}
B.java
Java代码
public class B extends A{
public B(){
System.out.println("调用了B的无参构造函数");
}
public B(String mess){
super(mess);
System.out.println("调用了B的有参构造函数\n"+
"参数内容为:"+mess);
}
}
Test.java
Java代码
public class Test{
public static void main(String [] args){
B b_01=new B();
B b_02=new B("你好");
}
}