博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9-java学习记录之访问权限
阅读量:4048 次
发布时间:2019-05-25

本文共 1969 字,大约阅读时间需要 6 分钟。

文章目录

1. 类的访问权限

在这里插入图片描述

2. 演示代码的目录结构

AccessRights 目录下面有三个文件,然后Demo.java 和AccessRights 目录下面的文件在不同的包内

.+--- AccessRights|   +--- Fu.java|   +--- test.java|   +--- Zi.java+--- AnotherSon.java+--- Demo.java

在这里插入图片描述

--------访问权限的几种情况--------

3. 在同一个包内

1. 彼此之间没有继承关系

如 test.java 和 Fu.java, 这两者没有继承关系

Fu.java 中 定义了4种权限的变量和方法

package com.itheima.demo.inherit.AccessRights;public class Fu {
private int private_var = 10; int default_var = 11; protected int protected_var = 12; public int public_var = 13; private void private_show() {
System.out.println("父类的private_show()"); } void 父类的default_show() {
System.out.println("父类的default_show()"); } protected void protected_show() {
System.out.println("父类的protected_show()"); } public void public_show() {
System.out.println("父类的public_show()"); }}

在这里插入图片描述

从IDE的提示来看,只有 private 成员变量不能访问之外,其他的都可以在 同一个包中 的test类访问

test.java

package com.itheima.demo.inherit.AccessRights;public class test {
public static void main(String[] args) {
Fu fu = new Fu(); fu.default_var = 30; fu.protected_var = 20; fu.public_var = 1; fu.default_show(); fu.protected_show(); fu.public_show(); }}

程序的输出:

父类的default_show()父类的protected_show()父类的public_show()

从结果上看,也确实是这样。

2. 彼此之间有继承关系

关系跟上面的是一样的。

4. 不同的包内访问权限情况

1. 彼此之间没有继承关系

这里 例如 Demo.javaFu.java 就是 不同包内,没有继承关系的两个类。

Fu.java 和上面的代码是一样的,没有更改过。

从IDE的提示来看只有 public的成员变量和 方法才能被访问。

在这里插入图片描述

Demo.java

package com.itheima.demo.inherit;import com.itheima.demo.inherit.AccessRights.Fu;public class Demo {
public static void main(String[] args) {
Fu fu = new Fu(); fu.public_var = 10; fu.public_show(); }}

看一下结果:

父类的public_show()

确实只能访问public属性的成员变量和方法。

2. 彼此之间有继承关系

例如 AccessRights/Fu.javaAnotherSon.java 是在不同包下面但是具有 继承关系。

在这里插入图片描述

IDE的提示 来看, 子类可以访问 protected 和 public 成员变量和方法。

3. 在子类里面使用父类,也只能访问父类的public方法和成员变量

AnotherSon 继承 Fu, 类内部的show()方法 也只能通过 Fu类访问 public方法和成员变量

在这里插入图片描述

转载地址:http://vhyci.baihongyu.com/

你可能感兴趣的文章
centos 7 上配置dnsmasq 同时支持ipv4和ipv6的DHCP服务
查看>>
AsyncTask、View.post(Runnable)、ViewTreeObserver三种方式总结frame animation自动启动
查看>>
Android中AsyncTask的简单用法
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
微信小程序开发全线记录
查看>>
CCF 分蛋糕
查看>>