java基础——static、this、super、final关键字

  1. 关键字static
  • static修饰属性
    (1)当用static定义属性时,此属性不保存在堆内存中,而是保存在一个全局数据区的内存空间中,并且所有对象都可以进行该数据区的访问。(也就是说加上static关键字就相当于共享了)
    (2)static修饰的属性可以直接通过类名称调用。例Person.country=中国。
    (3)static不受对象是否实例化的影响。
  • static修饰方法
    (1)使用static定义的方法可以直接被类名称进行访问,同样不受对象是否实例化的影响。
    (2)所有static方法不允许调用非static定义的属性或方法;
    (3)所有非static方法允许访问static定义的属性或方法。
    (原因:static属性或方法可以在对象没有实例化时进行访问,但非static必须在对象实例化后才能操作)
  1. 关键字this
  • this调用属性
    只要在类的方法中访问类的属性,就要在属性前面加“this”关键字。
  • this调用方法(普通方法和构造方法)
    (1)普通方法:this.方法名称(参数…)
    构造方法:this.(参数…)
    (2)构造方法和普通方法最大的区别:构造方法是使用关键字new实例化新对象的时候使用一次,而普通方法是进行对象实例化以后,可以多次调用。
    (3)用this可以实现构造方法的互相调用,但是有一下的要求:
    this()调用构造方法的语句必须放在构造方法的首行; this互相调用构造方法时要有出口。

代码示例:

class Person{//Person类
	private String name;//属性
	private int age;    //属性
	public Person() {
		System.out.println("***");
	}//构造方法
	public Person(String name) {
		this();
		this.name=name;
	}
	public Person(String name,int age){
		this(name);
		this.age=age;
	}
	public void getInfo(){//普通方法
		System.out.println("name="+name+",age="+age);
	}
}
  • this表示当前对象
    在某一对象调用了本类中的方法,那么这个this就表示当前执行的对象,所以说this不是固定的概念,而是一个相对的概念。
  1. 关键字super
    super.方法(),super.属性明确的调用父类的方法和属性。

比较this关键字和super关键字

No 区别 this super
1 概念 调用本类属性、方法 由子类访问父类的属性、方法
2 查找范围 先查找子类,如果子类没有则调用父类 不查找子类,而直接调用父类的定义
3 特殊 表示当前对象 ——
  1. 关键字final
    在java中final被称为终结器,可用final定义类、方法、属性。
  • 用final定义的类不能有子类
final class A{}//A类不能有子类
  • 用final定义的方法不能被子类所覆写
class A{
	public final void fun() {}
}
class B extends A{
	public void fun() {}//错误
}
  • 用final定义的变量就成了常量,常量必须在声明时赋值且不能修改。
public static final int LEVEL_A=100;

注:常量的标识符必须全部采用大写字母的形式出现。

猜你喜欢

转载自blog.csdn.net/weixin_41550144/article/details/86469234