包/final/权限修饰符/代码块

news2024/11/14 15:17:20

包package

1、包的作用

包用来管理不同的类。

2、包名

包名要全部小写,一般是域名反写,如com.liu。在Java中,java解释器会将package中的.解释为目录分隔符/,也就是说该文件的目录结构为:...com/liu/...

3、全类名/全限定名

包名+类名,如com.liu.Student

4、使用import关键字导包

①当导入一个包后,这个包下的其他类就可以直接使用了,不用再导入;

②java.lang包下的类也可以直接使用;

③其他情况,比如不同包中的其他类要导个包或者import全类名才可以使用。

final

学习了继承之后知道了子类可以修改父类中的属性值或者重写父类中的行为,但是如果不想被改变则可以用final关键字修饰。

1、修饰变量

不可被改变,叫常量,只能被赋值一次。

被final修饰的常量名称,一般都有书写规范,所有字母都大写,单词之间使用_连接。 

final修饰的变量

(1)基本数据类型:其值不可再变化;

(2)引用数据类型:指向的地址不会再变化,但地址中存的内容是可能会被改变的。

2、修饰方法

此方法不可被子类重写。如果这个方法表示的是一种规则,不想被别人改变,则可用final修饰。

3、修饰类

不可被继承。像Java中提供的Math、String和Scanner这些类都是被final修饰的,只希望我们使用,不想要我们去改变它们的行为。

后面的2和3只用知道就行了,1用的较多,要掌握。

权限修饰符

控制可以被访问的范围。

范围分为四个部分,分别是本类、同一包下的其他类、不同包下的子类、不同包中的无关类。

1、private
2、默认/缺省
3、protected

想让其他包中的子类也可以访问到,提出了protected修饰符。

4、public

实际开发中最常用的就是private和public:

(1)成员变量私有

(2)方法公开

特例:如果一个方法中的代码是其他方法中的共性抽取出来的,这个方法一般也私有,不对外提供。

代码块

用大括号括起来的代码。

1、局部代码块

写在方法里面的一对大括号,可以提前结束变量的生命周期,已被淘汰。

2、构造代码块

把构造方法中重复的代码抽取出来放到用大括号括起来,成员变量的位置。

格式:

{
    //语句体;
}

在每次创建本类对象的时候一定会先执行构造代码块,然后再执行构造方法。

这个技术也渐渐淘汰了,因为太死了,不够灵活,即在创建对象的时候构造代码块中的内容一定会执行,没有办法不执行,但是有时候我们就是不想要执行。

所以如果构造方法有共性的部分可以写成一个构造方法由其他构造方法通过this进行调用,也可以写成一个方法由构造方法去调用。

3、静态代码块

格式:

static {
    //语句体;
}

随着类的加载而出现,只执行一次。

什么时候用?在类加载的时候做一些数据初始化,并且只希望只执行一次的时候就可以用了。

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

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

相关文章

Nginx 报错问题汇总

目录 一、nginx: [emerg] invalid number of arguments in "include" directive in C:\Program Files\nginx-1.15.4/conf/nginx.conf:61 总结: 二、nginx: [error] OpenEvent("Global\ngx_reload_2152") failed (5: Access is denied) 解决…

《昇思25天学习打卡营第14天|onereal》

第14天学习内容如下: Diffusion扩散模型 本文基于Hugging Face:The Annotated Diffusion Model一文翻译迁移而来,同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成功运行。如您下载本文档为Python文件&#xff0c…

LabVIEW的JKI State Machine

JKI State Machine是一种广泛使用的LabVIEW架构,由JKI公司开发。这种状态机架构在LabVIEW中提供了灵活、可扩展和高效的编程模式,适用于各种复杂的应用场景。JKI State Machine通过状态的定义和切换,实现了程序逻辑的清晰组织和管理&#xff…

IDEA常用技巧荟萃:精通开发利器的艺术

1 概述 在现代软件开发的快节奏环境中,掌握一款高效且功能全面的集成开发环境(IDE)是提升个人和团队生产力的关键。IntelliJ IDEA,作为Java开发者的首选工具之一,不仅提供了丰富的编码辅助功能,还拥有高度可定制的界面和强大的插件生态系统。然而,要充分发挥其潜力,深…

[激光原理与应用-101]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 5 - 3C行业应用 - 电子布局类型

目录 前言: 一、激光在3C行业的应用概述 1.1 概述 1.2 激光焊接在3C-电子行业应用 二、3C电子行业中激光焊接 2.1 纽扣电池 2.2 均温板 2.3 指纹识别器 2.4 摄像头模组 2.5 IC芯片切割 三、3C行业中激光切割 四、激光在3C行业中的其他应用 4.1 涂层去除…

SpringBoot源码阅读(1)——环境搭建

SpringBoot官网 官网 https://spring.io/projects/spring-boot 代码仓库 github:https://github.com/spring-projects/spring-boot gitee: https://gitee.com/mirrors/spring-boot 下载代码 git clone https://gitee.com/mirrors/spring-boot.git下载的代码中有些…

STM32-OC输出比较和PWM

本内容基于江协科技STM32视频内容,整理而得。 文章目录 1. OC输出比较和PWM1.1 OC输出比较1.2 PWM(脉冲宽度调制)1.3 输出比较通道(高级)1.4 输出比较通道(通用)1.5 输出比较模式1.6 PWM基本结…

数据库逆向工程工具reverse_sql

reverse_sql 是一个用于解析和转换 MySQL 二进制日志(binlog)的工具。它可以将二进制日志文件中记录的数据库更改操作(如插入、更新、删除)转换为反向的 SQL 语句,以便对系统或人为产生的误操作进行数据回滚和恢复。 *…

LabVIEW的Actor Framework (AF) 结构介绍

LabVIEW的Actor Framework (AF) 是一种高级架构,用于开发并发、可扩展和模块化的应用程序。通过面向对象编程(OOP)和消息传递机制,AF结构实现了高效的任务管理和数据处理。其主要特点包括并发执行、动态可扩展性和强大的错误处理能…

图神经网络实战(16)——经典图生成算法

图神经网络实战(16)——经典图生成算法 0. 前言1. 图生成技术2. Erdős–Rnyi模型3. 小世界模型小结系列链接 0. 前言 图生成算法是指用于创建模拟图或网络结构的算法,这些算法可以根据特定的规则和概率分布生成具有特定属性的图&#xff0c…

华为OSPF配置DR和BDR与指定DR

基础配置 <Huawei>sys #进入配置模式 Enter system view, return user view with CtrlZ. [Huawei]un in en #关闭报文弹窗 Info: Information center is disabled. [Huawei]sys R1 #设备名更改为R1 [R1]int g0/0/0 …

Vue3中的Composables组合式函数,Vue3实现minxins

Vue3中的Composables是什么 Vue3中的Composables 简单理解其实就是类React Hooks式的组合式函数封装方法。 Vue官方称为Composables 组合式函数。 1.抽离复用逻辑时 Vue2写法 &#xff08;1&#xff09;Vue2 中的mixins混入器写法缺点 (Vue3 optionsApi写法同理) 新建minxins…

硅纪元视角 | 中国电信“星辰大模型·软件工厂”,两分钟完成应用开发,效率飞跃!

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…

动手学深度学习(Pytorch版)代码实践 -循环神经网络- 56门控循环单元(`GRU`)

56门控循环单元&#xff08;GRU&#xff09; 我们讨论了如何在循环神经网络中计算梯度&#xff0c; 以及矩阵连续乘积可以导致梯度消失或梯度爆炸的问题。 下面我们简单思考一下这种梯度异常在实践中的意义&#xff1a; 我们可能会遇到这样的情况&#xff1a;早期观测值对预测…

Windows电脑下载、安装VS Code的方法

本文介绍Visual Studio Code&#xff08;VS Code&#xff09;软件在Windows操作系统电脑中的下载、安装、运行方法。 Visual Studio Code&#xff08;简称VS Code&#xff09;是一款由微软开发的免费、开源的源代码编辑器&#xff0c;支持跨平台使用&#xff0c;可在Windows、m…

C++ 模版进阶

目录 前言 1. 非类型模版参数 1.1 概念与讲解 1.2 array容器 2. 模版的特化 2.1 概念 2.2 函数模版特化 2.3 类模版特化 2.3.1 全特化 2.3.2 偏特化 3.模版的编译分离 3.1 什么是分离编译 3.2 模版的分离编译 3.3 解决方法 4. 模版总结 总结 前言 本篇文章主要…

在mac下 Vue2和Vue3并存 全局Vue2环境创建Vue3新项目(Vue cli2和Vue cli4)

全局安装vue2 npm install vue-cli -g自行在任意位置创建一个文件夹vue3&#xff0c;局部安装vue3,注意不要带-g npm install vue/cli安装完成后&#xff0c;进入目录&#xff0c;修改vue为vue3 找到vue3/node-moudles/.bin/vue&#xff0c;把vue改成vue3。 对环境变量进行配置…

【6】图像分类部署

【6】图像分类部署 文章目录 前言一、将pytorch模型转为ONNX二、本地终端部署2.1. ONNX Runtime部署2.2. pytorch模型部署&#xff08;补充&#xff09; 三、使用flask的web网页部署四、微信小程序部署五、使用pyqt界面化部署总结 前言 包括将训练好的模型部署在本地终端、web…

在Linux操作系统中去修复/etc/fstab文件引起的系统故障。

如果/etcfstab文件中发生错误&#xff0c;有可能导致系统无法正常启动。 比如&#xff1a;系统里的一块磁盘被删除&#xff0c;但是/etc/fstab中关于这块磁盘的信息依然被保存在文件/etc/fstab中。 主要看倒数后两行&#xff0c;系统提示&#xff0c;敲ctrlD或者是直接输入密码…

LeetCode 744, 49, 207

目录 744. 寻找比目标字母大的最小字母题目链接标签思路代码 49. 字母异位词分组题目链接标签思路代码 207. 课程表题目链接标签思路代码 744. 寻找比目标字母大的最小字母 题目链接 744. 寻找比目标字母大的最小字母 标签 数组 二分查找 思路 本题比 基础二分查找 难的一…