构造函数

  【构造函数】

对于构造函数来说,参数的传递是最重要的,因为构造函数的函数名与类名一致,也没有返回值,那么构造函数别的不同也就只有参数了,所以唯一识别它的方法就是传参。创建对象的时候传的几个参数就会调用那个构造函数。构造函数中也可以设定一些方法,在创建的时候就可以直接调用了。

构造函数不只是为了初始化类对象,在下面运用的时候,根据下面传入的参数进行调用,就算构造代码块里面有内容,构造函数中没有显示(没有打印)也不会出现。

构造函数的功能:初始化类对象
   
构造函数的格式:
                               修饰符 类名() {
                               语句体;
                               }
    
构造方法的一些小细节:
 1. 构造方法 没有返回值
2. 构造方法的函数名必须和类名一致
3. Java编译器的功能, 当一个类当中没有构造方法的时候,Java编译器会自动帮我们提供一个无参的构造方法

4. 当自定义类中已经存在构造方法,那么Java编译器不会在帮我们提供一个无参的构造方法5. 一个类当中可以根据不同的使用情况,定义多个构造方法,这里利用的是Java当中的函数

【重载】机制

重载:相同的函数,唯一不同的是参数(可能是参数的数量不同,可能是数据类型不同,顺序不同,除此以外并没有其他的差别)


 构造方法和成员方法的区别:
    返回值区别:
     1. 构造函数没有返回值
     2. 普通函数是必须有返回值的,就是真的没有返回值,也要void填充
    
    函数名区别;
     1. 构造函数必须是类名
     2. 普通函数只要符合命名规范就OK
    
    作用区别:
     1. 构造函数是用来创建对象和初始化
     2. 普通函数想做什么就写什么,可以根据我们的实际需要来定义各种各样的函数
    
    调用方式区别:
     1. 构造函数 实际上的使用者是JVM(Java虚拟机), 是JVM在创建对象的时候要调用的方法
     2. 普通函数只能通过对象或者【类名】来调用这个函数

class Car11 {

private int speed;

private String color;

public Car11(int speed, String color) {

this.speed = speed;

this.color = color;

this.run();

}

public Car11() {

System.out.println("这是一个无参的构造函数");

}

public int getSpeed() {

return speed;

}

public String getColor() {

return color;

}

public void setSpeed(int speed) {

this.speed = speed;

}

public void setColor(String color) {

this.color = color;

System.out.println("color:" + this.color);

}

public void show() {

System.out.println("Speed:" + speed + " Color:" + color);

}

public void run() {

System.out.println("在德国的高速路上以300KM/H狂飙");

}

}

public class Demo03 {

public static void main(String[] args) {

Car11 BMW = new Car11(220, "白色");

BMW.show();

//创建对象的时候,传入了一个int型一个String型,调用了run方法,

//又用被创建的对象调用了show函数。

System.out.println("===================");

Car11 Auto = new Car11(80, "红色");

Auto.show();

System.out.println("===================");

System.out.println("Auto:" + Auto);

System.out.println("Auto:" + Auto.getColor());

System.out.println("===================");

//这里打印了Auto,Auto是被创建的对象,打印对象但没有具体的内容,会出现Auto的地址,

//下面的这句的是Auto的颜色。

Auto.setColor("白色");

System.out.println("===================");

Auto.show();

System.out.println("===================");

System.out.println("BMW:" + BMW);

BMW.setColor("黄色");

System.out.println("===================");

BMW.show();

System.out.println("===================");

}

}

你可能感兴趣的:(构造函数)