java中有哪些访问修饰符_java中四种访问修饰符
Java中的四种访问修饰符:public、protected、default(无修饰符,默认)、private。
四种修饰符可修饰的成分(类、方法、成员变量)
public
protected
default
private
类
√
×
√
×(内部类可以用private修饰)
方法
√
√
√
√
成员变量
√
√
√
√
四种修饰符的访问权限
public:对所有类可见
protected:对同一包中的类可见、对同一包及不同包中的子类可见
default:对同一包中的类可见、对同一包中的子类可见
private:仅对类本身可见
可见是可访问的意思,即由这些修饰符修饰的成分(类、方法、成员变量)可以被其它类访问。对子类可见即子类可以继承。
这里需要注意的是protected与default,二者的区别在于不同包中的子类是否可以继承。
访问权限
类
同一包
同一包中的子类
不同包中的子类
不同包
public
√
√
√
√
√
protected
√
√
√
√
×
default
√
√
√
×
×
private
√
×
×
×
×
例如
package1:ParentClass、ChildClassOne、TestOne
package2:ChildClassTwo、TestTwo
package3:TestThree
其中ParentClass为
public class ParentClass {
public int a=2;
protected int b = 3;
int c = 4;
private int d = 5;
}
1.对于TestOne来说,ParentClass类、a、b、c均可见,d不可见。即在TestOne中可以new一个ParentClass对象,且该对象中的a,b,c变量可操作。如下:
public class TestOne {
public static void main(String args[]) {
ParentClass obj = new ParentClass();
System.out.println(obj.a);
System.out.println(obj.b);
System.out.println(obj.c);
//System.out.println(obj.d); //d 不可见
}
}
2.ChildClassOne继承ParentClass且与其在同一个包中,则a、b、c均可见,d不可见。
public class ChildClassOne extends ParentClass{
public static void main(String args[]) {
ChildClassOne obj = new ChildClassOne();
System.out.println(obj.a);
System.out.println(obj.b);
System.out.println(obj.c);
//System.out.println(obj.d); // d不可见
}
}
3.ChildClassTwo继承ParentClass,则a、b均可见,d不可见,由于子类与ParentClass不在同一包中,故c(default类型)不可见。
public class ChildClassTwo extends ParentClass{
public static void main(String args[]) {
ChildClassTwo obj = new ChildClassTwo();
System.out.println(obj.a);
System.out.println(obj.b);
//System.out.println(obj.c); // c不可见
//System.out.println(obj.d); // d不可见
}
}
4.对于TestTwo来说,ParentClass类、a均可见,b、c、d不可见。由于TestTwo与ParentClass不在同一个包中,故只有public修饰的成分可见。
public class TestTwo {
public static void main(String args[]) {
ParentClass obj = new ParentClass();
System.out.println(obj.a);
//System.out.println(obj.b); // b 不可见
//System.out.println(obj.c); // c 不可见
//System.out.println(obj.d); // d 不可见
}
}
另外值得注意的是继承父类的子类与其他类之间的可见性,取决于其他类与父类之间的可见性。
对于TestOne来说,ChildClassOne中a,b,c都可见,d不可见,这是由于TestOne与ParentClass在同一个包中。
而对于TestThree来说,ChildClassOne中只有a可见,这是由于TestThree与ParentClass在不同的包中。
需要注意:
虽然a、b对ChildClassTwo可见,TestTwo与ChildClassTwo在同一包中,
但对于TestTwo来说,ChildClassTwo中只有a可见,这是由于TestTwo与ParentClass在不同的包中,只有public修饰的可见。
java中有哪些访问修饰符_java中四种访问修饰符相关推荐
- java 权限修饰符_java中4种访问权限修饰符
在Java编程语言中有四种权限访问控制符,这四种访问权限的控制符能够控制类中成员的可见性. 一.public (1) 定义:public是公共的,被public所修饰的成员可以在任何类中都能被访问到. ...
- Java基础:Java中四种访问修饰符
一.背景. 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下.放假在家里休息,闲来无事,想 ...
- java中四种默认的权限修饰符,Java中四种访问权限资料整理
一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.protected,还有一种不带任何修饰符(default). 1. private: Java语言中对访 ...
- Java 四种访问修饰符区别_四种访问修饰符的区别
在Java编程语言中有四种权限访问控制符,这四种访问权限的控制符能够控制类中成员的可见性. 一.public (1)定义:public是公共的,被public所修饰的成员可以在任何类中都能被访问到. ...
- Java中四种访问权限总结
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.pro ...
- java类默认访问权限_Java的四种访问权限
❝ 所谓访问权限,指的就是本类中的成员变量.成员方法对其他类的可见性 ❞ 试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可 ...
- java乘法表_Java中四种9*9乘法表的实现方式(附代码)
前言: 初学java,实现99乘法表是必学必会的内容. 需求 : 分别写出上下左右,对应四个角的乘法表. 思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式. 代码如下: publi ...
- java中访问修饰符_Java中的非访问修饰符是什么?
java中访问修饰符 Java非访问修饰符 (Java non access modifiers) We have 7 non-access modifiers in Java. The name o ...
- java 输出文件到mac路径_Java 中几种获取文件路径的方式
原标题:Java 中几种获取文件路径的方式 1. 前言 Java开发中我们经常要获取文件的路径,比如读取配置文件等等.今天我们就关于文件的路径和如何读取文件简单地探讨一下. 2. 文件的路径 文件的路 ...
最新文章
- 福建省高等学校非计算机考试大纲,福建省高等院校学生计算机一级考试大纲
- shell编程面试必会30题
- 使用xmake优雅地描述工程
- OData API 和 Restful API 这两个概念的区别和联系
- node --- Missing write access to 解决
- Linux redhat ICE环境安装
- Juniper防火墙新手教程8:Juniper防火墙配置的导入及导出
- MySQL大表关联如何优化_MySQL 对于大表(千万级),要怎么优化呢?
- WorldList3
- GNS3中下载路由器
- Win10 CMD命令大全 命令提示符常用命令有哪些
- java设置word图片居中_Word中怎样快速对齐图片?这样操作,效率提升10倍
- 2010考研数学二第(13)题——导数应用题
- 一次追踪h5游戏中google广告的经历
- 手机设备唯一标识相关概念
- 丁俊晖入交大,无悖于“读书无用”论
- 腾讯云轻量级服务器宝塔快速部署网站
- Windows操作系统+朝鲜红星+国产麒麟+红旗+渗透专用系统+Oracle专用+技术专栏【资源大合集】 | 寻找C站宝藏
- 开源社区的技术债:写代码的“码农”VS 删代码的“清道夫”,谁更该被嘉奖?
- python全栈开发什么意思_如何快速的学习Python全栈开发?这是腾讯大佬给你的建议!...
热门文章
- Android面试宝典2022-(停止更新,请看面试专栏)
- dig的现在分词_dig是什么意思_dig在线翻译_英语_读音_用法_例句_海词词典
- 编程是一种思想,而不是敲代码
- 领导提拔员工看细节,不会容忍这3个“小事”,嘴若太欠后果严重
- Redis 集群配置教程
- 如何解决TortoiseSVN不显示状态小图标问题
- linux kmalloc原理,kmalloc 函数内幕
- mysql反三角函数_MySQL-快速入门(4)MySQL函数
- 软件分享:网页监测及IIS重启工具
- 武汉星河互娱:手游行业热门游戏类型汇总,为休闲娱乐提供新选择