大三已经开始,曾经学习的知识虽然做过笔记,但也没时间认真思考。这学期打算将知识回顾一遍,加深理解记忆。今天就总结一下java关键字,说说自己对他们的认识。
this:指向当前类的实例
应用场景:1、方法中 2、构造方法中
注意事项:不可用在static上下文中
在pojo中常用,一般将方法中变量的值赋给类的成员变量
package com.yanghaiwei.java2.lesson19;
public class ThisDemo {
static int num2(){
//static int num2=num;
return 0;
}
ThisDemo(){
this(100);
}
ThisDemo(int num){
this.num=num;
}
int num=10;
int getNum(){
return num;
}
void setNum(int num){
this.num=num;
}
void m1(){
m1(12);
}
void m1(int num){
}
static void m3(){
//System.out.println(this.num);
}
void m2(){
//this.m1();
m1();
}
public static void main(String[] args) {
ThisDemo demo=new ThisDemo();
demo.getNum();
}
}
final
1、修饰变量:实际是常量,一旦初始化后不可修改,并且声明时一定要赋值
(final定义局部变量,可以后赋值;它也可以通过{ } 赋值)
2、用来修饰方法参数,表示在变量的生存期中它的值不能被改变;
3、修饰方法;表示方法不可重写
4、修饰类:表示类不可以被继承
static:静态
使用场景:属性 方法 代码块 内部类
static变量:1、该变量属于类,一般为类变量
2、所有实例共享该变量的值
3、使用类直接访问
4不可将非静态变量赋值给静态
static方法:1、静态方法可以直接通过类名调用
2、静态方法中不能用this和super关键字
3、但是要注意,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的
static代码块:它是类的组成部分,在实例之前加载,并且只执行一次
super:指向父类实例
使用场景:在实例方法中使用、在构造方法中使用
super:1、子类构造方法会默认调用父类无参构造方法
2、子类构造方法不能同时用this,super
3、super必须在第一句