java访问修饰符的范围
每个修饰符其实就是不同的权限。public是公共的,任何类的方法都可以调用。private是私有的,只有本类的方法可以调用。变量一般就是数据啊,你有价值的数据怎么能随便被别人看到呢。所以就用private,方法就是被别人调用的,所以用public。
Ⅱ Java中目前学习涉及到的四种权限修饰符都有什么并说明各自的权限范围
(1)public : 公共权限
修饰对象: 修饰类、方法、属性
继承: 被public所修饰的成员能被该类的所有子类继承下来。
作用域: 可以被任意类访问
public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。说到这里,穿插多一点知识。一个类作为外部类的时候只能被public或者默认访问修饰符所修饰,但是一个类如果作为内部类的时候,则可以被四种访问修饰符所修饰,因为一个类作为内部类的时候,就作为外部类的一个成员属性了,因此可以有四种访问修饰符修饰,这是内部类和外部类的一个区别。
public用来修饰类中成员(变量和方法),被public所修饰的成员可以在任何类中都能被访问到。通过操作该类的对象能随意访问public成员。
public在类的继承上的体现,被public所修饰的成员能被所有的子类继承下来。
(2)protected:受保护的权限
修饰对象:修饰内部类,接口,属性,方法
继承: 被protected所修饰的成员能被该类的所有子类继承下来。
作用域: 可以被同包类访问,如果不是同包,必须是该类的子类才能访问
(3)default : 同包权限(默认,缺省的)
修饰对象:修饰类,属性,方法。
继承:被default所修饰的成员只能被该类所在同一个package中的子类所继承下来。(也就是说只有在同一个package中的子类才能访问到父类中default修饰的成员)
作用域: 只能被同包的类访问
(4) private : 私有权限
修饰对象 : 内部类,属性,方法
作用域: 只能在本类中使用
注意:
(1)protected不能修饰类。
(2)priavte可以修饰类,但是该类必须是一个内部类。
在定义类时,推荐访问控制级别从严处理:
(1) 如果不允许外部直接通过 new 创建对象,构造方法必须是 private。
(2)工具类不允许有 public 或 default 构造方法。
(3)类非 static 成员变量并且与子类共享,必须是 protected。
(4)类非static成员变量并且仅在本类使用,必须是private。
(5)类 static 成员变量如果仅在本类使用,必须是 private。
(6)若是 static 成员变量,必须考虑是否为 final。
(7)类成员方法只供类内部调用,必须是 private。
(8)类成员方法只对继承类公开,那么限制为 protected。
Ⅲ java里面得修饰符,能形象解释下嘛。 就是不懂,
公共: public :是java语言中对访问范围最宽的修饰符,被其修饰的类、属性、方法不仅可以跨类访问,而且可以跨包访问(这也是修饰类和方法最常用的修饰符)
保护: protected 的访问范围介于public 和 private之间,被其修饰的类,属性,方法只能被类本身的方法以及子类的方法访问,即使子类在不同的包中也可以访问该变量。其它与声明变量的类无继承关系的类方法是不能访问该变量的。
无修饰符:这是默认访问模式,它只允许包内进行访问,不同包之间不能访问
私有: private : private是Java语言中对访问限制最窄的的修饰符,被其修饰的属性,
公共就相当于公共食堂,谁都可以来吃饭
保护的就相当于家里的食堂,只能自家人来吃饭
无修饰符就是公司的食堂,只能是公司的人来吃饭
私有的就是自己屋自己偷着吃饭咯 ,别人都不能吃
Ⅳ Java中类有哪些访问控制修饰符,并指出它们的访问控制作用范围
类的访问控制符只有public与默认两种;类成员的访问控制符包括public,private,protected,与默认,java中没有friendly。public代表允许所有类及成员访问,private代表仅允许本类成员访问,protected代表仅允许本类及其子类成员访问,默认代表允许本包中类及其成员访问
Ⅳ 请问:java类成员访问修饰符的限制范围
public
访问范围最大,也就是任何其他类都可以调用这个类的方法或属性。
private
访问范围最小,也就是只能在这个类的内部使用,外部调用不了
protected
访问范围算是中间,只有本类和子类才能访问。
Ⅵ java 中的修饰符有那几个,它们的访问权限的范围是多少
java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下几种。
1、权限访问修饰符
public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。
包外 子类 包内 类内
public yes yes yes yes
protected no yes yes yes
default no no yes yes
private no no no yes
2、final修饰符
final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
3、abstract修饰符
abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。
4、static修饰符
static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例。
Ⅶ java 中有多少修饰符,它们的访问权限又是什么
楼主问的是访问控制符,只有访问控制符才说访问权限
JAVA里面 准确来讲是有四个访问控制符 默认、public、private、protected等四个
pravite 只能在同一个类中访问
protected,可以在同一个类、同一个包、不同包中的子类访问
默认:在同一个类、同一个包中访问
public 同一个类,同一个包、不同包中的子类、不同包中的非子类
不知道楼主问的是不是这,如果不是可以再留言
Ⅷ java中的权限控制修饰符有几个,每个权限修饰符的控制范围是什么
Java中所谓的“friendly”和“default”都只是一种说法,并不是说真有那么一个指定默认访问权限的关键字(default倒的确是个语言关键字,但那是用在switch语句中的)。
Java中类的成员权限修饰符只有三个:public/private/protected。
当一个类的成员前面没有任何访问权限修饰符修饰时,我们就说他是“fiendly权限”,或者“default权限”(注意,只是这样“说”,并不是说你可以那样写上去)。
Ⅸ java中四种访问权限修饰符的各种情况介绍(最好是个人心得!!)、简明易懂些的
访问修饰符有四种public protected 默认的不写的 private
要区分的重点 在同包中的类和不同包中类中的访问 (注意这里是指类和类之间的访问权限)
同包的类是指写在一个文件夹中的类,不同包中的类是指写在不同文件夹中的类(如不同项目和不同包都是这个范畴)
下面关键的权限问题了
public 访问权限最大,同包(同文件夹)里面的类绝对是可以互相访问的,不同包中的类只要经过import得到了路径后也是可以通过类的对象访问的
protected 和 默认的比public访问权限都要小(不能在其他包中被访问除非继承这里是指protected)但他们两之间有细微的区别就是在不同包中的类继承protected和 默认的时候 ,继承的类能够访问用protected修饰的成员而不能访问默认即不写修饰符的成员
private 范围最小 只能在类内部的成员之间进行访问,外部的类是绝对没有办法通过对象访问到私有成员的,继承的类也不会继承private的成员(完全手打)
Ⅹ Java 访问控制修饰符
帮你找了一篇博客,写的很好:http://xuyan6688.blog.163.com/blog/static/2920588920115178519198/
public :能被所有的类(接口、成员)访问。
protected:只能被本类、同一个包中的类访问;如果在其他包中被访问,则必须是该成员所属类的子类。
private:成员变量和方法都只能在定义它的类中被访问,其他类都访问不到。对成员变量的进行获取和更改,一般用get(),set() ,public 方法。实现了Java面向对象的封装思想。
friendly(缺省):访问权限与protected相似,但修饰类成员时不同包中的子类不能访问。
static:修饰变量,称为类变量或静态变量。静态变量是和类存在一起的,每个实例共享这个静态变量,在类加载时初始化。
final:被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不能更改。修饰类是不能派生出子类,修饰方法时,不能被当前子类的方法覆盖。
abstract:不能创建abstract 类的实例。一般被继承,实现抽象方法。类只要有一个abstract方法,类就必须定义为abstract,但abstract类不一定非要保护abstract方法不可。
如果对你有帮助请采纳,谢谢!