博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TIJ 复习笔记6
阅读量:4346 次
发布时间:2019-06-07

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

访问控制与“最初的实现并不恰当”有关
  • 类的访问权限
  • 方法和成员的访问权限

包结构

  1. 一个文件如HelloWorld.java被称为一个编译单元。
  2. 包内必须有一个 HelloWorld的类,是public的类,其他类对外不可访问。
  3. package hello;将许多文件从属同一个群组;目录结构应该放在hello下面。
  4. import hello.HelloWorld 或者import hello.*; 就可以导入其他类,并进行使用。
  5. 目录结构配合package关键字,保证包名独一无二。 例如
    package net.mindview.simple;
    public Print {
    }
    文件应该结构为:X:\xxx\net\mindview\simple\Print.java
  6. import配合classpass 寻找包 ,X:\xxx 应该在CLASSPATH变量中。
  7. import static net.mindview.simple.Print.*; 可以导入静态方法,直接使用。

类的访问权限

public 的类同一个包可以直接使用,不同包需要import。

不可以是private或者protect。
非public的类,只有包访问权限,包外无法访问

方法和成员的访问权限

类内部,无论是哪种权限修饰符,都可以互相访问。

类外部,

public的方法/成员,可以被访问到。
(无论是对象访问,还是静态成员访问。无论包内,包外。)

private的方法/成员,不可以被外部(包内/包外)访问到。

(内部可以,内部的static方法也可以创建对象进行访问)

包访问权限,允许包内访问,包外无法访问。

protected,继承父类的方法,如果是public,就可以访问,如果是private,就不能访问。protect的方法可以访问。

看一下如下表格就一目了然:

名称 包外 包外继承 包内继承 包内
public 可以 可以 可以 可以
protected 不可以 可以 可以 可以
包访问 不可以 不可以 可以 可以
private 不可以 不可以 不可以 不可以

注:包内,protected方法的都可以访问到。

TIJ的记法,public都可以,private都不可以,包访问包内可以。protected给包外的继承打开了一扇小窗。


被访问的类如下: (再分别写四个类,包外、包外继承、包内继承、包内 访问 Test1的四个方法,可以得出上表的结论)

package access.solution;import static net.mindview.util.Print.*;public class Test1 {
public void foo1(){ print("public foo1"); } protected void foo2(){ print("protected foo2"); } void foo3(){ print("default foo3"); } private void foo4(){ print("private foo4"); } public static void main(String[] args){ Test1 a = new Test1(); a.foo1(); a.foo2(); a.foo3(); a.foo4(); }}

END

转载于:https://www.cnblogs.com/shalk/p/9769571.html

你可能感兴趣的文章
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_19、SpringBoot个性化启动banner设置debug日志...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_20、SpringBoot2.x配置全局异常实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第5节 SpringBoot部署war项目到tomcat9和启动原理讲解_23、SpringBoot2.x启动原理概述...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_35、事务介绍和常见的隔离级别,传播行为...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
查看>>