趣文网 > 作文大全

static和final 今天的文章要说的就是访问控制中的这两个关键字

2020-11-21 18:55:01
相关推荐

昨天的一篇文章介绍了访问控制中的访问修饰符以及它们的访问权限。下面这篇文章我们介绍访问控制中的第二部分static和final关键字。

static关键字

static修饰成员变量

用static修饰的成员变量不属于对象的数据结构,static变量是属于类的变量,通常可以通过类名来引用static成员。Static成员变量和类的信息一起存储在方法区而不是在堆中,一个类的static成员变量只有“一份”,无论该类创建了多少对象。

Static修饰方法

通常说的方法都会涉及到对具体对象的操作,这些方法在调用时,需要隐式的传递对象的引用(this)。

int d=p1.distance(p2);

调用distance方法时,除了传递p2参数外,还隐式的传递了p1作为参数,在方法中的this关键字即表示该参数

static修饰的方法则不需要针对某些对象进行操作,其运行结果仅仅与输入的参数有关,调用时直接用类名引用。

double c=Math.sqrt(3.0*3.0+4.0*4.0);

该方法在调用时,没有隐式的传递对象引用,因此在static方法中不可以使用this关键字。

由于static在调用时没有具体的对象,因此在static方法中不能对非static成员(对象成员)进行访问。Static方法的作用在于提供一些“工具方法”和“工厂方法”等。

... ... ...

Point.distance(Point p1,Point p2)

RandomUtils.nextInt()

StringUntils.leftPad(String str,int size,char padChar)

... ... ...

Math.sqrt() Math.sin() Arrays.sort()

static块

static块属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在软件中加载静态资源。

final关键字

final修饰变量

final关键字修饰成员变量,意为不可改变。final修饰成员变量有以下两种方式初始化:声明的同时初始化;构造函数中初始化。final关键字也可以修饰局部变量,使用之前初始化即可。

public class Emp{

private final int no=100;//final变量声明时初始化

public void testFinal(){

no=99;

}//编译错误,final的变量不可以改变

}

final修饰方法和类

final关键字修饰的方法不可以被重写,使一个方法不能被重写的意义在于:防止子类在定义新方法时造成“不经意”重写

final关键字修饰的类不可以被继承。

final class Foo{ } class Goo extends Foo{ } //编译错误

JDK中有一些基础类库被定义为final的,例如:String、Math、Integer、Double等等。是一个类不能被继承的意义在于:可以保护类不被继承修改,可以控制滥用继承对系统造成的危害。

static final常量

static final修饰的成员变量称为常量,必须声明的同时初始化,不可被改变。

static final常量会在编译器被替换。如图

这样我们通过两篇文章把访问控制的知识点全部说完了。说白了访问控制就是一个封装的概念。在这里面我们介绍了7个英文单词的使用,分别为package、public、private、default、protected以及今天介绍到的static和final。大家可以结合最近的这两篇文章把访问控制的相关知识点梳理一下。

知识无限,能力有限。小编在文章编辑过程中难免出现不尽人意的地方,欢迎大家批评指正,小编也将不断积累完善自己,让我们共同进步。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

作文素材亲情 上海旅游英语作文 三年级作文300 我爱吃水果作文 作文写动物的 读后感500字作文 北方的秋天作文 关于母亲的作文500字 heroes作文 以小见大的作文100字 写兔子的作文200字 学与思作文 初二年级作文 特殊的经历作文 一次正确的选择作文600 初中生400字作文 秋天到了作文300字 六年级第三单元作文500 心波荡漾作文800字 难忘的青岛之旅作文 去西安旅游的英语作文 作文感悟怎么写 小洞饿了想吃香肠有声音作文 关于丰收的作文 意林作文素材 作文童话故事 心中的祖国作文 告诉你一个好消息作文 二年级我学会了什么的作文 消防安全作文