java 什么时候用 protected?java什么时候使用private public protect static
各位老铁们,大家好,今天由我来为大家分享java 什么时候用 protected,以及java什么时候使用private public protect static的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
java什么时候使用private public protect static
一.Java访问权限饰词(access specifiers)
Java有public、protect、friendly、private四种访问权限,并且这四访问权限的访问范围越来越小。
1. friendly
1)果一个class内的数据成员或方法没有任何权限饰词,那么它的缺省访问权限就是friendly。同一个package内的其它所有classes都可以访问friendly成员,但对package以外的classes则形同private。
2)对于同一个文件夹下的、没有用package的classes,Java会自动将这些classes初见为隶属于该目录的default package,可以相互调用class中的friendly成员。如以下两个class分别在同一个文件夹的两个文件中,虽然没有引入package,但隶属于相同的default package。
class Sundae{
//以下两个方法缺省为friendly
Sundae(){}
Void f(){System.out.println(“Sundae.f()”);
}
public class IceCream{
public static void main(String[] args){
Sundae x= new Sundae();
x.f();
}
}
2. public:可以被任何class调用
3. private:private成员只能在成员所属的class内被调用,如:
class Sundae{
private Sundae(){}//只能在Sundae class中被调用
Sundae(int i){}
static Sundae makASundae(){
return new Sundae();
}
}
public class IceCream{
public static void main(String[] args){
// Sundae class中构造函数Sundae()是private,
//所以不能用它进行初始化
//Sundae x= new Sundae();
Sundae y= new Sundae(1);//Sundae(int)是friendly,可以在此调用
Sundae z= Sundae.makASundae();
}
}
4. protected:具有friendly访问权限的同时,又能被subclass(当然包括子孙类,即子类的子类)所访问。即,既能被同一package中的classes访问,又能被protected成员所在class的subclass访问。
二.Class的访问权限
1.Class同样具有public、protect、friendly、private四种访问访问权限:
1)public:在任何地方都可被使用
2)protect、private:除了它自己,没有任何class可以使用,所以class不能是
protected或private(inner class除外)
3) friendly:同一个package中的classes能用
2.如何调用构造函数被声明为private的class
1)用static函数
2)用Singteton模式
class Soup{
private Soup(){}
//(1)静态函数方法
public static Soup makeSout(){
return new Soup();
}
//(2)The"Singleton" pattern:
private static Soup ps1= new Soup();
public static Soup access(){
return ps1;
}
public void f(String msg){
System.out.println("f("+ msg+")");
}
}
public class Lunch{
public static void main(String[] args){
//Soup priv1= new Soup();编译错误
Soup priv2= Soup.makeSout();
Soup priv3= Soup.access();
priv2.f("priv2");
priv3.f("priv3");
}
JAVA中protected的作用是什么
类NewObject中有protected修饰的方法或者属性,则:
同一个包中:
可在同一个包里的子类中实例化NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性,即.操作访问。
可在同一个包里的非子类中实例化NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性。
可在同一个包里的非子类中实例化NewObject类的子类(该子类和NewObject类在同一个包中)获得对象,然后可用该对象访问protected修饰的方法或者属性。
可在同一个包里的NewObject类的子类中调用NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被同一个包中的子类继承。
非同一个包中:
可在非同一个包里的子类中实例化NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。
可在非同一个包里的非子类中实例化NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。
可在非同一个包里的非子类中实例化NewObject类的子类(该子类和NewObject类不在同一个包中)获得对象,但无法用该对象问protected修饰的方法或者属性。
可在非同一个包里的NewObject类的子类中调用NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被不同一个包中的子类继承。
JAVA中protected的作用
protected的作用:
主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。
public的作用:
具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。
default的作用:
有时候也称为friendly,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。
private的作用:
访问权限仅限于类的内部,是一种封装的体现,例如,大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。
注意:java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。
区别:
public:可以被所有其他类所访问
private:只能被自己访问和修改
protected:自身、子类及同一个包中类可以访问
default:同一包中的类可以访问,声明时没有加修饰符,认为是friendly。
Java简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java由四方面组成:
1、Java编程语言,即语法。
2、Java文件格式,即各种文件夹、文件的后缀。
3、Java虚拟机(JVM),即处理*.class文件的解释器。
4、Java应用程序接口(Java API)。
Java分为三个体系
1、Java SE(J2SE,Java2 Platform Standard Edition,标准版)。
2、JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版)。
3、Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
java里protected有什么用啊
protected为访问控制符,意思为受保护的,其开放程度仅次于public。
说明:
1、protected访问控制符能被用于方法和成员变量。
2、声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。
3、能被该类的子类所访问,子类可以和父类不在一个包中。
这样,当你想让一个类中的某个方法或成员变量在包中都可见,而且其子类也能访问(子类有可能和父类不在同一个包中)但又不想让所有类都可以访问该类时,就可以用protected修饰符。
需要注意的是在另一个包中的子类可以通过子类或其子类的引用来访问超级类中的受保护的成员。在同一包中的子类没有这个限制。这确保了来自其他包的类只访问其继承层次结构中的一部分的成员。
java 什么时候用 protected的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java什么时候使用private public protect static、java 什么时候用 protected的信息别忘了在本站进行查找哦。