【java学习】访问权限修饰符(24)

news2024/11/19 17:33:29

文章目录

  • 1. 四种访问权限修饰符
  • 2. private修饰符
  • 3. 无(缺省)修饰符
    • 3.1. 什么是父子类
  • 4. protected修饰符
  • 5. public修饰符
  • 6. 练习题


1. 四种访问权限修饰符

Java 权限修饰符publicprotectedprivate 置于类的成员定义前,用来限定对象对该类成员的访问权限。

修饰符类内部同一个包子类任何地方
private
(缺省)
protected
public

注意
(1) 对于 class 的权限修饰只可以用 public 和 default( 缺省 ) 。
(2) public 类可以在任意地方被访问。
(3) default 类只可以被同一个包内部的类访问。

2. private修饰符

package day06;

public class Person4 {
	private int age;         //定义一个private变量
	
	private void getAge() {  //定义一个private方法
		System.out.println(age);
	}
	
	//访问方式:类内访问
	public void test() {  //只能在类内部访问private属性和方法
		getAge();
	}

}

3. 无(缺省)修饰符

项目文件结构:Person4.java和Test.java在同一个包(day06)中
在这里插入图片描述
代码示例:

package day06;

public class Person4 {

	int age;          //定义一个 缺省修饰符 的变量
	void getAge() {   //定义一个 缺省修饰符 的方法
		System.out.println(age);
	}
	
	//访问方式1:类内访问
	public void test() {
		getAge();
	}

}

除了类内访问方式,还可以在同一个包中访问:

package day06;

//Test.java和Person4.java都在day06包中
public class Test {
	public static void main(String[] args) {
		
		//访问方式2:同一个包中访问
		Person4 p4 = new Person4();
		p4.test();
	}

}

3.1. 什么是父子类

假设:
    父类:class Person4
    子类命名方式:class PersonChild extends Person4

代码示例如下

package day06.test;
import day06.Person4;   //父类Person4所在的路径

/**
 * 通过extends可以构成父子类的关系
 * PersonChild就是Person4的子类
 * @author 14532
 *
 */

public class PersonChild extends Person4{

	public void test() {
		System.out.println(age);//访问父类中的age变量
		getAge();               //访问父类中的getAge()方法
		//但是上面这中访问方式 没有权限 ,因为父类中声明的修饰符是 缺省修饰符
	}

}

4. protected修饰符

父类代码:

package day06;

public class Person4 {

	protected int age;          //定义一个 protected修饰符 的变量
	protected void getAge() {   //定义一个 protected修饰符 的方法
		System.out.println(age);
	}
	//访问方式1:类内访问
	public void test() {
		getAge();
	}

}

除了类内访问方式,还可以在同一个包中访问:

package day06;

//Test.java和Person4.java都在day06包中
public class Test {
	public static void main(String[] args) {
		
		//访问方式2:同一个包中访问
		Person4 p4 = new Person4();
		p4.test();
	}

}

    前面已经说明了类内访问方式和同一个包中访问方式,这里证明protected修饰符可以在子类中被访问
子类代码:

package day06.test;
import day06.Person4;

/**
 * 通过extends可以构成父子类的关系
 * PersonChild就是Person4的子类
 * @author 14532
 *
 */
public class PersonChild extends Person4{
	public void test() {          //访问方式3:在子类中访问
		System.out.println(age);
		getAge();
	}

}

    如果既不是父子类关系也不在同一个包中:比如Person4.java在day06包中,我在day06.test包中编写一个Test.java去访问Person4

package day06.test;
import day06.Person4;

public class Test {
	public static void main(String[] args) {
		
		Person4 p4 = new Person4();
		p4.age = 4;    //无法访问
		p4.getAge();   //无法访问
	}

}

5. public修饰符

访问权限最广,这里就不赘述了。

注意:在同一个java文件中可以写多个class,但是只有一个public,其他的class只能是缺省的

package day06.test;
import day06.Person4;

public class Test {
	public static void main(String[] args) {
		
		Person4 p4 = new Person4();
		
		p4.age = 4;
		p4.getAge();
	}
	
}

/**
 * 在同一个java文件中可以写多个class,但是只有一个public,其他的class只能是缺省的
 * @author 14532
 *
 */
class T0{
	
}

6. 练习题

1、创建程序 , 在其中定义两个类: Person 和 TestPerson 类。定义如下:
用 setAge() 设置人的合法年龄 (0~130) ,用 getAge() 返回人的年龄。在 TestPerson 类中实例化 Person 类的对象 b ,调用 setAge() 和 getAge() 方法,体会 Java 的封装性。
在这里插入图片描述
答案:
Person.java

package day06;

public class Person {

	private int age;
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int a) {
		if(a <= 130 && a >= 0) {
			age = a;
		}else {
			System.out.println("输入的年龄:" + a + "不在0~130之间");
		}
	}

}

编写TestPerson.java调用Person类中的方法

package day06;

public class TestPerson {
	public static void main(String[] args) {
		Person p = new Person();

		
		p.setAge(12);
//		p.printAge();
		int a = p.getAge();
		System.out.println("输出的年龄为:" + a);
	}

}

运行结果:
在这里插入图片描述

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

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

相关文章

【车载开发系列】嵌入式开发之中断向量表

【车载开发系列】嵌入式开发之中断向量表 嵌入式中断向量表 【车载开发系列】嵌入式开发之中断向量表一. 中断向量表的概念1&#xff09;中断向量2&#xff09;中断向量表3&#xff09;中断向量表的存放 二. 中断向量表的特点三. 中断向量表的作用四. 上电后第一条指令五. 芯片…

ardupilot罗盘数据计算航向

目录 文章目录 目录摘要1.数据特点2.数据结论1.结论2.结论摘要 本节主要记录ardupilot 根据罗盘数据计算航向的过程。 如果知道了一组罗盘数据,我们可以粗略估计航向:主要后面我们所说的X和Y都是表示的飞机里面的坐标系,也就是X前Y右边,如果按照罗盘坐标系Y实际在左边。 我…

USB 转串口芯片 CH340

目录 1、概述 2、特点 3、封装 4、引脚 6、参数 6.1 绝对最大值&#xff08;临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏&#xff09; 6.2 电气参数&#xff08;测试条件&#xff1a;TA25℃&#xff0c;VCC5V&#xff0c;不包括连接 USB 总线的引脚&…

甘特图组件DHTMLX Gantt示例 - 如何有效管理团队工作时间?(一)

如果没有有效的时间管理工具&#xff0c;如工作时间日历&#xff0c;很难想象一个项目如何成功运转。这就是为什么我们的开发团队非常重视项目管理&#xff0c;并提供了多种选择来安排DHTMLX Gantt的工作时间。使用DHTMLX Gantt这个JavaScript库&#xff0c;您可以创建一个强大…

自定义一个简单的操控器类

目录 1. 前言 2. 操控器需求 3. 功能实现 3.1. 预备知识 3.2. 代码实现 3.3. 代码难点说明 1. 前言 osg已经自己实现了很多操控器类&#xff0c;这些操控器类存放在osg源码目录下的src\osgGA目录。感兴趣的童鞋&#xff0c;可以自己去研究源码。下面两篇博文是我研究osg的…

设备管理工具

做了一个代理类,抽象出来后在注册表中&#xff0c;查找已经注册的设备 python 中 dict 和 lua 中的 table 一样高效 先初始化找到的设备通信程序,底层接口准备好C,这个设备调试界面就是可以用的,剩下就是MV了 软件升级已经稳定可用了 包括软件的备份和回滚操作登录时为设备页面…

【工作流引擎】Activiti的使用03

流程定义查询 // 获取部署时的信息ProcessEngine processEngine ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService processEngine.getRepositoryService();ProcessDefinitionQuery processDefinitionQuery repositoryService.createProcessDe…

直观全面解释Transformer模型;上海人工智能实验室推出首个图文混合创作大模型浦语灵笔

&#x1f989; AI新闻 &#x1f680; 上海人工智能实验室推出首个图文混合创作大模型浦语灵笔 摘要&#xff1a;上海人工智能实验室推出了一款名为浦语灵笔的图文混合创作大模型&#xff0c;并宣布其开源。浦语灵笔基于书生・浦语大语言模型&#xff0c;具备强大的多模态性能…

LabVIEW开发卫星测试平台

LabVIEW开发卫星测试平台 已经有不少的大学和研究机构经常使用立方体卫星。它们的广泛使用通常归因于使用廉价零件、无偿学生劳动和简单的设计。科学、技术、工程和数学学生已被证明可以通过参与实际工作宇宙飞船系统的规划、开发和测试而从中受益。通过鼓励来自不同学术领域的…

Kubernetes----基于kubeadm工具在CentOS7.9虚拟机上部署一主两从类型的1.26版本的Kubernetes集群环境

【原文链接】Kubernetes----基于kubeadm工具在CentOS7.9虚拟机上部署一主两从类型的1.26版本的Kubernetes集群环境 文章目录 一、虚拟机环境准备1.1 准备三台CentOS操作系统的虚拟机1.2 修改主机名1.3 确认CentOS的版本符合要求1.4 配置地址解析1.5 配置时间同步1.6 关闭防火墙…

【jmeter的使用】【性能测试1】

jmeter的使用笔记2 线程并发的设置定时器1&#xff09;同步定时器2&#xff09;准确的吞吐量定时器3&#xff09;常数吞吐量定时器 用户自定义变量设置响应断言聚合报告查看聚合报告参数详解&#xff1a; 前言&#xff1a;使用jmeter进行简单性能测试实践&#xff0c;以百度搜索…

Java中的错误和异常有什么区别和联系?

​ 概述 错误 该错误表示大多数情况是由于系统资源不足而发生的。系统崩溃和内存错误就是错误的例子。它主要发生在运行时。 错误是用户执行意外操作时产生的严重情况&#xff1b;错误大多发生在编译时&#xff0c;如语法错误&#xff0c;但它也可能发生在运行时&#xff1…

UE5:如何解决背景图片被拉伸的问题?

1.在图片外围包裹一个Scale Box组件 2.将图片的尺寸修改为原始尺寸就可解决问题

北美”闲鱼”Poshmark,如何销售提高成单率?附防封养号攻略

Poshmark 是一款美国的社交商务应用程序&#xff0c;被称为北美的”咸鱼“。该平台提供女性、男性、儿童时尚和家居装饰品。目前在美国、加拿大、澳洲、印度均可开通&#xff0c;其余地区暂不支持。 在平台上&#xff0c;用户可以自由上传和销售产品。Poshmark提供安全的支付解…

【Zookeeper专题】Zookeeper选举Leader源码解析

目录 前言阅读建议课程内容一、ZK Leader选举流程回顾二、源码流程图三、Leader选举模型图 学习总结 前言 为什么要看源码&#xff1f;说实在博主之前看Spring源码之前没想过这个问题。因为我在看之前就曾听闻大佬们说过【JavaCoder三板斧&#xff1a;Java&#xff0c;Mysql&a…

设计模式_责任链

责任链模式 介绍 设计模式定义案例责任链模式问题 传给 多个可处理人 这多个处理人做成一个链表学生请假条审核 上课老师&#xff08;3天权限&#xff09; 班主任 &#xff08;5天权限&#xff09; 校长 &#xff08;30天权限&#xff09; 问题堆积在哪里解决办法进一步优…

目标检测新思路:DETR

Transformer是一种基于自注意力机制的神经网络架构&#xff0c;它能够从序列中提取重要信息&#xff0c;已被广泛应用于自然语言处理和语音识别等领域。随着Transformer的提出和发展&#xff0c;目标检测领域也开始使用Transformer来提高性能。 DETR是第一篇将Transformer应用于…

点击弹窗页面右侧缩小问题

主页面是由header和下面的tabel&#xff0c;2个组件构成&#xff0c;需要在css里使用flex布局&#xff0c; 就解决了弹窗导致的页面右侧缩小问题。 display: flex; flex-direction: column; <template><div class"main"><div class"header"…

局域网远程控制

被控制端电脑设置 1开启服务 Romate Desktop Services 2设置允许远程控制&#xff0c;并且添加被控制的用户 3检查用户组管理用户名是否一致 我的电脑>管理>本地用户和组>用户 4在控制电脑端WinR 输入 mstsc出现如下界面 输入被控制电脑IP和用户名 然后输入被控制端…

第十届蓝桥杯省赛C++C/研究生组,第十届蓝桥杯省赛JAVAC/研究生组——扫地机器人题解(二分)

题目描述 小明公司的办公区有一条长长的走廊&#xff0c;由 N个方格区域组成&#xff0c;如下图所示。 走廊内部署了 K台扫地机器人&#xff0c;其中第 i台在第 A i A_i Ai​ 个方格区域中。 已知扫地机器人每分钟可以移动到左右相邻的方格中&#xff0c;并将该区域清扫干净…