1.Final关键字
final 修饰变量,该变量就会称为常量,不能够在被修改(runtime)。
final 可以修饰类,一旦final修饰类,该类就是最终类,不允许被继承。
final 还可以修饰方法,该方法为最终方法,该方法不允许重写(Override)
2.super关键字 this关键字
在java中,this的关键字,this关键字是一个指针
在类中,this默认指向当前类
如果构造对象,当对象构造完成后,会有一个this指向当前对象
super能出现在实例方法和构造方法中。
super的语法是“super.”和“super()”。
super不能出现在静态方法中。
super大部分情况下是可以省略的。
总结:“this.”是一个实例对象内部为了区分实例变量和局部变量。
而“super.”是一个实例对象为了区分是子类的成员还是父类的成员。
父类有,子类也有,子类想访问父类的,“super.”不能省略。**
3.static关键字
static:静态的
可以修饰java的类、属性、方法
static如果修饰类,只能修饰内部类,等我们讲解内部类的时候再说
也可以修饰属性,如果使用static修饰属性,该属性就是静态属性属于类
也可以修饰方法,静态方法,属于类。
static也可以直接单独使用,被static单独使用的语法块,静态块
静态块:静态块,会最先被类加载,而且只加载一次!!!
static也可以修饰import
import static 包.*
static修饰的东西,提前加载内存中
4.instanceof 关键字
用来判断对象是否是某个类的实例
5.overload、override、overwrite
Overload的中文意思是重载,它表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同,
即参数的个数或类型至少有一个不同,但返回值和方法属性必须相同
Override叫重写表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,
将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表
现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一
些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那
么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。
重写叫overwrite,是字符类中多态的表现。当子类出现与父类相同的方法,那么这就是方法重写。方法重写时,子类的返回值必须与父类的一致。
如果父类方法抛出一个异常,子类重写的方法抛出的异常类型不能小于父类抛出的异常类型。
User类的封装setter getter toString
public class User {
private String username;
private String password;
private int age;
private String nickname;
private String email;
private String avatar;
public User(String username, String password, int age, String nickname, String email, String avatar) {
this.username = username;
this.password = password;
this.age = age;
this.nickname = nickname;
this.email = email;
this.avatar = avatar;
}
public User(){}
public String getUsername() {return username;}
public void setUsername(String username) {this.username = username;}
public String getPassword() {return password;}
public void setPassword(String password) {this.password = password;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
public String getNickname() {return nickname;}
public void setNickname(String nickname) {this.nickname = nickname;}
public String getEmail() {return email;}
public void setEmail(String email) {this.email = email;}
public String getAvatar() {return avatar;}
public void setAvatar(String avatar) {this.avatar = avatar;}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
", nickname='" + nickname + '\'' +
", email='" + email + '\'' +
", avatar='" + avatar + '\'' +
'}';
}
}