欢迎来到天天文库
浏览记录
ID:31283401
大小:73.00 KB
页数:4页
时间:2019-01-08
《java访问修饰符(访问控制符)_java教程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java访问修饰符(访问控制符)」ava教程Java通过修饰符来控制类、属性和方法的访问权限和其他功能,通常放在语句的最前端。例如:publicclassclassName{//bodyofclass}privatebooleanmyFlag;staticfinaldoubleweeks=9.5;protectedstaticfinalintBOXWIDTH二42;publicstaticvoidmain(String[]arguments){//bodyofmethodJava的修饰符很多,分为访问修饰符和非访问修饰符。本节仅介绍访问修饰符,非访问修饰符会
2、在后续介绍。访问修饰符也叫访问控制符,是指能够控制类、成员变量、方法的使用权限的关键字。在面向对象编程中,访问控制符是一个很重要的概念,可以使用它來保护对类、变量、方法和构造方法的访问。Java支持四种不同的访问权限:修饰符说明public共有的,对所有类可见。protected受保护的,対同一•包内的类和所有子类可见。private私有的,在同一类内可见。默认的在同一包内可见。默认不使用任何修饰符。public:公有的被声明为public的类、方法、构造方法和接口能够被任何其他类访问。如果几个相互访问的public类分布在不用的包屮,则需要导入相h'Zpu
3、blic类所在的包。由于类的继承性,类所有的公有方法和变量都能被其了类继承。卜•而的方法使用了公有访问控制:publicstaticvoidmain(String[]arguments){//bodyofmethod}Java程序的main()方法必须设置成公有的,否则,Java解释器将不能运行该类。protected:受保护的被声明为protected的变量、方法和构造方法能被同一个包中的任何其他类访问,也能够被不同包屮的了类访问。protected访问修饰符不能修饰类和接口,方法和成员变量能够声明为protected,但是接口的成员变量和成员方法不能声明
4、为protectedo子类能访问protected修饰符声明的方法和变量,这样就能保护不相关的类使用这些方法和变量。下面的父类使用了protected访问修饰符,子类重载了父类的bark()方法。publicclassDog{protectedvoidbark(){System,out.printin("汪汪,不要过来〃);}}classTeddyextendsDog{//泰迪voidbark(){System,out.printIn(z,汪汪,我好怕,不要跟着我〃);}}如果把bark()方法声明为private,那么除了Dog之外的类将不能访问该方法。如
5、果把bdrk()声明为public,那么所有的类都能够访问该方法。如果我们只想让该方法対其所在类的子类可见,则将该方法声明为protected。private:私有的私有访问修饰符是最严格的访问级别,所以被声明为private的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为privateo声明为私冇访问类型的变量只能通过类中公共的Getter/Setter方法被外部类访问。private访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据。下面的类使用了私有访问修饰符:publicclassDog{privateStringname;priv
6、ateintage;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name二name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this・age=age;}}例子中,Dog类中的name,age变量为私有变量,所以其他类不能直接得到和设置该变量的值。为了使其他类能够操作该变量,定义了两对public方法,getName()/setName()和getAge()/setAge(),它们用来获取和设置私有
7、变量的值。this是Java中的一个关键字,本章会讲到,你可以点击Javathis关键字详解预览。在类屮定义访问私有变量的方法,习惯上是这样命名的:在变量名称前面加“ge广或“set”,并将变量的首字母人写。例如,获取私有变Mname的方法为getName(),设置name的方法为sctNamcO-这些方法经常使用,也冇了特定的称呼,称为Getter和Setter方法。默认的:不使用任何关键字不使用任何修饰符声明的属性和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为publicstaticfinal,而接口里的方法默认情况下访问权限为publico
8、如下例所示,类、变量和方法的定义没有使用任何修饰符:
此文档下载收益归作者所有