目录
this关键字
this指代本类的对象也是一个指向本对象的指针,所以不可以在静态环境之中
访问构造方法
必须写在构造方法的第一行,所以一个构造方法不能写两个
this(参数1,参数2,......,参数n);
访问变量
this.成员变量
public Test{
String name;
public Test(String name){
this.name = name;
}
}
比如当局部变量与成员变量重名时就可以定位到成员变量,注意参数这个时候也是也是这个作用域中的,所以如果不用this就单纯的是将传入的参数重新赋值了而已,但加了this就是指代的当前对象的成员,所有成员变量就会被赋值为传入的参数值
访问方法
在内部类里面可以使用类名.this来定位,如果直接this那么这个时候指代的就是内部类
this.方法名();
public class Test{
private String id;
public Test(){ //this关键字调用构造方法必须得是在构造方法的第一行
this("007");
}
public Test(String id){
this.id = id;
}
public void getThisMethodAndPrint(){
println(this.getId())
}
public String getId() {
return id;
}
public void setId(String id) { //方法参数
this.id = id; //如果不加this 那么就是对参数的值进行一次修改
}
public Test5 getTest() {
return this; //返回当前类的实例
}
public static void main(String[] args) {
println(new Test().getTest()); //@2d554825
println(new Test().getTest()); //@68837a77
}
}
super关键字
指父类的对象,也不可以在静态环境中使用。可以访问直接父类的非private成员
访问构造方法
可以调用父类的构造方法来初始化,super必须在子类构造方法的第一行
super(参数1,参数2,......,参数n);
访问变量或对象
super.变量;
访问方法
子类重写了父类的方法后就可以使用来调用父类的方法
super.方法名();
static关键字
static -> 静态的
静态成员不依附于对象存在
静态属性
可以理解为是属于这个类,而不属于这个类的对象,当定义一个静态属性的时候会在内存中开辟一个共享区域,所以在内存中也只存在一份,静态变量供类的所有对象使用
静态成员
定义静态内部类、静态属性、静态方法就只需要在前面加 static
静态方法在类加载时就在存在了,所以它必须得有实现,也就是说它不能是abstract方法,静态方法中只能访问所属类得静态字段和静态方法,所以this 和super是不能存在于静态方法中的
package org.example.demo;
public class StaticTest {
static String name = "static";
static void staticMethod(){
System.out.println("This is a static method");
}
private static class StaticInnerClass{
static String name = "innerclass";
}
}
访问成员
类名.成员
上面代码在其他类中访问代码就是
StaticTest.name; StaticTest.staticMethod(); StaticTest.StaticInnerClass.name;
静态语句块
会在类初始化时运行一次
static{
}
静态内部类
如果没有static关键字的话,就要使用外部的类的对象来访问内部类。但静态内部类则不需要这么麻烦
StaticTest s = new StaticTest(); StaticTest.InnerClass innerClass = s.new InnerClass();
静态内部类访问
StaticTest.StaticInnerClass.name;
final关键字
用来声明数据不可改变
- 修饰基本类型使值不变
- 修饰引用类型使引用不变
package org.example.demo;
public class FinalTest {
int a = 1;
final int b = 5;
final FinalTest f = new FinalTest();
}
这个时候如果修改b的值是会报错的
而 f 就不能再引用另一个对象了,如果再写一行 f = new FinalTest();的话也会报错,但可以修改对象的属性
如果修饰类那么这个类就不允许被继承
如果修饰方法那么这个方法就不能被子类重写,这里注意前面说的继承只能访问基类的非private成员,所以如果子类写了一个和父类被private修饰一样的方法名那么就不是重写
本文详细介绍了Java编程中四个关键关键字的使用:this用于引用当前对象,常用于构造方法和解决成员变量与局部变量冲突;super用于访问父类的成员,包括构造方法、变量和方法;static关键字则与类相关联,用于创建静态成员,包括静态变量、方法和内部类;最后,final关键字用于声明不可变的变量和类,防止被修改或继承。通过这些关键字,开发者能更好地理解和控制代码的行为。
339

被折叠的 条评论
为什么被折叠?



