【关键字private,static,final】

来源:互联网 发布:2017移动互联网数据 编辑:程序博客网 时间:2024/06/02 08:56
【关键字】
【private】
是一个权限的修饰符
可以修饰成员变量和方法
被private修饰的成员只能在本类中才能访问。

【static 】 静态
随着类的加载而加载
优先于对象存在
被类的所有对象共享
[static关键字注意事项]
在静态方法中是没有thsi关键字(静态是随着类加载而加载,this是随着对象的创建而存在)(静态比对象先存在)
静态方法只能访问静态的成员变量和静态的成员方法
静态方法:
成员变量:只能访问静态变量
成员方法:只能访问静态方法
非静态方法:
成员变量:可以是静态的,也可以是非静态的
成员方法:可以是静态方法,也可以是非静态方法。
在内中被static修饰的全局变量,创建该类的对象时,只要其中一个对象修改了static修饰的变量,其他所有是该类型的对象对应的值都被修改。
【静态变量和成员变量的区别】
A:所属不同 
静态变量属于类,所以也称为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
B:内存中位置不同
静态变量存储方法区在静态区
成员变量存储于堆内存
C:内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用
【final】关键字(最终)的意思
可以修饰,成员变量,成员方法。
修饰类,类不能被继承
修饰变量,变量就变成了常量,只能被赋值一次

修饰方法,方法不能被重写


---------------------------【static】【public】【private】【final】的独道理解-------------------------------------------------
方法中不能定义【静态变量】,静态方法中也不能定义静态变量。
静态方法一般属于类。
而一个方法中的变量一般属于这个方法。
使用public修饰后的变量,只能属于这个类中的非静态方法。
即属于通用的,公用方法也是通用的,说以必然有,而私有方法权限等级比公用方法还要低,固然能访问公用变量


一般程序加载时,引用的所有类都会自动加载。
所有,这些所有类中的静态方法都能使用类名直接调用。而不需要实例化。
【static 】静态,每个类都可以有自己的静态方法。程序在设计时,可以引用不同的类,但不实例化该类。
【这个关键字的出现为了提取项目中代码的重复利用。】
【public】公共的。这里的公共的只是对类自己的所有方法公共。即,一个公共方法声明后,在该类中其他非静态方法都能直接调用该公共方法。
为什么静态类不能调用?
因为公共方法程序加载,只是在实例化该类后就加载。而静态方法在程序引用该类的时候就加载了。
如果静态方法能直接调用类中的公用方法,那么这样公共方法也就要和该静态方法一起加载。这个就没有意义了,干嘛还要公共方法了。
所有,公共方法只是在类实例化时才加载。即,创建时加载。
【这个关键字出现可以说是为了类中代码的重复利用性而存在。】
【private】私有的。一般一个类中如果那个方法是私有的。即使外部程序引用了该类,并且实例化了该类。依然无法访问该类的私有方法。
【这个关键字的出现就是为了代码的保密性而存储在。】

【final】最后的。确定的
这个关键字,所修饰的变量或方法,一旦被修饰就无法重新赋值和重写方法。
【这个关键字的出现就是为了防止项目中某些不能修改的值意外被修改】
【instanceof】判断指定对象是否属于某种类别。
instanceof 使用前提:判断的对象与类别必须存在继承或者实现的关系。
使用格式:  对象  instanceof   类别
有多态才能使用到instanceof 关键字 
主要用于数据类型强转之前的判断。

如果说, 【abstract定义抽象类和expends继承】完成了项目中类的重复利用性。即抽取出来的公用方法组成了类,完成了类中代码的重复利用。
【interface接口】完成了项目架构中某些功能必须实现。
那么:interface就有点类似于final关键字。只不过interface只是定义框架,即必须重写。而final对哪些全局变量来说也相当于定义了变量那个维度的值,即不可修改。
abstract和expends定义了类中代码的高度复用性,也有点类似于public对变量的修饰。完成了变量在方法中的复用性。
对于private,final对方法的修饰,巧妙的完成了方法的安全和隐私。

0 0