一、构造器是什么?
构造器也叫构造方法
构造方法和普通方法的区别:
1. 构造方法的修饰符只有权限修饰符,普通方法还可以有static等关键词
2. 构造器是无返回值类型的(连void都没有),普通方法是有返回值的
3. 构造器的名字只能和类名一样,普通方法的方法名可以随意写
构造器的作用:用于创建对象开辟空间、做初始化操作
二、this关键字
概念:this代指当前对象
运用前提的思考点:类中所有的非静态方法和属性都需要通过对象调用
思考以下代码的结果:
package day5;
public class Car {
private int type;
private String brand;
private String color;
private int tyreNum;
public Car() {
tyreNum=4;
}
public Car(String color) {
tyreNum=4;
this.color=color;
}
public Car(int type, String brand, String color) {
//this();
this(color);
this.type = type;
this.brand = brand;
this.color = color;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getTyrenum() {
return tyreNum;
}
public void setTyrenum(int tyreNum) {
this.tyreNum = tyreNum;
}
public static void main(String[] args) {
}
}
二、使用步骤
1. 构造器的特点
1. 当类中没有提供构造器时,虚拟机会默认给提供一个无参的构造器,如果有构造器,虚拟机就不再提供默认的
2. 构造器可以重载的形式存在多个,具体根据实际需求进行选择使用
```java
package Constructor;
public class Person {
private String name;
private int age;
private String idCard;
int sex;
/*
* 性别:1男 2女
*/
public Person() {
System.out.println("构造器---执行");
}
public Person(int age) {
this.age=age;
}
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public Person(String name, int age, String idcard) {
this.name = name;
this.age = age;
this.idCard = idcard;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
}
}
```c
总结
/**
- 构造方法也叫构造器
- 当类中没有明确给出构造器的时候,虚拟机会提供一个默认的无参构造器,但是如果该类中已经有了构造器,那虚拟机就不再提供默认的无参构造器了
- 大多数情况下,每个类中都要有无参及全部参数的构造器
- 问题:set方法可以进行赋值,构造器也可以进行赋值,有什么区别?
- 答案:set方法更主要的作用是用于对象创建后再对属性的值进行修改,而构造器对于属性而言主要是用于初始化的
- 问题:初始化的时候一定要用构造器吗?
- 回答:在对属性进行初始化的时候呢,到底要对哪些属性进行初始化是不确定的,因为属性的组合有很多种可能性,但是不能在类中针对每一种可能都给一个构造器。
- 在构造器中使用this关键字调用其他的构造器时注意,只能放在第一行(每个分号就代表一行)