对象-一论
创建与初始化对象
在程序里,使用new关键字创建类的对象,格式:classType className = new classType()。在使用new的同时,也在内存中为该对象分配了空间,及对对象进行了默认的初始化和对类中构造器的调用
对classType className = new classType()步骤解析
- 为对象分配内存空间,将对象的实例变量自动初始化默认值为0/false/null (实例变量的隐式赋值)
- 如果代码中实例变量有显式赋值,那么就将之前的默认值覆盖掉
- 调用构造器
- 把对象内存地址值赋值给变量(=号赋值操作)
1. 构造器
在进行创建对象的时候必须要调用构造器,也称为构造方法。
构造器的名字必须与类名相同,没有返回类型,也不能写void
1.1作用
- 
在使用new创建对象的时候是要使用类的构造器 
- 
构造器中的代码执行后,可以给对象中的属性初始化赋值 public class Student(){ String name; int age; //无参构造器,也是默认构造器 public Student(){ this.name = null; this.age = 0; } //有参构造器 public Student(String name, int age){ this.name = name; this.age = age; } }
如果我们没有手动编写构造器,那在编译器就会自动帮我们添加一个无参的构造器。在日常开发中还会定义有参构造器,方便在创建对象时给属性赋值。无参构造和有参构造可以同时存在,这属于构造器重载
构造器的修饰符可以定义为禁止对象被外部创建,只要把public改为private这样就不能在外部通过new来创建这个对象了
2.this关键字
2.1在类中的作用
public class Student{
    private String name;
	public void setName(String name){
    	this.name = name;
	}
	public void print(){
    	this.setName("Tom");
	}
}
在同一个类中,存在全局变量与局部变量使用同一标识符,那在类中调用该标识符会存在就近原则,如果调用的标识符靠近局部变量,那该标识符代表的就是局部变量,否则反之。想在靠近局部变量时调用全局变量的标识符可以用this,在这里this代表目前类的对象。this也可以用来调用本类的其他方法
2.2在类中的意义
this是代表所在类的对象,this()表示调用当前类构造器的代码,不会产生新的对象。但会产生递归
public class Student{
    String name;
 	//默认构造器
    public Student() {
        this();//这样属于递归构造函数调用
    }
	//有参构造器
    public Student(String name) {
        this.name = name;
    }
}