各种关键字详解(static,this,abstract,final)

1.static
修饰变量:静态变量,只有一个存储位置,由所有类的对象共享,牵一发动全身
修饰方法:称为静态方法,只能直接访问静态数据或调用静态方法;
		 不用创建类的对象,直接使用类名就可调用
2.this关键字
含义:不论是该类生成的哪个对象调用了含有this的这个方法,
都会生成一个指向这个对象的引用this;

示例

public class Main {
    private String name ;
    private double salary;
    public Main(String name, double salary){
        this.name = name;
        this.salary = salary;
    }
    public Main(String name){
        this(name,0);//用this语句调用同类的重载构造函数,此语句需放在第一行
    }
    public static void main(String[] args) {
        Main a = new Main("hello");
        Main b = new Main("2",900);
        System.out.println(a.name);
        System.out.println(a.salary);
        System.out.println(b.name);
        System.out.println(b.salary);
    }
}
3.abstract关键字
abstract关键字用来修饰方法和类,用abstract修饰的方法叫做抽象方法,
抽象方法没有方法体,即没有实现
规则:
含有抽象方法的类必须被定义为抽象类;
抽象类必须被继承,抽象方法必须被重写;
抽象方法必须被声明,不需实现,即没有方法体;
抽象类不能进行实例化;
抽象方法或抽象类不能定义为最终的,即abstract和final关键字不能共存;
抽象方法不能被声明为静态的;
4.final关键字
在运行时多态中,方法的重定义是重点。但是,使用final关键字的时候,方法是不允许重定义的。

final关键字可以修饰类,方法,以及普通变量,有以下特点:
1.final类不能被继承,没有子类
2.final类的方法默认是final的;
3.final方法不能被子类重定义,但可以被继承;
4.final变量只能一次赋值,不可更改;
5.final不能用来修饰构造方法;

修饰普通变量

public class Main {
    static final int i2 = 99;
    static final int i1 = 9;
    static final int i4 = (int)(Math.random()*20);

    public static void main(String[] args) {

        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i4);
    }
}

空白final数据成员

又想将数据类型声明为final,又想在初始化时自定义
public class Main {
    final int i = 0;//有初始化的final常量
    final int j; //空白的final数据成员
    Main(){
        j = 1;
    }
    Main(int x){
        j = x;
    }
    public static void main(String[] args) {
        
    }
}

final修饰方法参数(相当于const)

目的:
*若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采用这种做法
*提高运行效率
注意:final修饰方法不能被重定义,一个普通类内所有private方法都自动成为final方法

final修饰类

如果整个类都是用final来修饰的,就表明程序不允许从这个类继承任何内容;

总结

final作用于变量,表明变量的值不可改变;
final作用于对象,表明句柄不可以被改变,但引用对象内部的值可以改变;
final作用于方法,表明方法不可重定义;
final作用于方法中的参数,表明参数内容不可被改变,等价于const;
final作用于类,表明类不可以被继承,但类中的数据可以被改变;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值