java的构造函数和构造代码块

南笙酒味 提交于 2020-02-29 13:31:56

一:构造方法

Java当中有两种函数:构造函数和普通函数(实例函数)。

构造函数的特点:

  1. 构造函数的函数名字与类名相同
  2. 构造函数不可以定义返回值
  3. 构造函数不可以写return语句
  4. 每个类默认有一个无参数构造函数
  5. 构造函数可以重载但不能重写

构造函数的作用:

给对象进行初始化

 

注意虽然每个类都有一个默认的不带参数的构造方法,但是我们重写了这个类的构造方法之后,而又没有不带参数的构造方法,

此时程序就会报错,不能通过编译。

如下:不带参数的Person()构造方法被注释掉之后就会报错。

public class Person {

    private String name;//无参构造方法被注释掉之后会报错。
/*
    Person(){
        System.out.println("I'm a Person constructor.");
    }
    */

    Person(String name){
        System.out.println("I'm a overloaded constructor.");
    }
}



class PersonTest{
    public static void main(String[] args) {
        Person person=new Person();//这句会报错,因为找不到不带参数的构造方法

    }
}

 

二:构造代码块

  • 作用:给对象初始化用
  • 对象已建立就运行,而且而且而且优先于构造函数执行
  • 构造代码块是给所有对象进行初始化,也就是说new了多少次对象就会执行多少次
  • 构造函数是给不同对象进行初始化的
public class Person {

    Person(){
        System.out.println("I am a constructor.");
    }
    //这是一个构造代码块
    //作用:给对象初始化用
    //对象已建立就运行,而且而且而且优先于构造函数执行
    {
        System.out.println("I am a constructor block.");
    }

}


class PersonTest{
    public static void main(String[] args) {
        Person person=new Person();

    }
}

 

上面代码的执行结果

I am a constructor block.
I am a constructor.

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!