【JAVA基础篇】访问权限

所谓访问权限,指的是本类的成员变量、成员方法和内部类对其他类的可见性。

四种访问权限

Java一共有四种访问权限,按照权限由大到小分别为public、protected、default和private,如果省略了访问修饰符,那访问权限就是defualt。四种访问权限的含义和权限控制见下面表格:

访问权限含义本类本包的类非本包子类非本包非子类
public公共的
protected保护访问权限
default包访问权限
private私有的

注意:所谓的访问,有两种方式,直接访问和通过对象访问。

实际情况跟表格有些出入,需要注意的点:在非本包子类,通过父类的对象实例只能访问父类的public成员,不能访问protected成员。

举例说明

基类SupClass

package com.cc.accessright;
/*** * @描述: 父类* @版权: Copyright (c) 2019 * @作者: cc* @版本: 1.0 * @创建日期: 2019年5月28日 * @创建时间: 上午11:02:06*/
public class SupClass
{public void publicMethod(){System.out.println("=============publicMethod=============");}protected void protectedMethod(){System.out.println("=========protectedMthod===========");}void defaultMethod(){System.out.println("=========defaultMethod========");}private void privateMethod(){System.out.println("=========privateMethod========");}
}

子类SubClass

package com.cc.accessright.demo;import com.cc.accessright.SupClass;
/*** * @描述: 与父类不同包的子类* @版权: Copyright (c) 2019 * @作者: cc* @版本: 1.0 * @创建日期: 2019年5月28日 * @创建时间: 上午11:01:28*/
public class SubClass extends SupClass
{public static void main(String[] args){SupClass supClass = new SupClass();supClass.publicMethod();//子类通过父类对象能访问父类的public成员,其他访问级别的成员不能访问}public void subClassMethod1(){//子类可以直接访问父类的public、protected,其他访问级别的成员不能访问publicMethod();protectedMethod();}
}

同包的类PackageClass

package com.cc.accessright;
/*** * @描述: 同包的类* @版权: Copyright (c) 2019 * @作者: cc* @版本: 1.0 * @创建日期: 2019年5月28日 * @创建时间: 上午11:04:14*/
public class PackageClass
{public static void main(String[] args){//通过对象访问public、protected和default方法,不能访问private级别的成员SupClass supClass = new SupClass();supClass.publicMethod();supClass.protectedMethod();supClass.defaultMethod();}}

其他

外部类访问权限只能是public或者default,但一个Java文件最多只能有一个public修饰的类,且文件名必须跟public修饰的类类名相同。当Java文件不存在public修饰的类时,文件名可以随意取。

接口的成员变量只能是public static final修饰的(可以省略),成员方法不同的JDK版本有差异:JDK1.6实测:成员方法只能是public abstract修饰的(可以省略);JDK1.8实测: 成员方法只能是public修饰的(可以省略),另外还可以使用abstract, default, static和strictfp来修饰,其中abstract,default,static互斥,使用default或者static时必须提供方法的实现,strictfp不能单独使用,要配合default或者static一起使用。

重写或者实现方法时,访问权限必须比父类大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle存储过程

什么是存储过程 存储过程是一组为了完成特定功能的SQL语句,经编译后存在数据库,存储过程是数据库中的一个重要对象。 ps:有人说:任何一个设计良好的数据库应用程序都应该用到存储过程,我觉得这个不一定,其实很多互联…

解决debug JDK source无法查看局部变量的问题

首先进入传送门:https://blog.csdn.net/majian_1987/article/details/51273609 进行上面的操作之后,这个时候我们来debug一下jdk源码,发现可以查看局部变量。但是这时候又发现一个问题,在我自己的代码里按住ctrl鼠标左键单击无法…

【JAVA基础篇】多线程

学习Java的多线程知识之前,我们先来了解一下进程和线程的概念,以及他们之间的关系。 进程 基本概念 进程是具有独立功能的程序在某个数据集合上的一次执行过程。 特点 进程是操作系统进行资源分配的基本单位。每个进程都有自己的地址空间&#xff0…

配置JAVA开发环境

1、首先去Oracle官方网站下载所需版本的JDKhttp://java.sun.com/products/archive/,然后安装,其实只需要安装jdk就可以了,不需要安装jre 2、按照后配置环境变量JAVA_HOME 然后在path最前面添加%JAVA_HOME%\bin; 3、cmd中输入java -version,提…

【JAVA基础篇】枚举

/*** 一组相同类型的常量的集合* author cc**/ public class EnumDemo {public static void main(String[] args) {//遍历for(WorkDay workDay:WorkDay.values()){System.out.println("序号:"workDay.ordinal());//ordinal,返回枚举常量的序号…

【JAVA基础篇】集合框架

一、集合框架图 Java集合框架主要包含两种类型的容器,一是集合(Collection),存储元素集合,二是图(Map),存储键(key)-值(value)对.Collection接口下面有两个重要的子接口List和Set,再下面是一些抽象类,最后是…

【JAVA基础篇】对象初始化过程

我们都知道,创建对象是由 new关键字调用构造方法 返回类实例(实际上还可以通过反射来创建实例)。 例如 : Person jack new Person(); 这句话到底做了什么事情呢 ? 其实就是讲对象的初始化过程。 1、 new 用到了Person.class,所…

【Java基础篇】try catch finally语句包含return语句时的执行过程

网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行? 很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被 try语句没有被执行到,如在…

eclipse指定JDK版本启动,解决version XXX of the JVM is not suitable for this product.Version:XXX 问题

问题描述:启动eclipse时,提示version 1.7.0 of the JVM is not suitable for this product.Version:1.8 or greater is required. 原因分析:原因是我的笔记本安装了多个JDK版本,但是现在我的JAVA_HOME配置的是jdk1.7的路径&#x…

【JAVA基础篇】Socket编程

一、Socket的概念 Socket是一种通讯机制,通常称为套接字。英文原意是插座,顾明思义,Socket像是一个多孔插座,可以提供多个端口的连接服务 ps:至于socket在计算机术语中怎么就翻译成了“套接字”这个令人费解的词,这真…

【JAVA基础篇】注解

一、什么是注解? 注解是元数据,所谓元数据就是描述数据的数据。 在annotation诞生之前(jdk1.5诞生了注解),甚至之后,xml被广泛的由于描述元数据。但是后来,有一些应用开发工程师和架构师觉得它…

【JAVA基础篇】IO流

一、流的概念 “对语言设计人员来说,创建好的输入/输出系统是一项特别困难的任务。” ――《Think in Java》 无论是系统、还是语言的设计中IO的设计都是异常复杂的。面临的最大的挑战一般是如何覆盖所有可能的因素,我们不仅仅要考虑文件、…

SpringMVC注解

一,RequestMapping 可以用在类和方法上 1.1 作用: 将客户端请求映射到可匹配的类和方法中 1.2 属性: name 给映射指定一个名字 path(同value相同) 请求的url,path{"/mixedAttribute1","/mixedA…

【JAVA基础篇】运算符

一、表达式 表达式由运算符和操作数组成 例如: 5 num1 num1num2 sumnum1num2 二、运算符分类 算数运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符、位运算符 三、算数运算符 四、赋值运算符 格式:变量表达式 例如:int n3…

a4纸网页打印 table_打印模板不愁人,你还在打印单调的A4纸吗?

软件介绍早在几年前,社会上就已经开始了数字化、无纸化的推广,但是就算再怎么无纸化,纸张还是有它必要的存在,在工作、学习过程中,打印的需求也必不可少的。但是一般的打印都是比较平庸的,要做会议记录&…

IP地址、子网掩码、网关、默认网关、DNS的理解

IP地址 Internet上为了区分数以亿计的主机而给每个主机分配一个专门的地址,通过IP地址可以访问到每台主机。 子网掩码 子网掩码又称网络掩码、地址掩码、子网络遮罩。它是用来指明一个IP地址哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位…

上证指数30年k线图_技术预判2020:上证指数要突破3500点才会“井喷”

2019年的行情很快就要收官了,截止目前,上证指数今年的涨幅是20.5%,不过可能有部分投资者今年的收益率还没达到大盘指数的平均水平。不管怎样,今年很快就要翻篇了,关键是看2020年股市能不能迎来更好的行情了。而总结得失…

【JAVA基础篇】基本数据类型及自动类型转换

一、8种基本数据类型以及占用内存空间大小 boolean 1byte或4byte byte 8bit/1byte char 16bit/2byte short 16bit/2byte float 32bit/4byte int 32bit/4byte long 64bit/8byte double 64bit/8byte 二、自动类型转换 …

的优缺点_浅谈桉木家具的优缺点

家具现在的材质是有很多的,木质的,石材的,还有真空充气的,都是很不错的类型。桉木家具是现在很多人都喜欢的一种材质,但是很多人对桉木家具的优缺点不是很清楚,为了能够让大家更加清楚的了解桉木家具&#…

【算法篇】递归

一、递归的概念 程序调用自身的编程技巧称为递归。 递归的核心思想就是将一个大规模复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。 二、递归的优点 使用递归的好处是只需要少量的代码就可以描述出求解问题过程中多次重复的计算,大大减少了程序…