java权限控制
来源:互联网 发布:速卖通软件 编辑:程序博客网 时间:2024/06/15 18:36
访问权限分为
public:共有的,可供所有类访问在那都可以访问,这个就不写代码演示了。
default
默认的修饰符,同一个包内可以访问
同包情况:
package com.test.ThinkInJava.access;public class TestAccess { String s="";//默认修饰 defualt修饰的 s变量 public TestAccess() { } void testAccess(){//默认修饰符 defualt修饰的方法 System.out.println("TestAccess------------"+s); }}
测试代码:
package com.test.ThinkInJava.access;public class AccessMain { public AccessMain() { } public static void main(String[] args) { TestAccess test=new TestAccess(); test.s="测试defualt访问权限--同包";//同包中修改变量s的值 test.testAccess();//同包调用defualt修饰的方法 }}
输出结果:
**TestAccess————测试defualt访问权限–同包
**
不同包情况:
报错信息是:TestAccess.s在这个区域是不可见的,提示方法也是不可见的,
protected
被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
实例:
package com.test.ThinkInJava.access;public class TestAccess { protected String s=""; public TestAccess() { } protected void testAccess(){ System.out.println("TestAccess------------"+s); }}
测试代码:
package com.test.ThinkInJava.access;public class AccessMain { public AccessMain() { } public static void main(String[] args) { TestAccess test=new TestAccess(); test.s="测试protected访问权限--同包"; test.testAccess(); }}
输出结果:
TestAccess————测试protected访问权限–同包
不同包情况跟defualt情况是相同的,也是不可见的。
不同包的子类:程序稍做修改TestAthPackage继承与TestAccess在TestAthPackage就可以访问其父类的属性与方法。
package com.test.ThinkInJava.access.othPackage;import com.test.ThinkInJava.access.TestAccess;public class TestAthPackage extends TestAccess {//继承父类 public TestAthPackage() { } public static void main(String[] args) { TestAthPackage test=new TestAthPackage();//创建本类对象 test.s="测试defualt访问权限--非同包";//多态调用其父类protected属性(多态后续会有讲解) test.testAccess();//调用父类protected方法 }}
输出结果:
TestAccess————测试defualt访问权限–非同包
private
私有的, Java语言中对访问权限限制的最窄的修饰符,可以修饰内部类和变量,可以修饰非静态方法。修饰的变量与方法是不可被继承的
修饰内部类
public class TestAccess { public TestAccess() { } public void testAccess(){ AccessSon son=new AccessSon(); son.s="AccessSon的s变量"; son.test(); } private class AccessSon{//private 修饰的内部累 public String s;//公有属性 private void test(){//私有方法 System.out.println("AccessSon--------"+s); } }}
测试程序
public class AccessMain { public AccessMain() { } public static void main(String[] args) { TestAccess test=new TestAccess(); test.testAccess(); }}
输出结果:
AccessSon——–AccessSon的s变量
内部类的私有方法只能在外部类中通过内部类对象调用,不能在其他类中直接创建私有内部类,
网上找的一个对照表,如下:
更多文章请扫码关注微信公众号。
0 0
- java权限权限控制
- Java权限控制算法
- Java权限控制
- java访问权限控制
- JAVA 权限访问控制
- java 注解权限控制
- JAVA访问权限控制
- JAVA访问权限控制
- Java 访问权限控制
- java 访问权限控制
- JAVA访问权限控制
- java 访问权限控制
- Java访问控制权限
- Java访问控制权限
- Java 访问控制权限
- java访问权限控制
- java 权限控制算法
- java访问权限控制
- ARM cortex a 的 LCD显示
- Alcatraz不错的插件管理
- SIT和UAT有什么区别?
- 遍历数组和集合
- 圆角Imageview--RoundedImageView
- java权限控制
- java学习日记_18:面向对象之封装的好处和原则。07.05
- 《Linux多线程服务端编程》—线程同步精要
- MS DOS 命令大全
- 字符串倒序
- redis分布式锁实现
- 计算机名词
- iOS linker command failed with exit code 1 (use -v to see invocation)
- [转载][笔记]MySQL 配置优化