一起学Java(十七)-----访问修饰符
时间:2019-11-26
本文章向大家介绍一起学Java(十七)-----访问修饰符,主要包括一起学Java(十七)-----访问修饰符使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
不积跬步,无以至千里;不积小流,无以成江海。
Java语言基础
Java访问修饰符
访问修饰符 | 同类 | 同包 | 不同包,子类 | 不同包,非子类 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
默认 | √ | √ | ||
private | √ |
- 1. 首先是同一个类(Test 类)中,4种权限修饰符所修饰成员的访问情况
package study; public class Test { public void print() { System.out.println("public方法!"); } protected void print1() { System.out.println("protected方法!"); } void print2() { System.out.println("默认方法!"); } private void print3() { System.out.println("privated方法!"); } public static void main(String[] args) { // TODO Auto-generated method stub Test test = new Test(); test.print(); test.print1(); test.print2(); test.print3(); } }
程序输出:
public方法! protected方法! 默认方法! privated方法!
- 2. 同一个包中(子类与其它类))4种权限修饰符所修饰成员的访问情况
- a. 同包中的子类
package study; public class Test { public void print() { System.out.println("public方法!"); } protected void print1() { System.out.println("protected方法!"); } void print2() { System.out.println("默认方法!"); } private void print3() { System.out.println("privated方法!"); } } class Son extends Test { public static void main(String[] args) { // TODO Auto-generated method stub Son son = new Son(); son.print(); son.print1(); son.print2(); son.print3();//这里提示错误,程序无法执行。 } }
- b. 同包的其他类
package study; public class Test { public void print() { System.out.println("public方法!"); } protected void print1() { System.out.println("protected方法!"); } void print2() { System.out.println("默认方法!"); } private void print3() { System.out.println("privated方法!"); } } class Other { public static void main(String[] args) { // TODO Auto-generated method stub Test test = new Test(); test.print(); test.print1(); test.print2(); test.print3();//这里提示错误,程序无法执行。 } }
- 3. 不同包中(子类与其它类))4种权限修饰符所修饰成员的访问情况
- 子类
package study; public class Test { public void print() { System.out.println("public方法!"); } protected void print1() { System.out.println("protected方法!"); } void print2() { System.out.println("默认方法!"); } private void print3() { System.out.println("privated方法!"); } } package study1; import study.*; public class Son1 extends Test{ public static void main(String[] args) { // TODO Auto-generated method stub Son1 son1 = new Son1(); son1.print(); son1.print1(); son1.print2();//程序错误,无法执行。 son1.print3();//程序错误,无法执行。 } }
- 其他类
package study; public class Test { public void print() { System.out.println("public方法!"); } protected void print1() { System.out.println("protected方法!"); } void print2() { System.out.println("默认方法!"); } private void print3() { System.out.println("privated方法!"); } } package study1; import study.*; public class Son1 { public static void main(String[] args) { // TODO Auto-generated method stub Test test = new Test(); test.print(); test.print1();//程序错误,无法执行。 test.print2();//程序错误,无法执行。 test.print3();//程序错误,无法执行。 } }
注意:所说的同一个包或者不同包,指的是编译后的class文件是否在同一个文件夹里。
博客借鉴:https://blog.csdn.net/u013771764/article/details/81226908
原文地址:https://www.cnblogs.com/smilexuezi/p/11934411.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 前端:如何让background背景图片进行CSS自适应
- 为什么Rust的println!不会发生所有权转移?
- 【译文】Rust futures: async fn中的thread::sleep和阻塞调用
- Smart Pointer Programming Techniques
- 一文搞懂AQS及其组件的核心原理
- 比较JavaScript中的数据结构(数组与对象)
- 9 个JavaScript 技巧
- [已解决]报错:XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded.
- 2.3 spring5源码---spring ioc 加载配置类的源码
- Tree Shaking概念详解
- Canvas基础教程(章节1)
- Canvas基础教程(章节2)
- CSS文件夹
- Canvas基础教程(章节3)
- 口算训练 HDU - 6287