构造函数
java构造函数,也叫构造方法,是java中一种特殊的函数
- 构造函数没有返回类型
- 函数名和类名保持一致
- new对象产生后,就调用了对象的属性和方法
作用
一般用来初始化成员属性和成员方法的
构造函数作用一般是给类中的属性初始化赋值的格式
1、**修饰符 类名(参数列表){ }**
2、**直接类名(参数列表) { }**
默认无参构造函数和有参数的构造函数
public class Employee
{
public Employee() //默认无参构造函数
{
}
}
public class Employee
{
public Employee(String name,int age)//有参数的构造函数
{
}
}
构造函数可以有return关键字
public class Employee
{
public Employee(String name,int age)
{
return;
}
}
构造函数中可以由return关键字,但是不能有具体的返回值类型
- 构造方法不是手动调用的,是对象被创建的时候jvm调用
- 如果一个类没有定义构造方法,jvm在编译的时候会给这个类默认添加一个无参构造方法
- 如果定义了构造方法,那么jvm不会再创建无参构造方法
- 创建对象的时候,有几个参数,就要有相应的构造方法,也是对应的要有几个参数
- 构造函数可以调用构造函数
构造函数的作用
构造函数的作用是给类中的属性赋值初始化
public class Employee{
String name;
int age;
public Employ() //构造函数的作用是给类中的属性赋值初始化
{
name="harmony";
age=2;
}
}
构造函数和创建对象
创建对象会自动的隐式的调用类中提供的构造函数
public class Student
{
String name;
int age;
public static void main(String[] args)
{
Student s = new Student(); //创建对象会自动的隐式的调用类中提供的构造函数
}
}
创建对象必须依赖类中现在提供的构造函数
public class Student
{
String name;
int age;
public Student(String name,int age)
{
}
public static void main(String[] args)
{
Student s = new Student(); //错误
Student s1 = new Student("harmony",2); //正确,创建对象必须依赖类中现在提供的构造函数
}
}
匿名构造块
构造代码块的格式
代码块的作用
- 对象统一初始化
-
匿名构造块执行
创建对象,如果类中提供了匿名构造块,都会执行
public class Dept
{
{
System.out.println("这是匿名构造块");
}
public static void main(String[] args)
{
Dept dept = new Dept();//创建对象,如果类中提供了匿名构造块,都会执行
}
}
创建对象之前都会执行匿名构造块,执行匿名构造块和构造函数的参数无关
public class Dept
{
{
System.out.println("这是匿名构造块");
}
public Dept(String name)
{
}
public static void main(String[] args)
{
Dept dept = new Dept("质量部");//创建对象之前都会执行匿名构造块,执行匿名构造块和构造函数的参数无关
}
}