在java中,我们常见下面一条语句。
public static final int fun()
{
......
}
那这些关键字到底有什么作用呢?
先说,public,它代表一种可见性,还有其他可见性相关的词。
public:表示所有其他类都可以访问。
protected:子类和同一包类的其他类可以访问。
friendly:这是java的默认可见性,同一个包中的类可以互相访问。
private:只有本类只身可以访问。
再说static关键字
文件变量:加了static之后,就变成局部文件,只能在本文件内访问,存储在全局数据区,其他文件不可以通过extern关键字来访问它。
文件函数:加了static之后,就变成局部函数,只能在本文件内访问,其他文件不可以通过extern关键字来访问它。
类变量:只初始化一次,只分配一下内存,值可以更新,没有隐含this指针。
类方法:不属于任何一个实例,不能呗子类的静态方法所覆盖,可以不用实例化该类,然后直接调用。
总结如下:
文件动态变量:可以添加extern关键字,全局访问
文件静态变量:本文件访问
类动态变量:又叫实例变量,堆内存
类静态变量:又叫类变量,全局数据区
函数动态变量:桟内存
函数静态变量:全局数据区
附录:我们的嵌入式设备的存储主要是ram和rom.
ram:寄存器,堆,桟,全局数据区
rom:常量,代码区,用户区。
再说final关键字
等同于c/c++中的const关键字
final类:不能被继承,里面的方法默认都是final
final方法:不允许方法被覆盖,可以继承。
final变量:常量
final参数:只读行参