一.构造方法
1.1构造方法:
又叫构造器,构造函数。Constructor。就是一个特殊的方法。
- 声明的语法:public 类名(){}
- 修饰符:只能有访问权限的修饰符。不能加static。
- 返回值:没有返回值,也不能写void。
- 方法名:必须和类名相同
- 调用的方式:new 关键字调用
- new关键字后面跟着构造方法即可。
- 作用:专门用于创建对象。
- 分类:
a),无参构造方法。–>创建对象。
b),有参构造方法。–>创建对象,对象的属性进行赋值。
注意点:
如果一个类中,没有显示的构造方法,那么由编译器自动添加一个,无参构造方法。
如果类中,有了自己写的构造方法,那么编译器不会再给添加任何的构造方法。
编码习惯:
- 私有化属性
- 提供getter和setter方法
- 添加无参构造,和有参构造。
1.2对比一下构造方法和普通方法
序号 | 对比点 | 构造方法 | 普通方法 |
---|---|---|---|
1 | 返回值 | 没有,也不能写void | 必须写返回值类型,没有就写void |
2 | 方法名 | 必须和类名一致 | 见名知意 |
3 | 参数列表 | —— | —— |
4 | 修饰符 | 最多只能访问权限:public | 访问权限public,还有其他,比如static |
5 | 调用 | 必须使用new关键字 | 没有static,类中的成员方法。对象.方法 有static,直接方法名。 |
6 | 作用 | 专门用于创建对象,并且可以初始化属性的值。 | 实现特定的功能 |
7 | 执行 | 每当创建一个对象,就会调用一次,执行1次 | 通过方法名,调用几次就执行几次。 |
二.this关键字
词义:这个
2.1 this的用法一
表示当前对象,写在本类当中。
this.属性;//访问本类的属性,可以进行赋值和取值
this.方法;//访问本类的方法,进行方法调用
在本类中,方法和属性前,其实都是有对象的。都存在一个this关键字。也可以省略不写。由编译器自动的添加。
public Person(String name,int age){//name="李小花"
this.name = name; //=左侧的是this的name属性
}
this.成员变量。可以解决命名冲突的问题。
使用this关键字,this后的这个name,就是成员变量,对象的属性。没有this的就是局部变量。
2.2 this的用法二
this()指代当前类的构造方法。
如果类中有多个构造方法,那么靠参数来区分:
this()–>无参构造,
this(参数)–>有参构造
当this()来指代构造方法的时候,放在第一行。
示例代码:
class Person{
String name;
int age;
public Person(){//无参的构造方法
}
public Person(String name,int age){//有参的构造方法
this();//指代本类的构造方法
this.name = name;
this.age = age;
}
public void showInf(){
System.out.println(name+","+this.age);
}
}
class Test{
public static void main(String[] args){
Person p1 = new Person();
p1.name = "李小花";
p1.age = 18;
Person p2 = new Person("王二狗",18);
}
}