java语言的构造函数有什么作用?构造函数可以重载吗?举例说明

如题所述

构造函数是当你创建对象时,由系统调用的;

可以重载

例子

public Class Person{
    String name = null;
    public Person(){};//无参构造函数
    public Person(String name){//有参构造函数,重载
        this.name = name;
    }
}
class Test{
    public static void main(String[] args){
        Person p1 = new Person();//创建名字为null的人对象,调用无参构造函数
        Person p2 = new Person("小明");//创建名字为小明的对象,调用有参构造函数
    }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-09

首先,一般来说,C/C++里面叫“函数”,Java里面叫“方法”,所以它叫“构造方法”。

构造方法的用处就是标示怎么“构造”一个实例对象。例如有这样一个学生类的定义:

class Student{
    private String name;
    private int age;
    
    public Student(){
        super();
    }
    
    public Student(String name,int age){
        super();
        this.name = name;
        this.age = age;
    }
}

很简单,Student类有两个属性分别为name和age,也有两个构造方法,一个是无参数的,一个是有name和age两个参数的。

那么当你需要一个Student类实例对象时,一般来说,就会用到这样的代码:

Student stu = new Student(); //创建一个学生对象

代码是很简单,不过JVM实际上是怎么执行呢?它会申请内存,创建对象,初始化对象,得到对象引用,然后把引用赋值给stu变量。这就有个问题了,如果你把你自己想象成JVM,有条命令丢过来给你说“喂,JVM,造个Student对象给我”,你是不是得知道具体怎么造这个对象?构造方法就是起这个作用的,“告诉”JVM如何去创建这类对象。

所以像刚才那行代码,JVM发现要执行的代码要创建Student对象,并且无参数,就会调用无参数的构造方法。同理,如果有以下代码:

Student zhang = new Student("张三",20); //创建一个学生对象

JVM就会去调用带name和age两个参数的构造方法了。这个构造方法除了创建一个Student对象外,在构造的时候就会根据给定的参数name、age设置正在构造的这个对象name、age属性。

本回答被提问者和网友采纳
第2个回答  2015-10-13

构造函数是一种特殊的方法,用来创建对象的实例并初始化其参数。一般使用方法是和Java的new关键字搭配使用,创建对象实例。

构造函数可以被重载。

几点注意:

    当不声明构造函数时,默认有一个无参数的构造方法。

    构造函数不能有返回类型

    构造函数可以是私有的,这样外部就无法由私有的构造函数创建对象

相似回答