博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习记录-2.包与访问权限控制
阅读量:5795 次
发布时间:2019-06-18

本文共 1196 字,大约阅读时间需要 3 分钟。

Java的源代码文件通常被称作编译单元,每个编译单元只能有一个public类。编译单元的后缀名为.java,名称为public类名。每个编译单元的非public类在包外是不可见的(除public外最有权限的为包访问权限),它们是public类的辅助类。

在编译一个编译单元时,会为每一个类生成一个class文件,因此,编译少量的.Java编译单元会生成大量的.class文件。

包是一些类文件的集合,每个类文件包含一个public类和若干非public类。包给类文件提供了一个保护伞,想要使用这个类,就必须import这个包,或者给出完整包名+类名。想要让一个类包含于某个包,只需在编译单元文件的开头用package语句。

所有事物都具有访问权限,包括 public、protected、private,即便不指定访问权限,也会自动默认地指定一个包访问权限。

1.包访问权限

对包内成员为public,对包外成员为private。使得包内的成员可以互相作用。可以说,包访问权限使得把类全局在一个包中的做法提供了一种合理的解释。

2.public

为所有人提供了访问权限。

3.private

只有该类的成员可以访问。

4.protected

在包访问权限之外为包外的子类提供了权限。

打通了包与包之间的一个通向子类与父类的一个通道。

类的访问权限

一个编译单元只能有一个public类,代表了一个公用接口,使用import PackageName.ClassNme即可。

类的访问权限只有两种,public和包访问权限。

final关键字

final关键字笼统的概括为恒定不变,但在具体情况中也有细微不同,其主要适用情景为三大类:数据、方法、类。

1.final数据

基本类型的final数据相当于一个常量,需在定义的时候初始化,并且永远不变。也可以在类 中定义一个空白final实例域,但必须在构造器中初始化,这样才能确保final数据必须被初始化的原则不被打破。 

对象引用的final数据意味着这个引用永远不变,但其所引用的那个实例却是可以编辑的。

2.final方法。

Java还允许将方法参数声明为final,含义日后补充。

用final关键字修饰方法有两大意图,第一是为了优化效率,但在新版JVM中已经不被推荐。第二大意图是不希望这个方法在继承中被覆盖。

与final方法相比,private方法直接对子类不可见,就算子类试图重载,也不过是定义了一个同名的方法。也因为不可见,所以给private方法添加final修饰并没有什么意义。

3.final类

final类的含义很简单,final类不会被继承,也就不会被方法重载,其实例域和方法也就不会被更改,所以其成员是隐式final。

转载于:https://www.cnblogs.com/liuzey/p/8721382.html

你可能感兴趣的文章
U盘安装linux后无法引导
查看>>
C# 矩阵作业
查看>>
俺的新书《Sencha Touch实战》终于出版了
查看>>
关于数据库查询时报“query block has incorrect number of result columns”
查看>>
li下的ul----多级列表
查看>>
UVa 11292 勇者斗恶龙(The Dragon of Loowater)
查看>>
区域生长算法
查看>>
switch语句小练习
查看>>
组合逻辑电路
查看>>
POP-一个点击带有放大还原的动画效果
查看>>
UE4材质是什么样的机制
查看>>
使用QTP录制自带Flight小实例
查看>>
Loadrunner脚本编程(4)-数据类型操作和字符串操作
查看>>
STL 算法
查看>>
分享:Backbone.js 样例站点与入门指南
查看>>
图的基本算法
查看>>
HTML基础(一)
查看>>
boost.circular_buffer简介
查看>>
Database Appliance并非Mini版的Exadata-还原真实的Oracle Unbreakable Database Appliance
查看>>
网页图片缩放(js)
查看>>