this关键字
this可以算是比较复杂的关键字,使用形式决定了其灵活性
可实现:
- 当前类中的属性:this.属性
- 当前类中的方法(普通方法,构造方法):this(),this.method();
- 描述当前对象;
使用this调用本类属性
利用构造方法或setter方法都可以进行类中属性的赋值,但是在赋值时,现在可能采用的如下形式
class Person{
private String name;
private int age;
public Person(String n, int a ){
this.name = n;
this.age = a;
}
public void tell(){
System.out.println("姓名:"+ this.name +"、年龄:"+ this.age)
}
}
public class JavaDemo{
main(){
Person per = new Person("ad",38);
per.tell();
}
}
在构造方法定义时发现一些问题,参数的目的是为了name以及age的初始化,但容易造成混淆;
在Java中“{}”作为结构体的边界符,程序进行变量(参数、属性)使用时以“{}”为查找边界,按照就近取用原则,所以为了标明类中的属性与参数的区别,往往会在属性钱追加一个this表示本类属性;
在程序编写中,只要是访问本类中属性的时候,一定要加上this实现访问;
使用this调用本类方法
除了调用属性之外,还可以使用this调用本类中的方法,对应方法的调用必须考虑构造与普通方法
- 构造方法的调用(this.()):使用关键字new实例化对象时才会调用构造方法;
- 普通方法调用(this.方法名称()):实例化对象产生只有就可以调用普通方法;
构造方法的调用
代码评价:
- 代码可以重用,提供的是一个中间独立的支持;
- 没有重复;
对于本类构造方法的互相调用,需要注意:
- 构造方法必须在实例化新对象的时候调用,所以"this()"的语句只允许放在构造方法的首行,即在普通方法无法调用构造方法;
- 构造方法互相调用时需保留程序的出口,即不要形成死循环;
代码的任何位置都可能有重复,所以消除代码的重复部分是先期学习中最需要考虑的部分;
实战
简单Java类将作为重要的组成部分存在,简答Java类无处不在,且会产生一系列的变化;
简单Java类:可以描述一类信息的程序类,如描述一个人、一本书,且在这个类中并没有特别复杂的逻辑操作,只作为一种信息存储的媒介存在;
核心结构:
- 类名称:一定要有意义,明确描述某一类事务;
- 类中所有属性都必须使用private进行封装,封装后的属性必须提供setter、getter方法;
- 类之中可以提供无数多个构造方法,必须保留无参构造;
- 类之中不允许出现任何的输出语句,所有内容的获取必须返回;
- 【非必须】可以提供一个获取对象详细信息的方法,可以暂时将该方法定义为getInfo();
简单Java类融合了之前的概念,如数据融合划分、类的定义、private封装、构造方法、方法定义、对象实例化;