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

embedded/2025/1/17 23:11:06/

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创建工具类

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

java">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;}
}
java">//测试类
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.ppmy.cn/embedded/154789.html

相关文章

工业视觉5-工业视觉选型

工业视觉5-工业视觉选型 任务分析三、知识准备问答四、相机选型五、总结 任务分析 重点明确任务要求 例子&#xff1a; 检测任务类型 外观检测&#xff1a;检查产品表面是否有划痕、污渍、缺陷等。例如&#xff0c;在电子元件生产中&#xff0c;需要检测芯片表面的瑕疵&…

【数据结构】第二章:线性表

本篇笔记课程来源&#xff1a;王道计算机考研 数据结构 【数据结构】第二章&#xff1a;线性表 一、线性表的定义和基本操作1. 定义2. 基本操作 二、顺序表1. 顺序表的定义2. 顺序表的实现3. 顺序表的特点4. 顺序表的插入5. 顺序表的删除6. 顺序表的查找 三、单链表1. 单链表的…

如何安装cnpm

今天尝试用npm install安装一个项目的依赖&#xff0c;但是无论如何都不能完成&#xff0c;等待时间非常久&#xff0c;所以同事推荐了cnpm&#xff0c;确实非常好用&#xff0c;所以推荐了出来&#xff0c;希望能给大家带来帮助。 cnpm 是中国淘宝团队提供的一个 npm 镜像工具…

Linux安装docker,安装配置xrdp远程桌面

Linux安装docker&#xff0c;安装配置xrdp远程桌面。 1、卸载旧版本docker 卸载旧版本docker命令 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine现在就是没有旧版本的d…

告别虚拟机!WSL2安装配置教程!!!

作者&#xff1a;SkyXZ CSDN&#xff1a;SkyXZ&#xff5e;-CSDN博客 博客园&#xff1a;SkyXZ - 博客园 由于Linux的系统的稳定以及在环境管理方面的优越性&#xff0c;同时Linux对于ROS系统的独占&#xff0c;很多时候我们都乐意在Linux系统下开发我们机器人的算法&#xff0…

使用 Kubernetes 实现负载均衡

使用 Kubernetes 实现负载均衡&#xff0c;可以通过 Kubernetes 的内置服务&#xff08;Service&#xff09;资源&#xff0c;配合负载均衡器&#xff08;如云平台提供的负载均衡器或 Ingress 控制器&#xff09;来完成。以下是详细的步骤和调优案例。 一、Kubernetes 负载均衡…

FPGA随记——时钟时序一些基本知识

原文链接&#xff1a;跨时钟域设计-CSDN博客 前言 CDC&#xff08;clock domain crossing&#xff09;检查&#xff08;跨时钟域的检查&#xff09;是对电路设计中同步电路设计的检查。非同步时钟没有固定的相位关系&#xff0c;这样Setup/Hold不满足而产生了亚稳态是无法避免…

JAVA实现五子棋小游戏(附源码)

文章目录 一、设计来源捡金币闯关小游戏讲解1.1 主界面1.2 黑棋胜利界面1.3 白棋胜利界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/145161039 JA…