/**构造函数
* 特点:
* 1.函数名与类名相同
* 2.不用定义返回值类型
* 3.不可以写return语句
* 作用:
* 给对象进行初始化
* 注意:
* 1.默认构造函数的特点
* 2.多个构造函数是以重载的形式存在的
*/
package com.zwj;
/**
*对象一建立就会调用与之对应的构造函数。
*构造函数的作用:可以用于给对象进行初始化。
*
*构造函数小细节:
*当一个类中没有定义构造函数的时候,那么系统会默认给该类加入一个空参数的构造函数。
*
*当在类中自定义了构造函数后,默认的构造函数就没有了。
*
*构造函数和一般函数在写法上有不同
*
*在运行上也有不同、
*构造函数是在对象一建立就运行,给对象初始化。
*而一般方法是对象调用才执行,给对象添加对象需要具备的功能。
*
*一个对象建立,构造函数只运行一次。
*而一般方法可以被该对象调用多次。
*
*什么时候定义构造函数?
*当分析事物时,该事物本身就存在一些特性或者行为,那么就将这些内容定义在构造函数中。
*如果需要未知内容参与运算,则根据实际情况带入参数。
*/
public class GoZao {
public static void main(String[] args) {
People p1 = new People();
People p2 = new People("帝喾");
p2.setName("p2改名为码农");
System.out.println(p2.getName());
People p3 = new People("大神",23);
}
}
class People{
private String name;
private int age;
/**
* 构造代码块
* 作用:给对象进行初始化。
* 对象一建立就运行,而且优先于构造函数执行。
* 构造代码块是给所有对象进行统一的初始化。
* 而构造函数是给对应的对象初始化。
*
* 构造代码块中定义的是不同对象的共性的初始化内容。
*/
{
System.out.println("出生了~~~~~");
cry();
}
People(){
System.out.println("A:name="+name+",age="+age);
//cry(); 所有的孩子出生后都会先哭,所以定义在构造代码块里
}
People(String n){
name = n;
System.out.println("B:name="+name+",age="+age);
//cry();
}
People(String n,int a){
name = n;
age = a;
System.out.println("B:name="+name+",age="+age);
//cry();
}
public void cry(){
System.out.println("哭~~");
}
public void setName(String n){
name = n;
}
public String getName(){
return name;
}
}
构造函数和构造代码块
最新推荐文章于 2021-03-15 16:10:05 发布