static、final、abstract

1 static关键字
1.1 static修饰成员变量
用static修饰的成员变量不属于对象的数据结构;
static变量是属于类的变量,通常可以通过类名来引用static成员;
static成员变量和类的信息一起存储在方法区,而不是在堆中,一个类的static成员变量只有“一份”,无论该类创建了多少个对象。
在这里插入图片描述
1.2 static修饰方法
通常的方法都会涉及到对具体对象的操作,这些方法在调用时,需要隐式的传递对象的引用(this)。
在这里插入图片描述
static修饰的方法则不需要针对某些对象进行操作,其运行结果仅仅与输入的参数有关,调用时直接用类名引用。
static修饰的方法则不需要针对某些对象进行操作,其运行结果仅仅与输入的参数有关,调用时直接用类名引用。
在这里插入图片描述
由于static在调用时没有具体的对象,因此在static方法中不能对非static成员(对象成员)进行访问。static方法的作用在于提供一些“工具方法”和“工厂方法”等。
1.3 static块
static块:属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在软件中加载静态资源。
在这里插入图片描述
2 final关键字
2.1 final修饰变量
final关键字修饰成员变量,意为不可改变。
final修饰成员变量,两种方式初始化:
– 声明同时初始化
– 构造函数中初始化
final关键字也可以修饰局部变量,使用之前初始化即可。
在这里插入图片描述
2.2 final修饰方法
final关键字修饰的方法不可以被重写。
使一个方法不能被重写的意义在于:防止子类在定义新方法时造成的“不经意”重写。
在这里插入图片描述在这里插入图片描述
2.2 final修饰类
final关键字修饰的类不可以被继承
在这里插入图片描述
JDK中的一些基础类库被定义为final的,例如:String、Math、Integer、Double等等。
使一个类不能被继承的意义在于:可以保护类不被继承修改,可以控制滥用继承对系统造成的危害。
2.3 static final 常量
static final 修饰的成员变量成为常量,必须声明同时初始化,不可被改变。
static final 常量会在编译期被替换,例如:
在这里插入图片描述
3 abstract关键字
计算相同周长不同形状的面积
在这里插入图片描述
在这里插入图片描述
static: 静态的, 属于类的, 修饰成员变量/成员方法
abstract: 抽象的, 修饰类/成员方法
final: 最终的, 修饰类/成员方法/成员变量/局部变量
修饰类: 类不能被继承
修饰方法: 方法不能被重写
成员变量: 变量不能被修改, 必须初始化
局部变量: 变量不能被修改, 必须初始化
引用类型变量: 引用地址不能被修改, 内容可以修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值