Java 各类变量以及各类修饰符使用(单独/联合)

本文详细介绍了Java中实例变量、静态变量及局部变量的区别与应用,并深入探讨了abstract、static与final等修饰符的作用与使用场景。

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

一.几种变量的介绍与区别

1.实例变量(又称成员变量):成员变量定义在类中,方法之外,在整个类中都可以被访问;成员变量随着对象的建立而建立,随对象的消失而消失;存在于对象所在的对内存中成员变量有默认初始值。

2.静态变量(类变量):是在类之中,方法之外,以static关键字申明的变量,其独立在对象之外,有许多对象共享的变量。静态变量在对象产生之前产生,并长驻于内存,其在JVM关闭时销毁。可通过类名与对象名(不建议)调用。

3.局部变量:在方法或语句块中申明的变量,生命周期只在定义的{}之中,不能跨方法或语句块使用。存在于栈内存中,作用的范围结束,变量空间自动释放;默认没有初始化值,使用时需要进行初始化。

二.修饰符

1.abstract抽象:可以修饰类与方法,类不能被实例化,其方法需要在子类中实现。 一个类继承了一个抽象类,那么必须要实现抽象类中的抽象方法,否则这个类还是一个抽象类。抽象类中可以存在普通方法,也可以没有抽象方法,但是抽象方法必须包含在抽象类中。

一个抽象类的子类如果不是抽象类,则它必须为父类中所有的抽象方法写出方法体,即重写父类中所有的抽象方法。

2.static静态:

数据(类数据):生命周期从创建开始到程序运行结束。不属于某个对象,为共有数据。

方法(类方法):属于类,可直接通过类名访问,如主程序的入口main()方法:public static void main(String[] args)。static方法不能被特定的对象调用,需要通过类调用且他们只能引用类数据以及其他类方法。

即使可以不通过对象在main里直接调用显得方便一些,但这样失去了面向对象的特点以及封装的意义。

3.final终态

在类之前,表示终结类,不能再被继承。

在方法之前,表示终结方法,不能被覆盖。因此final不能与abstract联合使用,abstract修饰的方法必须被子类覆盖重写。

在变量之前:不能修改,即常量。

访问控制修饰符

类的访问控制:public以及包访问权限。

类成员:public:公有,任何对象访问。

protected:同类以及子类的对象

private:类本身,类外不可见。(私有的数据成员与方法只能通过公有方法来访问

包:不加任何修饰符,同包的成员可访问。

若把父类的数据成员均定义为protected,即使父子类放在不同的包内,子类的方法仍然可以访问到从父类中继承而来的protected的数据成员,然而子类的对象不属于子类,无法直接访问父类数据中protected的数据成员。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值