以前对于java中类的访问控制没有做一定的研究,毕竟每次编代码由于Eclipse的智能型使得现在某些原理并没有实际的掌握,因此今天重新自己编代码将其区别分辨出来。
1. Private:它只能被所定义的类或类的不同对象所访问。当外部访问这个变量时将出错。
public class A {
private int a;
private void count(){
System.out.println("测试");
}
}
public class B {
public void acceptMethod(){
A a=new A();
a.a=10;
a.count();
}
}
这样是错误的,B不能访问A的属性及方法,因为类B不是A类型的。但是如果我让B继承A,这样它会对吗?答案也是否定的。如果B继承A,只能说明B是A的子类,并不能说明B就是A类型。因此这里可以将A中的访问权限改为public和protected;
2. Protected:允许类本身、子类以及相同包中的类访问它,属于家庭秘密型,不让外人知道
package A;
public class A {
protected int a;
protected void count(){
System.out.println("测试");
}
}
package B;
import A.A;
public class B extends A{
void test(){
A a=new A();
a.a=10;
a.count();
}
}
此方式是错误的,不被不同包中的类访问,所以是不能得到编译的。将该类放入同一包中,此时就是前面private说到的处理方式了,这样protected属性及方法就能得到访问。
3. Public是无秘密可言,任何人都能看到。即使在不同包中任然一样能够访问。拿protected前面处理的例子进行修改,将发现其是可行的。在这里就不做代码介绍了。
4. 缺省
Java中如果不显示地设置成员访问控制的时候,即缺省的访问控制,该访问控制允许在相同包中的类成员之间相互访问,相当于在同一包中的类是相互信任的朋友。
package A;
public class A {
int a;
void count(){
System.out.println("测试");
}
}
package B;
import A.A;
public class B extends A{
void test(){
A a=new A();
a.a=10;
a.count();
}
}
该方式处理是错误的,因为他们不属于同一个包中,且其访问方式是缺省的方式。处理方式是对缺省方式,将另外一个访问类放置于同一个包中。
总结:根据上面的例子及分析做如下总结。
1. Public的访问权限最大,可以被不同包中的任何类访问到。
2. Protected访问权限属于家庭秘密型,秘密只归“亲戚”所分享,因此不同包的类不允许其访问。
3. Private最自私,其只允许自己访问。因此针对某些需要保护的数据可以采用该修饰符。
4. 缺省访问权限与protected相类似。
分享到:
相关推荐
本文档介绍了Java中的访问控制权限修饰符。它解释了public、private、protected和默认访问级别的含义和用法,以及它们在类、接口、成员变量和方法中的应用。 能学到什么 通过阅读本文档,您将学习以下内容: 不同...
实验目的 理解掌握Java类修饰符、访问控制符等;理解熟悉String类的equals方法和= =运算符;进一步熟悉面向对象基本概念;熟悉Java中对象声明、创建、访问、参数传值等基本语法;
一、访问控制修饰符 Java 支持 4 种不同的访问权限: private 私有的 protected 受保护的 public 公共的 default 默认 1、访问权限 总结成如下表格: 修饰符 当前类 同一包内 子孙类 其他包 public yes yes yes yes ...
访问控制修饰符,以及枚举
本篇文章给大家详细分析了Java四种访问控制修饰符的相关知识点,有兴趣的朋友可以参考学习下。
java的访问控制符分为两类:类的访问控制符,属性和方法的访问控制符。 1. 类的访问控制符有两种:public, default(默认的,什么都不用写) default是包内访问控制符。 当然对于内部类还可以有static修饰,...
java的控制符可分为两大类,一种是访问控制符,另一种是非访问控制符。我们上文提到的public,private便是访问控制符了。 访问控制符:访问控制符的作用是说明被声明的内容(类、属性、方法和构造方法)的访问权限 ...
主要介绍了Java import导入及访问控制权限修饰符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1、多态基础语法 2、多态在实际开发中的作用 3、final关键字 4、关于package和import 5、关于访问控制权限
java类、对象、成员 package、import、访问修饰控制符 接口和抽象类 细心总结,解惑上述所引起的一些困惑
上章讲了访问控制符,这章开始讲非访问控制符。 java中的非访问修饰符的作用各不一样,据我所知常用的有六种: static final abstract synchronized volatile transient 今天我们只讲前三种,后面三种等我们讲到线程...
private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。 所有类...
第十季主要是给大家介绍一下:包的作用及使用、Java访问控制修饰符、Java非访问控制修饰符、Java中异常的概念、Exception类的层次、Java内置异常类、捕获异常、多重捕获块‘、throws关键字、finally关键字。
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。 如果没有指定访问修饰符,默认情况下,Scala 对象的访问级别都是 public。 Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,...
Access modifier 访问控制修饰符:访问控制修饰符用来修饰Java中类、以及类的方法和变量的访问控制属性。 Anonymous class 匿名类:当你需要创建和使用一个类,而又不需要给出它的名字或者再次使用的使用,就...
和Java一样,scala也可以通过访问修饰符,来控制成员变量和成员方法是否可以被访问。 定义 Java中的访问控制,同样适用于scala,可以在成员前面添加private/protected关键字来控制成员的可见性。但在scala中,没有...
获得需要的访问控制。 A .public B .no modifier C .protected D .private 【试题分析】Java 有4 种访问类型,分别为public 、protected 、default 和private 。其中public 变量 可以被所有的外部类访问,而...
实例变量的作用域至少在本类内部,受访问控制符的限制。 在重合作用域,实例变量和局部变量允许有命名冲突,“局部优先”。 定义方法: 格式: [ 修饰符 ] 返回类型 方法名( 参数列表 ) [ throws ...
8、JAVA面向对象之函数、堆和栈、访问修饰符 9、JAVA面向对象关键字 10、JAVA面向对象抽象类abstract 11、JAVA面向对象接口interface 12、JAVA面向对象之内部类、匿名内部类 13、JAVA集合框架之简介 14、JAVA...
Java 平台模块系统是在 JDK 9 正式发布的。为了沟通起来方便,我们有时候就直接简称为 Java 模块。...缺失的访问控制 我们都清楚并且能够熟练地使用 Java 的访问修饰符。这样的访问修饰符一共有三个