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

一:构造方法

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.

 

上一篇:Java基础(005):Java为什么需要默认的无参构造函数


下一篇:android--------解决Entities and POJOs must have a usable public constructor