Java基础-关键字

文章目录

1.关键字

static、final、interface、abstract、this、super等关键字的具体使用以及注意事项。

  • static 和 final
    static:一直存放在内存中,可直接调用,无虚重新new一块空间初始化数据,实现一个系统的缓存作用,其生命周期直到应用程序退出结束。且static修饰的类成员,在程序运行过程中,只需要初始化一次即可,不会进行多次的初始化。
    用法
    (1)修饰成员变量,将其变为类的成员;
    (2)修饰成员方法,类名.方法名的方式调用。
    (3)修饰静态方法:初始化
    小结:static可以修饰方法,属性,代码段,内部类;

    在笔试、刷题中,会遇到静态代码块、构造代码块、构造方法判断输出的题。先看代码

/**
 * @author anning
 * @version 1.0
 * @motto strive
 */
public class text3 {
    //静态代码块
    static{
        System.out.println("静态代码块!");
    }
    public static void main(String[] args) {
           son s = new son();
        System.out.println("-------------");
    }
}
class son extends parents{
    static {
        System.out.println( "son"+"静态代码块!");
    }

    son(){
        System.out.println("son" + "构造方法");
    }
    {
        System.out.println("son" + "构造代码块");
    }
}
class parents{

    static {
        System.out.println( "parents"+"静态代码块!");
    }

    parents(){
        System.out.println("parents" + "构造方法");
    }
    {
        System.out.println("parents" + "构造代码块");
    }

}

来看输出的结果

静态代码块!
parents静态代码块!
son静态代码块!
parents构造代码块
parents构造方法
son构造代码块
son构造方法
-------------

由此我们可以看出程序的执行顺序是:静态代码块->构造代码块->构造函数->普通代码块
上述程序的执行顺序是:
1.先执行主类中的静态代码块
2.执行父类的静态构造方法
3.执行子类的静态构造方法
4.执行父类的构造代码块
5.执行父类的构造方法
6.执行子类的构造代码块
7.执行子类的构造方法
8.执行main()
final
用法:(1)修饰数据:包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被修改。对于成员变量来说,我们必须声明或者构造方法中对它赋值。
(2)修饰方法参数:表示在变量的生存周期中它的值不能被改变;
(3)修饰方法:表示该方法无法被重写
(4)修饰类:表示该类无法被继承;

注意:Static final同时使用static 和final修饰的成员在内存中只占据一段不能改变的存储空间。

  • interface和abstract
    abstract:修饰类和方法。不能修饰属性、构造器。abstract修饰的类和方法不能被private、final、static修饰。
    用法:抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写抽象方法。
    interface
    1.接口也是一种引用数据类型,编译之后也是一个class字节码文件。
    2.接口是完全抽象的,抽象类是半抽象的,或者也可以说接口是一种特殊的抽象类。
    3.接口中所有的元素都是用public修饰的,都是公开的。
    4.接口中只有两部分内容:常量(public final static修饰的变量)
    抽象方法(public abstract修饰的方法),修饰符可以省略不写。
    5.接口中的方法都是抽象方法,抽象方法不能有方法体。
    6.接口支持多继承,一个接口可以继承多个接口。
  • this和super
    1.属性的区别:
    (1)this访问本类中的属性,如果本类没有这个属性则访问父类中的属性。
    (2)super访问父类中的属性。
    2.方法的区别:
    (1)this访问本类中的方法,如果本类没有这个方法则访问父类中的方法。
    (2)super访问父类中的方法。
    3.构造的区别:
    (1)this调用本类构造,必须放在构造方法的首行。
    (2)super调用父类构造,必须放在子类构造方法首行。
    (3)其他区别:this表示当前对象。super不能表示当前对象 。
    (4)this和super不能用于static修饰的变量,方法,代码块;因为this和super都是指的是对象(实例)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安宁#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值