Java访问修饰符原理及代码解析
时间:2021-05-29 07:45:38|栏目:JAVA代码|点击: 次
一、概述
访问等级比较:public > protected > default > private
无论是方法还是成员变量,这四种访问权限修饰符作用都一样
- public:不管包外包内,所有类(子类+非子类)均可使用
- protected
- 包内:所有类可使用
- 包外:子类可使用,非子类不可使用
- default
- 包内:所有类可使用
- 包外:所有类不可使用
- private:仅本类可使用
二、示例代码
Test包内的父类Permission
public class Permission {
private int privateValue = 1;
public int publicValue = 1;
protected int protectedValue = 1;
int defaultValue = 1;
void defaultFunc(){
System.out.println("This is a default function");
}
public void publicFunc(){
System.out.println("This is a public function");
}
protected void protectedFunc() {
System.out.println("This is a protected function");
}
private void privateFunc(){
System.out.println("This is a private function");
}
}
Test包内的子类SubPermission
public class SubPermission extends Permission{
public void permissionTest(){
// public, protected, default function and variable can be used
System.out.println("this is a default value:" + this.defaultValue);
System.out.println("this is a public value:" + this.publicValue);
System.out.println("this is a protected value:" + this.protectedValue);
this.publicFunc();
this.protectedFunc();
this.defaultFunc();
}
}
Test包外的子类
import base.Test.Permission;
public class Demo extends Permission {
public static void main(String[] args) {
// if is not a subclass, only public function and variable can be used
Permission obj = new Permission();
obj.publicFunc();
System.out.println("this is a public value:" + obj.publicValue);
// if is a subclass, public and protected function and variable can ba used
Demo demo = new Demo();
demo.publicFunc();
demo.protectedFunc();
System.out.println("this is a public value:" + demo.publicValue);
System.out.println("this is a protected value:" + demo.protectedValue);
}
}
栏 目:JAVA代码
下一篇:详解Spring与Mybatis的整合方法(基于Eclipse的搭建)
本文标题:Java访问修饰符原理及代码解析
本文地址:http://www.codeinn.net/misctech/131252.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




