Java 笔记【第四章 对象与类】

基于STM32的3D打印机控制 通过本项目,我们成功搭建了一个基础的3D打印机控制系统,能够控制步进电机和加热元件。这为使用STM32开发功能丰富的3D打印机提供了基础,您可以在此基础上继续扩展功能,如增加LCD显示、SD卡存储、联网控制等功能。在这个项目中,我们将使用STM32微控制器开发一个基础的3D打印机控制系统。通过控制步进电机、加热元件和温度传感器,我们将实现一个简单的FDM(熔融沉积制造)3D打印机控制。- 检查PWM信号的生成功能,确认加热元件的控制逻辑是否正常。- 增加适当的滤波和校准算法,以提高温度读取的准确性。 阅读详情

4.1 概述

对象的三个主要特性:
- 对象的行为:可以对对象施加的操作,方法?
- 对象的状态:当施加那些方法时,对象如何响应?
- 对象的标识:如何辨别具有相同行为与状态的不同对象?

类之间的关系:
- 依赖(use-a):一个类访问或操作其他类的对象
- 聚合(has-a):类A的对象包含类B的对象
- 继承(is-a):继承关系

4.3 用户自定义类

  • 在一个源文件中,只能有一个公有类,但可以有任意数目的非公有类。

  • Java 对象都是在堆中构造的。

  • public void raiseSalary(double byPercent)
    方法有两个参数。第一个参数称为隐式参数,是出现在方法名前的类对象。第二个参数位于方法名后面括号中的数值,这是一个显式参数。

  • 在每一个方法中,关键字this标识隐式参数。

  • 在C++中,如果在类内定义方法,这个方法将自动成为内联方法。但在Java 中,将某个方法设置为内联方法是Java虚拟机的任务。即时编译器会监视调用那些简洁、经常被调用、没哟被重载以及可优化的方法。

  • 如果需返回一个可变数据域的拷贝,就应该使用clone().

  • final 关键字只是表示存储在变量中的对象引用不会再指示其他对象,但是对象的内容是可以修改的

4.4 静态域与静态方法

  • 静态域被称为类域,属于类,不属于任何独立的对象。

静态方法:
- 静态方法时一种不能面向对象实施操作的方法。
- 没有隐式参数。

工厂方法
工厂方法为Java 学习中的设计模式。具体介绍可以看Coding-Naga比较全面的解析。(下文两图片来源)
还有runoob比较浅显的两篇。

概括而言为三种模式:

  • 简单工厂模式:通过条件判断语句来选择生成对象,称为“全能类”,要求“全能”,不适合扩展。

  • 工厂方法模式:创建对象接口,但由子类决定要实例化哪一个。工厂方法让类把实例化推迟到了子类。

  • 抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

main方法:
- 在启动程序时还没有任何一个对象。静态的main方法将执行并创建程序所需要的对象。

4.5 方法参数

  • Java程序设计语言总是采用按值调用。

方法参数共有两种类型:
- 基本数据类型(数字、布尔值)
- 对象引用

对于基本数据类型:
由于是按值调用,会有一个拷贝,所以无论如何操作都不能改变值得内容。

对于对象引用:
拷贝的是对对象的引用(即对象引用以及他的拷贝同时引用同一个对象),调用对象方法还是可以对对象进行操作的。
这里写图片描述

4.6 对象构造

方法签名:方法名 + 参数类型 【不包括返回类型】

重载:

  • 不允许两个方法签名相同,但是返回类型不同的重载方法

  • 如果类中提供了至少一个构造器,但是没有提供无参数的构造器,则在构造对象时如果没有提供构造参数就会被视为不合法。仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。

  • 域分为两种:实例域 类域

如果构造器的第一个语句形如this(…) 这个构造器将调用同一个类的另一个构造器。(在C++中则不允许)

初始化快
形如{…}首先运行初始化块,然后才运行构造器的主题部分。

小结:具体处理步骤

  • 所以数据域被初始化为默认值(0,false,null)
  • 按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块。
  • 执行构造函数。

关于析构和回收:

  • Java 有自动的垃圾回收器,不需要人工回收内存,所以Java 不支持析构器。

  • finalize 方法将在垃圾回收器清除对象之前调用。在实际应用中,不要依赖使用finalize 方法回收任何短缺的资源,这是因为很难知道这个方式什么时候才能够调用。

包

  • 在Java 中,package 与 import 语句类似于C++ 中的namespace 和 using 指令。

  • 如果没有在源文件中放置package 语句,这个源文件中的类就被放置在一个默认包(default package)中,默认包是一个没有名字的包。

2018年2月11日22:40:46
– end –

PowerBuilder 9.0安装组件全解析:Adaptive Server Anywhere、PowerDynamo、InfoMaker到底怎么选? 本文从技术架构师视角详细解析PowerBuilder 9.0安装组件选型策略,包括Adaptive Server Anywhere、PowerDynamo和InfoMaker的核心功能与应用场景。通过分析组件间的依赖关系和安装冲突机制,提供针对不同开发需求的最佳安装方案,帮助开发者高效配置PB9.0开发环境。 阅读详情

相关推荐

图腾柱无桥PFC控制逻辑解析:从双闭环到电压前馈的设计演进

本文深入解析图腾柱无桥PFC控制逻辑的设计演进,从经典双闭环控制到电压前馈技术的实现。通过分析功率波动问题和动态响应慢的症结,提出引入电压前馈的解决方案,并详细探讨数字实现中的关键注意事项。文章还涵盖控制框图的构建、稳定性分析方法及实际应用中的调参技巧,为开关电源设计提供实用指导。

weixin_29268267的博客 572

《Java 核心技术卷1 第10版》学习笔记------ final 关键字详解

可以将实例域定义为 final。 构建对象时必须初始化这样的域。也就是说, 必须确保在每 一个构造器执行之后, 这个域的值被设置, 并且在后面的操作中, 不能够再对它进行修改。 例如, 可以将 Employee 类中的 name 域声明为 final, 因为在对象构建之后, 这个值不会再 被修改, 即没有 setName 方法。 class Employee { private fin...

FKNIGHT 的博客 258

【计算机视觉】基于复杂环境下的车牌识别

本文针对复杂环境下(光照变化、车牌变形、噪声干扰)的车牌识别问题,提出了一套完整的优化方案。通过四个核心环节进行改进:1)采用CLAHE、同态滤波等技术优化光照处理;2)使用边缘检测和透视变换应对车牌变形;3)结合中值滤波和暗通道去噪算法消除干扰;4)改进字符分割与识别方法。文章提供了详细的Python实现代码,展示了从预处理到字符识别的完整流程,并通过多策略融合显著提升了复杂场景下的识别准确率。实验结果表明,该方法能有效应对各类复杂环境挑战,为实际应用提供了可靠解决方案。

2401_84149564的博客 1627

final、static、参数传递

1、final关键字只是表示存储在变量中的对象引用不会指示其他变量,但这个对象本身可以改变。 转载链接 /* 来源:优快云 https://blog.youkuaiyun.com/u012110719/article/details/46334413 日期:2018/7/15 */ package cn.mys; /* * 问题:使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能...

倩mys的博客 663

ICG setup timing violation介绍?

门控时钟(clock gating)在RTL级电路设计过程中进行低功耗优化常用方法,能够有效降低动态功耗(翻转功耗)。Clock gating cell 可以由与门,与非门,或门或者或非门构成,但很容易产生Glitch。在实际使用中,一般用ICG(集成门控时钟单元)来完成clock gating。 下图展示了glitch的产生原因 在CTS时钟树综合的时候,ICG不会被看作sink,通常放置在source点附近,因此就会出现如上图这种结果。上图可以看出,在分析DFF到ICG的setup timing

m0_61003348的博客 9810

MT4量化交易入门:手把手教你用MQL4编写第一个外汇EA(含完整代码)

本文详细介绍了如何使用MQL4在MT4平台上编写第一个外汇EA,涵盖从开发环境配置到均线交叉策略实现的完整流程。通过手把手教学和完整代码示例,帮助量化交易新手快速掌握外汇自动化交易的核心技术,实现高效的MT4量化交易系统。

mmm90的博客 527

【Java】final关键字详解

目录(一)final关键字的特点(二)final的操作(1)final实例域(2)final类(3)final方法 (一)final关键字的特点 final是一个关键字,可以用于修饰类,成员变量,成员方法。 它修饰的类不能被继承。 它修饰的成员变量是一个常量。 它修饰的成员方法是不能被子类重写的。 (二)final的操作 (1)final实例域 可以将实例域定位final。构建1对象时...

黄骏捷的博客 494

当NetApp 7-mode遇到单控制器故障:HA模式手动修复全记录

本文详细记录了NetApp 7-mode存储系统在单控制器故障时的应急修复过程,包括HA配置重建、磁盘初始化和业务恢复等关键步骤。通过实战案例解析如何解决`VIA Interconnect is down`等典型问题,为企业级存储系统的高可用保障提供实用指南。

yolo5detector的博客 247

Java知识点总结第四章

循环 4.1 while 循环 while 循环在条件为真的情况下,重复的执行语句。 while(循环继续条件){ //循环体 语句(组); } 图4-1 当循环继续条件为true时,while循环重复执行循环体中的语句 4.2 do-while 循环 do-while循环和while循环基本一样,不同的是,他先执行循环体一次,然后判断循环继续条件。他的语法如下: do{ //循环体; 语句(...

weixin_42493897的博客 425

A Super-Resolution Imaging Method for Forward-Looking Scanning Radar Based on Improved TV论文阅读

具体而言,作者提出了一种改进的总变差(Improved Total Variation, ITV)方法,通过引入。论文旨在解决前视扫描雷达(Forward-Looking Scanning Radar)超分辨率成像中传统。(Batch Processing),以增强图像边缘特征的保留能力,并提升计算效率。论文的核心创新点在于对传统TV正则化的邻域梯度计算进行扩展,提出。ITV剖面(图3d)在噪声下仍保持矩形边缘,仅存。​(公式10):实现稀疏约束。),抑制远端单元贡献。(幅度远低于目标)。

yangqoor的博客 1240

MIKE21 MIKE软件 教程 0.1 软件介绍与教学目录

MIKE 21是一个专业的工程软件包,用于模拟河流、湖泊、河口、海湾、海岸及海洋的水流、波浪、泥沙及环境问题。在MIKE Zero集成平台中,主要有MIKE11,MIKE21,MIKE3三类软件,分别对应一维,二维,三维的水动力模型模拟。同时还包括MIKE HYDRO,MIKE FLOOD等其他功能,各软件的具体介绍请参考DHI公司的官方文档,在此不作赘述。学习过程中,对于任何操作界面的疑问,建议大家仔细阅读帮助文档(在有疑问的界面按F1调出),同时官方也提供了对应的线上和线下教学服务(免费+收费)。

Hello Word 2万+

Java核心卷一复习笔记(2)——第四章

4.2.1对象与对象变量     Java中 , 使用构造器 ( constructor ) 构造新实例 。 构造器是一种特殊的方法, 用来构造并初始化对象 。构造器的名字应该与类名相同。    希望构造的对象可以多次使用 , 因此, 需要将对象存放在一个变量中 :Date birthday = new Date ( ) ;    在对象与对象变量之间存在着一个重要的区别。 例如 , 语句Date...

qq_34230513的博客 284

把 300 亿参数的 Qwen3-30B-A3B 塞进 16GB 手机:MoE、mmap 与内存轮转的完整拆解

这篇文章详细拆解了如何在16GB内存手机上运行305亿参数的Qwen3-30B-A3B大模型。作者通过MoE(专家混合)架构、内存映射(mmap)和专用NPU内存(rpcmem)的巧妙结合实现了这一"不可能"的任务。 核心原理在于:MoE模型将庞大的前馈网络拆分为128个专家,每个词只激活8个专家,97%的权重处于闲置状态;通过mmap技术按需加载当前需要的专家权重;同时利用NPU专用内存高效计算关键部分。三个关键开关(GGML_HEXAGON_MOE_PAGING=1、--mmap、GGML_CPU_RE

q742971636的博客 187

java学习笔记---第四章类与对象

 第四章对象与类 1.      面向对象程序设计概述  ●传统结构化程序设计和面向对象程序设计的区别:    传统的结构化程序设计:通过一系列的过程来求解问题,算法第一位,数据结构第二位    OOP:让每一个对象负责执行一组相关的任务,数据第一位,结构第二位   ●对象之间的所有通信都是通过方法调用完成的。通过封装对象数据,最大限度的提高可重用性,减少数据的

William Valentine 876

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java学习知识总结笔记(第四章 类与对象)

第四章 类与对象 4.1 编程言语的几个发展阶段 1、面向机器语言 用诸如100011110110100这样的指令序列来编写 2、面向过程语言 采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构构造程序,即任何程序都可由顺序、选择、循环三种基本控制结构构造 3、面向对象语言 更加符合人的思维模式 三个特性:封装;继承;多态 4.2 类 java语言是面向对象语言,它的源程序是由若干个类组成...

JXNU_YeLang的博客 2107

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Java核心技术卷I笔记】第四章 类和对象

【Java核心技术卷I笔记】第四章 类和对象

sybBlog 212

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java核心技术笔记第四章对象与类

第四章对象与类 面向对象程序设计概述 1.面向对象的程序是由对象组成的,每个对象包含用户公开的特定部分和隐藏的实现功能。只要对象能满足功能,就不需要关心如何实现的。 类 1.类是构造对象的模板或蓝图,由类构造对象的过程称为创建类的实例 2.封装,封装就是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方式。对象中的数据称为实例字段,操作数据的过程称为方法。每个对象都有特定的实例段,这些值的集合代表着这个对象的状态。 3.继承,用一个已有的类去扩展一个新的类,扩展的新类具有被扩展类的全部属性和方法,

LiangJiaWei7的博客 552

《Java 核心技术 卷1》 笔记 第四章:类与对象

类与对象基础概念

yu_duan_hun的博客 589

《Java核心技术》第四章 对象与类 学习笔记

第四章 对象 4.1 面向对象程序设计概述

兰陵鸡王的博客 203

java第四章类与对象学习笔记

类中的实例方法不可以用类名直接调用。只有是静态方法才可以用类名.方法名来调用。实例方法只有创建出来,然后用实例对象去调用实例方法;

qq_51412866的博客 1152

Java面向对象程序设计笔记——第四章类与对象

1成员变量与局部变量{ 在变量声明部分声明的变量叫做成员变量; 在方法体中声明的变量叫做局部变量 } 2实例变量与类变量 { 成员变量又分为实例变量和类变量。 在变量的类型前加static的为类变量,没有static的为实例变量 } ...

m0_68363675的博客 604

阅读Java核心技术Ⅰ的笔记(Java基础、第四章、对象与类)

思想才是一切的起点——岛屿心情《寻找》 Java核心技术Ⅰ第四章 对象与类4.1面向对象程序设计概述4.1.1类4.1.2对象4.1.3识别类4.1.4类之间的关系4.2使用预定义类4.2.1对象与对象变量4.2.2Java类库中的LocalDate类4.2.3 更改器方法与访问器方法4.3 用户自定义类4.3.1 User类4.3.5 隐式参数与显式参数4.3.6 封装的优点4.3.7 基于类的访问权限4.3.9 final实例域 第四章 对象与类 4.1面向对象程序设计概述 传统的结构化程序设计通过设计

阿兰你在哪 438

Java核心技术基础篇 第四章 类与对象 阅读笔记

类之间的关系: 依赖:如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。 聚合:聚合关系意味着类A的对象包含类B的对象。(有的人也喜欢将聚合称之为“关联”) 继承:没什么好说的。   Java中使用对象变量来完成对一个对象的多次使用,对象变量就如同C++中的指针一样,所以Java中的任何变量都需要初始化后才能使用。 可以显示地将对象变量设置为null,表明这个对象变量目

tom555cat 689

《Java核心技术 卷Ⅰ 》第四章笔记——对象与类

类的基本概念 1.由类构造对象的过程称为创建类的实例。 2.封装是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方式。 3.对象中的数据称为实例字段,建议将其全部设置为private。 实例字段可以理解为类中的非静态成员变量,与之相对应的是静态字段。 4.操作数据的过程称为方法。 5.作为一个类的实例,特定对象都有一组特定的实例字段,这些值的集合称为这个对象的当前状态。 6.通过扩展一个类来建立另外一个类的过程称为继承。 7.调用方法后会改变对象的状态,称这个方法为更改器方法

x568059888的博客 268

[Java学习笔记] Java核心技术 卷1 第四章 对象与类

第4章 对象与类 4.1 类和对象的基本概念 描述了类和对象的基本概念,以及类之间的关系介绍。 程序中的很多对象来自于标准库,还有一些自定义的。 结构化程序设计:通过设计一系列的过程(算法),选择合适的存储方式来解决问题。 算法+数据结构 4.1.1 类/封装/继承 类是构造对象的模板,由类构造对象的过程称为创建类的实例。 封装:也称为数据隐藏。从形式上看,封装不过是将数...

anbanxiu3636的博客 196

Educoder–Java面向对象(第四章)- String类【笔记+参考代码】

Educoder–Java面向对象(第四章)- String类【笔记+参考代码】 第一关 编程要求 本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下: roster1变量为之前的全班花名册,roster2变量为小明统计的全班花名册。 你将被要求输出3行: 第一行为roster1的长度; 第二行为roster2的长度; 第三行为两个花名册是否相同,若相同,输出“相同”;...

fuhanghang的博客 2万+
上一篇: Java 笔记 JVM运行机制及基本原理
下一篇: 智能算法-CCPSO2
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值