内部类、static关键字、final关键字

本文解析final关键字的不可变特性,static变量的作用与使用注意事项,以及内部类的定义与访问规则。通过实例说明如何在Java中运用这些概念提高代码可读性和封装性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、final关键字

final的意思为最终不可变

final可以修饰类、局部变量、类的成员2

特点:

  • final修饰的类不可以被继承,但是可以继承其他类
  • final修饰的方法不可以被覆盖(重写),但父类中没有被final修饰方法,子类覆盖后可以加final
  • final修饰的变量称为常量,这些变量只能赋值一次,定义时必须有初始值
  • final修饰的引用类型变量,表示该引用变量的引用不能变,引用所指的对象中的数据可以变化的

针对第四条->

意思为当new一个对象时,如果这个引用变量是由final修饰,则这个对象存的值可以改变

比如:

final Cat cat1 = new Cat("小黑");
cat1.setName("笑笑");

final 通常用在以下情况:

        当程序中一个数据是固定不变的,这时为了增加阅读性,可以给该数据起个名字。为了保证这个变量的值不被修改,加上final修饰,变量就为阅读性很强的常量。书写规范,被final修饰的常量名所有的 字母都是大写的。如果由多个单词组成单词间通过 _ 连接。

二、static关键字

什么是static关键字?

        在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。

什么时候用static关键字?

        定义功能时,如果功能不需要访问类中定义的成员变量(非静态)时,该功能就需要静态修饰

静态方法使用注意事项:

  • 静态随着类的加载而加载,随着类的消失而消失
  • 静态先于对象存在,被对象共享
  • 静态修饰的方法中无法访问非静态的属性和方法,因为静态先存在于内存中,无法访问后来的对象中的数据,所以静态无法访问非静态,内部无法书写this,这时候对象可能不存在,this没有任何指向

注意事项:

1. 静态方法不能访问非静态的成员。但是非静态可以访问静态成员的。

说明:

  •   静态的弊端在于访问出现局限性。
  •   好处是可以直接被类名调用。

2. 静态方法中不允许出现this,super关键字。

三、内部类

        内部类即写在其他类中的类,比如在描述电脑时,电脑内部包含有散热器,这时散热器可以使用内部类来描述。

class Computer{
    //外部类的成员变量
    int price = 4000;
    //写在Computer成员位置上的内部类
    class Fan{
        //内部类的成员函数
            void show(){
                //在内部类中访问外部类的成员函数
                    System.out.println("Computer price = " +price);
            }
        
    }
}

内部类访问规则:内部类可以访问外部类中的成员,但外部类不能直接访问内部类,若要访问,就要创建内部类对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

simpleHan

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

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

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

打赏作者

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

抵扣说明:

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

余额充值