第七周学习笔记DAY.1-封装

学完本次课程后,你能够:

理解封装的作用

会使用封装

会使用Java中的包组织类

掌握访问修饰符,理解访问权限

没有封装的话属性访问随意,赋值也可能不合理,为了解决这些代码设计缺陷,可以使用封装。

面向对象的三大特征之一:封装

封装的概念:将类的信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,把尽可能多的东西隐藏起来,对外提供便捷的接口。

封装的两个大致原则:把所有的属性隐藏起来

如何实现封装

1.修改属性的可见性 设为private,防止错误的修改

2.创建共有的getter/setter方法 用于属性的读写

3.在getter/setter方法中加入属性控制语句 对属性值的合法性进行判断

封装的好处

便于使用者正确使用系统,防止错误修改属性

有助于系统之间的松耦合,提高系统独立性

提高软件的可重用性

降低了构建大型系统的风险

为什么需要包

Windows树形文件系统

文档分门别类,易于查找和管理

使用目录解决文件同名冲突问题

包的作用

允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件

有助于实施访问权限控制

防止命名冲突,区分名字相同的类

如何创建包

作为Java源代码的第一条语句

用package声明包,以分号结尾

包命名规范

包名由小写字母组成,不能以圆点开头或结尾

包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名

包名后续部分依不同机构内部的规范不同而不同

JDK提供基本包

java.lang:虚拟机自动引入

java.util:提供一些实用类

java.io:输入、输出

使用MyEclipse创建包的两种方法

分别创建包和类

创建类的过程中创建类所在的包

为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类

使用包的注意事项

一个类同时引用了两个来自不同包的同名类

必须通过完整类名来区分

每个包都是独立的,顶层包不会包含子包的类

package和import的顺序是固定的

package必须位于第一行(忽略注释行)

只允许有一个package语句

其次是import,可以有多条语句

接着是类的声明

类的访问修饰

类的访问修饰符

public修饰符:公有访问级别

默认修饰符:包级私有访问级别

类成员的访问修饰

static修饰符

static可以用来修饰

成员变量

静态变量,可以直接通过类名访问

成员方法

静态方法,可以直接通过类名访问

代码块

静态代码块,当Java虚拟机加载类时,就会执行该代码块

JVM加载类时,加载静态代码块

如果有多个静态块,按顺序加载

每个静态代码块只会被执行一次

类的成员变量包括

类变量(静态变量)

被static修饰的变量

在内存中只有一个拷贝

类内部,可在任何方法内直接访问静态变量

其他类中,可以直接通过类名访问

实例变量

没有被static修饰的变量

每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响

static变量的作用:

(1)能被类的所有实例共享,可作为实例之间进行交流的共享数据

(2)如果类的所有实例都包含一个相同的常量属性,可把这个属性定义为静态常量类型,从而节省内存空间

static方法

静态方法:可直接通过类名访问

静态方法中不能使用this和super

不能直接访问所属类的实例变量和实例方法

可直接访问类的静态变量和静态方法

实例方法:通过实例访问

可直接访问所属类的静态变量、静态方法、实例变量和实例方法

静态方法必须被实现

main()就是最常使用的静态方法

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

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

相关文章

vue快速入门(二十八)页面渲染完成后让输入框自动获取焦点

注释很详细&#xff0c;直接上代码 上一篇 新增内容 使用挂载完成的钩子函数用focus使输入框获取焦点 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"width…

leetcode:739.每日温度/496.下一个更大元素

单调栈的应用&#xff1a; 求解当前元素右边比该元素大的第一个元素&#xff08;左右、大小都可以&#xff09;。 单调栈的构成&#xff1a; 单调栈里存储数组的下标&#xff1b; 单调栈里的元素递增&#xff0c;求解当前元素右边比该元素大的第一个元素&#xff1b;元素递…

(十一)C++自制植物大战僵尸游戏客户端更新实现

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/cFP3z 更新检查 游戏启动后会下载服务器中的版本号然后与本地版本号进行对比&#xff0c;如果本地版本号小于服务器版本号就会弹出更新提示。让用户选择是否更新客户端。 在弹出的更新对话框中有显示最新版本更新的内容…

2024五一杯数学建模A题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

光学雨量计雨量传感器的工作原理与实时数据采集

光学雨量计雨量传感器的工作原理与实时数据采集 河北稳控科技光学雨量计是一种常用的雨量传感器&#xff0c;其工作原理基于光学原理和实时数据采集技术。它的主要作用是测量雨水的大小和强度&#xff0c;为气象、农业、水文等领域提供重要的数据支持。 光学雨量计的工作原理是…

单片机之ESP8266模块

目录 ESP8266简介 前言 ESP8266的工作模式 ESP8266引脚说明 ESP8266测试 步骤 单片机与esp8266交互 前言 收到数据的格式 AP模式 服务器模式 外部执行命令 代码内执行命令 代码部分 客户端模式 外部执行命令 内部执行命令 代码部分 STA模式 服务器模式 外…

10个常用的损失函数及Python代码实现

本文深入理解并详细介绍了10个常用的损失函数及Python代码实现。 什么是损失函数&#xff1f; 损失函数是一种衡量模型与数据吻合程度的算法。损失函数测量实际测量值和预测值之间差距的一种方式。损失函数的值越高预测就越错误&#xff0c;损失函数值越低则预测越接近真实值…

LUCF-Net:轻量级U形级联 用于医学图像分割的融合网络

LUCF-Net&#xff1a;轻量级U形级联 用于医学图像分割的融合网络 摘要IntroductionRelated WorkProposed MethodLocal-Global Feature ExtractionEncoder and DecoderFeature FusionLoss Function LUCF-Net: Lightweight U-shaped Cascade Fusion Network for Medical Image Se…

Android zxing库实现扫码识别

第一步 加库zxing库 //导入二维码识别库ZXingimplementation("com.journeyapps:zxing-android-embedded:4.2.0") 第二部获取摄像机权限 <uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="andro…

【日常记录】【CSS】利用动画延迟实现复杂动画

文章目录 1、介绍2、原理3、代码4、参考链接 1、介绍 对于这个效果而言&#xff0c;最先想到的就是 监听滑块的input事件来做一些操作 ,但是会发现&#xff0c;对于某一个节点的时候&#xff0c;这个样式操作起来比较麻烦 只看这个代码的话&#xff0c;发现他用的是动画&#x…

超详细!Python中 pip 常用命令

相信对于大多数熟悉Python的人来说&#xff0c;一定都听说并且使用过pip这个工具&#xff0c;但是对它的了解可能还不一定是非常的透彻&#xff0c;今天小编就来为大家介绍10个使用pip的小技巧&#xff0c;相信对大家以后管理和使用Python当中的标准库会有帮助。 安装 当然在…

【算法一则】编辑距离 【动态规划】

题目 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符 删除一个字符 替换一个字符 示例 1&#xff1a;输入&#xff1a;word1 "horse", word2 "…

16 - Debian如何配置vsftpd(1)实现匿名上传下载

作者&#xff1a;网络傅老师 特别提示&#xff1a;未经作者允许&#xff0c;不得转载任何内容。违者必究&#xff01; Debian如何配置vsftpd&#xff08;1&#xff09;实现匿名上传下载 《傅老师Debian小知识库系列之16》——原创 前言 傅老师Debian小知识库特点&#xff1a…

微信小程序获取蓝牙信标

/*** 搜索设备界面*/ import Dialog from vant/weapp/dialog/dialog; Page({data: {list: []},onPullDownRefresh: function () {wx.request({url: https://wwz.jingyi.icu/app/Explain/index,data: {scenic_id: 3},method: POST,success: (res) > {console.log(res);let th…

重磅!国内首个基于单张图片的3D人脸重建课程

3D人脸重建在计算机视觉和图形学中一直是一个经典且热门的研究方向&#xff0c;在游戏、影视、娱乐等众多行业也有着广泛的应用。早期人脸重建主要基于多视角相机或深度相机&#xff0c;随着深度学习的兴起&#xff0c;基于单张图片的人脸重建成为可能&#xff0c;且重建的精度…

数学建模---Matlab学习笔记

1.经典例题 &#xff08;1&#xff09;判断质数 给定一个大于100的数字&#xff0c;判断是否为质数 先设定布尔值是true,也就是假设这个数字是质数&#xff0c;利用for循环进行遍历直到n-1&#xff0c;如果被任意的数字整除&#xff0c;就说明不是质数&#xff0c;我们就把布…

2024 年排名前 5 的 CSS 框架

文章目录 1、Bootstrap2、Tailwind CSS3、Foundation4、Bulma5、UIKit 1、Bootstrap Bootstrap框架是由Twitter的设计师Mark Otto和Jacob Thornton合作开发的&#xff0c;于2011年8月在GitHub上发布。它是目前最受欢迎的前端框架之一&#xff0c;被广泛应用于各种Web项目中。Bo…

最新Latex2024安装教程 超简单

Latex是一款常用的论文写作工具&#xff0c;今天小菜介绍Latex的安装配置过程。 1. 来到官网下载镜像文件 https://www.tug.org/texlive/ 按步骤点击&#xff1a; 就会进入一个最近的镜像网站&#xff0c;选择textlive2024.iso即可 下载完成之后解压&#xff0c;安装路径…

Linux02(项目部署,手动和自动部署,JDK版本问题,安装软件,安装软件,安装JDK,Tomcat,MySQL,Irzsz)

目录 一、安装软件 1. 安装准备工作 1 Linux里的软件安装方式 2 上传软件到Linux 3 拍照虚拟机快照 2. 安装JDK 1 卸载自带jdk 2 解压JDK 3 配置环境变量 4 测试JDK 3. 安装Tomcat 1 解压Tomcat 2 修改防火墙设置 3 测试Tomcat 启动Tomcat 访问Tomcat 查看Tom…

git 小记

一、 github新建仓库 git clone 。。。。。。。。。。。 &#xff08;增删查补&#xff0c;修改&#xff09; git add . git commit -m "修改” git push (git push main) 二、branch 分支 branch并不难理解&#xff0c;你只要想像将代码拷贝到不同目录…