java day04-面向对象基础(内存 封装 继承 修饰符 工具类 )

1.对象内存图

1.1 Java 内存分配

1.2 堆和栈

栈:所有局部变量都会在栈内存中创建

局部变量:定义在方法中的变量或者方法声明上的变量

方法执行都会加载到栈中进行

-----------------------------------------------------------------------------------------------------------------------

堆:所有对象及其对应的实例变量和数组都将存储在此处

简单理解为:new出来的东西,都存储在堆内存

每一个new出来的东西都有一个地址值,使用完毕, 会在垃圾回收器空闲时被回收

实例变量(成员变量)有初始化值:

                基本数据类型:整数:0,浮点数:0.0,布尔:false,字符:空字符

                引用数据类型:null==string 数组

 2.private权限修饰符

被private修饰的成员在**本类**中可以通过 实例对象.属性名进行访问。

针对 **private** 修饰的成员变量,如果需要被其他类使用,提供两个相应的操作:

get变量名(),用于获取成员变量的值,方法用 public修饰

set变量名(参数),用于设置成员变量的值,方法用 public修饰

3.this

局部变量和成员变量名字一致,局部变量赋值给成员变量。

this限定的变量用于指代成员变量

方法被哪个对象调用,this就代表哪个对象

4.封装:隐藏事物具体的实现细节

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

通过方法来控制成员变量的操作,提高了代码的安全性

把代码用方法进行封装,提高了代码的复用性

快捷方式:alt+insert 选择getterAndSetter

5.构造方法

作用:创建对象时默认调用的方法 常用于对象数据的初始化

javaBean步骤

1将属性进行私有化
2提供一个公共的get和set方法
3提供一个无参构造函数
4提供一个全参的构造函数(可选 javase阶段先写上)
 5重写toString  hashCode和equals方法

6.继承:子类继承父类的属性和方法

6.1格式:

public class 子类名 extends 父类名 { }

子类的构造方法执行时会先走父类的构造方法 第一句默认加一个super()

6.2继承的访问特性

成员变量的访问特 性 -- 就近原则

继承的子类访问父类属性和方法 super

继承中成员方法的访问特点 -- 就近原则

方法重写 - 子类对父类方法重写

子类可以有自己的特有的成员变量和方法

好处:增强代码复用性

坏处:增强类的耦合性

6.3继承的访问特性-super关键字

super:代表父类存储空间的标识(可以理解为父类对象引用)

关键字访问成员变量访问构造方法访问成员方法
thisthis.成员变量访问本类成员变量this(…)访问本类构造方法this.成员方法(…)访问本类成员方法
supersuper.成员变量访问父类成员变量super(…)访问父类构造方法super.成员方法(…)访问父类成员方法

7.方法重写

子类出现和父类相同方法声明

@Override

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容

方法名参数返回值类型
重写不同类中(有继承关系或实现关系)相同相同相同子类声明的异常范围不小于父类代码内容不同
重载同一类中相同类型/顺序/个数不同无关

8.修饰符

8.1权限修饰符

修饰符同一个类中同一个包中不同包,但父子关系不同包的无关类
private
default默认
protected
public

default:可在不同包下使用

protexted:同包和有继承关系的文件

8.2状态修饰符

8.2.1static(静态)    共享

static  静态修饰为所有对象使用 关键字是静态的意思,可以修饰成员方法,成员变量

静态成员方法只能访问静态成员,创建对象除外

被类的所有对象共享,这也是我们判断是否使用静态关键字的条件

② 可以通过类名调用,也可以通过对象名调用,推荐使用类名调用 

8.2.2final(最终态)

修饰方法:表明该方法是最终方法,不能被重写

修饰变量:表明该变量是常量,不能再次被赋值

修饰类:表明该类是最终类,不能被继承

使用场景 常量、π、重力加速度g等不变的成员变量 工具类 最终方法

9创建工具类

①构造方法私有化
②方法设成静态

public class ArrayUtils {//1构造方法私有化 代表不能创建对象private ArrayUtils() {}//2将所有方法设置成静态方法//冒泡排序public static int[] maopao(int[]arr){int temp;for (int i = 0; i < arr.length-1; i++) {for (int j = 0; j < arr.length-1; j++) {if (arr[j]>arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}return arr;}
}
//测试类
import java.util.Arrays;
public class Text {public static void main(String[] args) {int []arr={4,3,2,1};ArrayUtils.maopao(arr);System.out.println(Arrays.toString(arr));}
}

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

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

相关文章

Qt/C++进程间通信:QSharedMemory 使用详解(附演示Demo)

在开发跨进程应用程序时&#xff0c;进程间通信&#xff08;IPC&#xff09;是一个关键问题。Qt 框架提供了多种 IPC 技术&#xff0c;其中 QSharedMemory 是一种高效的共享内存方式&#xff0c;可以实现多个进程之间快速交换数据。本文将详细讲解 QSharedMemory 的概念、用法及…

从前端视角看设计模式之创建型模式篇

设计模式简介 "设计模式"源于GOF&#xff08;四人帮&#xff09;合著出版的《设计模式&#xff1a;可复用的面向对象软件元素》&#xff0c;该书第一次完整科普了软件开发中设计模式的概念&#xff0c;他们提出的设计模式主要是基于以下的面向对象设计原则&#xff…

Pandas数据合并:concat与merge

目录 一、concat方法 1. 基本语法 2. 示例 示例1&#xff1a;按行合并&#xff08;垂直方向&#xff09; 示例2&#xff1a;按列合并&#xff08;水平方向&#xff09; 示例3&#xff1a;使用joininner进行内连接 示例4&#xff1a;处理列名冲突 二、merge方法 1. 基本…

docker的数据卷与dockerfile自定义镜像

docker的数据卷与dockerfile自定义镜像 一. docker的数据卷数据卷容器 二. dockerfile自定义镜像2.1 dockerfile的命令格式镜像的操作命令add和copy的区别 容器启动的命令 2.2 run命令2.3 其它端口映射 三. 练习 一. docker的数据卷 容器于宿主机之间&#xff0c;或者容器和容…

【大数据】机器学习 -----关于data.csv数据集分析案例

打开表 import pandas as pd df2 pd.read_csv("data.csv",encoding"gbk") df2.head()查看数据属性&#xff08;列标题&#xff0c;表形状&#xff0c;类型&#xff0c;行标题&#xff0c;值&#xff09; print("列标题:",df2.columns)Data…

开发规范

开发规范 企业项目开发有2种开发模式&#xff1a;前后台混合开发和前后台分离开发。 前后台混合开发 顾名思义就是前台后台代码混在一起开发&#xff0c;如下图所示&#xff1a; 这种开发模式有如下缺点&#xff1a; 沟通成本高&#xff1a;后台人员发现前端有问题&#xf…

【Mysql进阶知识】从.SQL文件中执行SQL语句

目录 方法一&#xff1a;使用source命令导入 方法二&#xff1a;使用mysql客户端导入 方法一&#xff1a;使用source命令导入 有时候我们需要从 SQL 文件执行一些 SQL 语句&#xff0c;比如要把一个数据库从一台服务器 A 复制到另一台服务器 B 上&#xff0c;那么可以先从服务…

springMVC---resultful风格

目录 一、创建项目 pom.xml 二、配置文件 1.web.xml 2.spring-mvc.xml 三、图解 四、controller 一、创建项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi…

RustDesk ID更新脚本

RustDesk ID更新脚本 此PowerShell脚本自动更新RustDesk ID和密码&#xff0c;并将信息安全地存储在Bitwarden中。 特点 使用以下选项更新RustDesk ID&#xff1a; 使用系统主机名生成一个随机的9位数输入自定义值 为RustDesk生成新的随机密码将RustDesk ID和密码安全地存储…

告别 Excel,拥抱 R 语言:开启数据分析新时代

在这个数据驱动的时代&#xff0c;数据分析已然成为每个行业的核心竞争力。从市场营销到金融领域&#xff0c;从医疗健康到教育行业&#xff0c;数据无处不在&#xff0c;深刻影响着每一个决策。然而&#xff0c;面对日益复杂的数据集&#xff0c;单纯依靠 Excel 进行分析&…

LabVIEW驱动电机实现样品自动搜索

利用LabVIEW控制电机驱动相机在XY平面上进行扫描&#xff0c;以检测样品位置。样品最初可能位于相机视野范围之外&#xff0c;需要实现自动搜索样品位置并完成精确定位扫描的功能。该系统需具有以下特点&#xff1a; 高效搜索&#xff1a;能够快速确定样品位置&#xff0c;缩短…

【C语言】_字符串拷贝函数strcpy

目录 1. 函数声明及功能 2. 使用示例 3. 注意事项 4. 模拟实现 4.1 第一版&#xff1a;基本功能判空const修饰 4.2 第二版&#xff1a;优化对于\0的单独拷贝 4.3 第三版&#xff1a;仿strcpy的char*返回值 1. 函数声明及功能 char * strcpy ( char * destination, cons…

大模型WebUI:Gradio全解11——Chatbots:融合大模型的多模态聊天机器人(3)

大模型WebUI&#xff1a;Gradio全解11——Chatbot&#xff1a;融合大模型的多模态聊天机器人&#xff08;3&#xff09; 前言本篇摘要11. Chatbot&#xff1a;融合大模型的多模态聊天机器人11.3 组件Chatbot及ChatMessage11.3.1 Chatbot&#xff1a;聊天机器人组件1. API参数2.…

细说STM32F407单片机窗口看门狗WWDG的原理及使用方法

目录 一、窗口看门狗的工作原理 1、递减计数器 2、窗口值和比较器 3、看门狗的启动 4、提前唤醒中断 二、窗口看门狗的HAL驱动程序 1、窗口看门狗初始化 2.窗口看门狗刷新 3.EWI中断及其处理 三、不开启EWI的WWDG示例 1、示例功能 2、项目设置 &#xff08;1&…

Docker部署Spring Boot + Vue项目

目录 前提条件 概述 下载代码 打开代码 Docker创建网络 MySQL容器准备 MySQL数据库配置 启动MySQL容器 测试连接MySQL 初始化MySQL数据 Redis容器准备 修改Redis配置 启动redis容器 部署后端 后端代码打包 上传jar包到Linux 创建Dockerfile 构建镜像 运行后…

基于Oracle与PyQt6的电子病历多模态大模型图形化查询系统编程构建

一、引言 1.1 研究背景阐述 在当今数字化时代,医疗行业正经历着深刻的变革,数字化转型的需求日益迫切。电子病历(EMR)作为医疗信息化的核心,其管理的高效性和数据利用的深度对于提升医疗服务质量、优化临床决策以及推动医学研究具有至关重要的意义。传统的电子病历管理系…

万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用

文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行&#xff08;APEX&#xff09;接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域&#xff0c;综合模块化航空电子设备&#xff08;IMA&#xf…

在eNSp上telnet一下吧

在上篇博客&#xff1a;DNS 我们提到了telnet和设备带外管理、带内管理&#xff0c;它确实是非常有趣的一个知识点哦&#xff0c;接下来我们一起来学习学习吧~ Telnet&#xff08;远程登陆协议&#xff09; Telnet基于TCP 23号端口&#xff0c;典型的C/S架构模式&#xff0c;是…

音频语言模型与多模态体系结构

音频语言模型与多模态体系结构 多模态模型正在创造语言、视觉和语音等以前独立的研究领域的协同效应。这些模型使用通用架构,将每种模式视为不同的“token”,使它们能够以一种与人类认知非常相似的方式联合建模和理解世界。 ​ ​可以将多模态分为两个主要领域:输入空间(…

【深度学习】关键技术-正则化(Regularization)

正则化&#xff08;Regularization&#xff09; 是一种用于防止模型过拟合的技术。它通过在损失函数中添加额外的约束项&#xff0c;限制模型的复杂度&#xff0c;从而提高模型的泛化能力。 正则化的主要作用 防止过拟合&#xff1a;通过抑制模型对训练数据的过度拟合&#xf…