一般的类是不能用private修饰,类的可见性最少是包可见的,也就是默认的,不加任何修饰。
但是有一种特殊的情况,内部类是可以用private修饰的!不让类以外的其他类访问!这个问题在《java核心技术》里有讲!
Java的外部类为什么不能使用private、protected进行修饰?
对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。
因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。
如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。
当一个内部类使用了private修饰后,只能在该类的外部类内部使用。可以想一下,一个java项目是不可能在一个class里面完成的。
mvc模式中,是把类分为三层,一层层调用类。如果定义为私有的和受保护的就无法调用。换句话说,对于一个java文件,要么就是自己单独运行,要么就是被其他程序作为库调用。
如果一个java文件的类被private修饰,那么是不是其他的程序或是类是无法使用它的,那么他作为一个单独的文件就没啥用了。
如果它作为单个文件运行,类加载怎么找到它呢,因为它对外不可见。同时,也失去了类的存在意义。因此,类只有public和默认修饰符。
都是私有,不同的是变量的生命期不同。
static 的生命期 等同于程序的整个生命期。例如,static int k=0; k++; 在一个函数里,
第一次调用函数后 k=1; 第二次调用函数时,进入函数时 k还保留 原来的1,k++;后变2。 第i次调用后 k++; 后变i
若不是 static, 退出函数时声明期就结束了。第二次调用函数时,进入函数时 k从新从 0 开始。
local 是声明的局部变量, 只在声明的他的过程中有效, 出去了就无效了 相对的是public,这样声明的变量是在整个程序中都有效的
private是私有变量,如果之前声明了一个公共变量a, 在任何过程中使用这个变量都是用的这个公共变量
如果需要另外使用一个同名的局部变量, 就要使用private a, 这样就在这个过程中隔绝公共变量, 仅使用后来声明的局部变量 等出了这个private过程, 就又恢复使用公共变量
以上就是关于在java中能用private修饰类吗全部的内容,包括:在java中能用private修饰类吗、private static和private区别、求解vf中private和local是什么意思!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)