1.构造器
- 构造器也可以称为构造方法(constructor),但不完全等同于方法,其作用为创建对象和初始化对象的属性。
- 如果在类中没有显式的定义一个构造器,则系统会默认的提供一个空参构造器;一旦定义了,系统则不会提供默认构造器
- 一个类中至少会有一个构造器,当定义多个时,则构成重载
- 构造器的格式为:权限修饰符 类名(形参列表){ }
- 在类中通常将构造器定义在属性和方法之间
public class StudentTest {
public static void main(String[] args) {
//创建类的对象
Student s = new Student();// 类名 对象名 = new 构造器
s.study();
//初始化对象属性
Student s1 = new Student(20190112,"Tom");
System.out.println("学号为:"+ s1.number + "\t姓名为:" + s1.name);
}
}
class Student{
//类的属性
int number;
String name;
boolean isMale;
//类的构造器
public Student(){
System.out.println("this is a constructor test");
}
public Student(int m,String n){
number = m;
name = n;
}
//类的方法
public void study(){
System.out.println("学习使我快乐~~");
}
}
运行结果:
拓展:
1.变量赋值的先后顺序:
默认初始化值——>显式初始化——>构造器中赋值——>通过“对象.方法”或“对象.属性”的方式进行赋值
2.JavaBean
JavaBean,是一种Java语言写成的课重用组件
判断标准:
(1)类是公共的;
(2)有一个无参的公共的构造器;
(3)有属性,且有对应的get、set方法
2.This关键字
- this关键字可以可以理解为当前对象或当前正在创建的对象,用来修饰:属性,方法和构造器
- 在类的方法和构造器中都可以使用“this.属性”或者“this.方法”的调用当前对象的属性或方法,但
通常情况下,都省略不写。但是,当方法或构造器的形参名和属性名相同时,使用“this. 变量”表示此变量是属性而非形参。
public Boy(String name, int age) {
this.name = name;//使用在构造器中
this.age = age;
}
public void setAge(int age) {
this.age = age;//使用在方法中
}
- 使用This关键字调用构造器:
在类的构造器中可以使用“this(形参列表)”的方式调用本类中指定的其他构造器,但不可调用当前构造器。
调用其他构造器时,必须声明在当前构造器的首行。
构造器内部最多只能声明一个“this(形参列表)”用来调用其他的构造器。
public Person1(){//空参构造器
}
public Person1(String name){
this();//调用构造器
this.name = name;
}
public Person1(int age){
this();//调用构造器
this.age = age ;
}
public Person1(String name,int age){
this(age);//调用构造器
this.name = name;
}