【一】构造函数
1.构造函数特点
- 函数名与类名相同
- 不用定义返回值类型
- 不可以写return
2.作用
可以用于给对象进行初始化。当一个类中没有定义构造函数时,那么系统会默认给该类加一个空参数的构造函数。当类中定义了构造函数后,默认的构造函数就没有了。
3.什么时候定义构造函数?
当分析事物时,该事物存在具备一些特性或行为,那么就需要将这些特性或行为定义在构造函数中。
4.构造函数和一般函数的不同
写法上有不同。
运行上也有不同。构造函数是在对象一建立就开始运行,给对对象进行初始化。而一般方法是对象调用才开始执行,给对象添加对象具备的功能。
一个对象建立,构造函数只能运行一次,而一般方法可以被该对象调用多次。
例子:
class demo
{
public static void main(String[] args)
{
Person p1=new Person();
}
}
class Person
{
private String name;
private int age;
private char sex;
//构造函数
Person(){
System.out.println("该学生姓名为:小葵\t年龄为:12\t性别为:女");
}
}
输出:
【二】构造代码块
作用:给对象进行初始化(对象一建立就运行,而且优先于构造函数执行)
例子:
class demo
{
public static void main(String[] args)
{
Person p1=new Person();
}
}
class Person
{
{
System.out.println("我们是智能科学与技术系的学生");
}
}
输出:
构造代码块和构造函数的区别:
构造代码块是给所有对象进行初始化,构造代码块中定义的是不同对象的共性;而构造函数是给对应的对象进行初始化。
例子:
class demo
{
public static void main(String[] args)
{
Person p2=new Person("韩梅梅");
Person p3=new Person("李雷",20,'男');
}
}
class Person
{
private String name;
private int age;
private char sex;
{
System.out.println("我们是智能科学与技术系的学生");
}
Person(String name){
this.name=name;
System.out.println("0616号学生的名字为:"+this.name);
}
Person(String name,int age,char sex){
this.name=name;
this.age=age;
this.sex=sex;
System.out.println("0617号同学的名字为:"+this.name+"\t年龄为:"+this.age+"\t性别为:"+this.sex);
}
}
输出: