JAVA复习之面向对象编程

echarts实现折线图上下限区域展示 效果图: 画这种区域中主要是利用了series的两个属性: 思路:上下限都画上区域,然后折线利用图形透明度隐藏,给上区域加上颜色,给下区域加上白色(echarts图背景是啥色,就加啥色) lineStyle: { opacity: 0 }, // 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形 areaStyle: { color: 'rgba(0,122,255,0.1)' }, // 填充的颜色 我的需求是最大天数、最小天数、 阅读详情

在这里插入图片描述

一、面向对象编程基础

(一)面向对象概述

1、对象,是一个抽象概念,表示任意存在的事物,世间万物皆对象!!
2、类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。

特点

1、封装性

将对象的属性和行为封装起来,其载体就是类,类通常会对客户隐藏其实现细节,这就是封装的思想。
在这里插入图片描述

2、继承性

继承是实现重复利用的重要手段,子类通过继承,复用父类属性和行为的同时又添加了子类特有的属性和行为。
在这里插入图片描述

3、多态性

将父类对象应用于子类的特点就是多态,子类继承父类特征的同时,也具备了自己的特征,并且能够实现不同的效果,这就是多态化的结构。
在这里插入图片描述

(二)类与对象

1、成员变量

在这里插入图片描述

2、成员方法

在这里插入图片描述
在这里插入图片描述

3、构造方法

在这里插入图片描述
什么是构造方法?
在这里插入图片描述
私有构造方法
在这里插入图片描述

4、局部变量

在这里插入图片描述
局部变量的有效范围:
在这里插入图片描述
注意: ①java中不同区域中可以有同名变量;②在同一区域中不可以定义相同名称和类型的局部变量

5、this关键字

变量与参数同名怎么办?
因此我们就引入了this关键字在这里插入图片描述
注意: this()语句之前不可以有其他代码

6、static关键字

静态变量
在这里插入图片描述
静态常量
在这里插入图片描述
静态方法
在这里插入图片描述
静态代码块【声明类对象的时候,就会执行】
在这里插入图片描述

二、面向对象核心技术

(一)类的封装

将对象的属性和行为封住起来,而将对象的属性和行为封住起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想

(二)类的继承、extends关键字

1、继承
在这里插入图片描述
2、extends关键字
在java中让一个类继承另一个类需要使用extends关键字.
语法:类1 extends 类2
注意:java仅支持单继承

3、方法的重写
父类的成员都会被子类继承,当父类中的某个方法并不适用于子类时,就需要在子类中重写父类的这个方法。
在这里插入图片描述
在继承中还有一种特殊的重写方式,子类与父类的成员方法返回值、方法名称、参数类型及个数完全相同,唯一不同的是方法实现内容,这种特殊的重写方式被称为重构。
super关键字
super关键字代表父类对象,且必须放第一位;

4、所有类的父类—Object
在这里插入图片描述
注意:Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,因为这些方法被定义为final类型。

getClass()方法
getClass方法会返回某个对象的执行时的Class实例,然后通过Class实例调用getName()方法获取类的名称。

getClass().getName;//获取名称

toString()方法
toString()方法会返回某个对象的字符串表示形式。当打印某个类对象时,将自动调用重写的toString()方法。

equals()方法
Object类中的equals()方法比较的是两个对象的引用地址是否相等。
在这里插入图片描述

(三)类的多态【一种定义、多种实现】

类的多态性可以从两方面体现:①是方法的重载;②类的上下转型;
1、方法的重载
在这里插入图片描述
2、类的上下转型
在这里插入图片描述
即把子类对象赋值给父类类型的对象,这种技术被称为“向上转型”;
在这里插入图片描述
说明:当使用显示类型转换向下转型时,必须向编译器指明将父类对象转换为哪一种类型的子类对象;
在这里插入图片描述
3、instanceof关键字【判断父类对象是否为子类的实例】
使用instanceof关键字的表达式返回值为布尔值;
在这里插入图片描述

(四)抽象类与接口

抽象类

在java中,把类似无法使用具体语言定义的图形类称为抽象类【抽象类不能产生对象实例】
在这里插入图片描述
抽象类与抽象方法【继承类必须重写抽象方法】:
在这里插入图片描述
具体实现:
在这里插入图片描述
使用抽象类和抽象方法时,需要遵循以下原则:
①在抽象类中,可以包含抽象方法,也可以不包含抽象方法,但是包含了抽象方法的类必须被定义为抽象类;
②抽象类不能直接被实例化;
③抽象类被继承后,子类需要重写抽象类中的所有抽象方法;
④如果继承抽象类的子类也被声明为抽象类,则可以不用重写父类中所有的抽象方法;

什么是接口?

接口是抽象类的延伸,接口中所有的方法都没有方法体;
implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法;

说明:在接口中定义的任何变量都自动是static和final的,因此,在接口中定义变量时,必须进行初始化,而且,实现接口的子类不能对接口中的变量重新赋值;
在这里插入图片描述
接口的声明及实现类
在这里插入图片描述

多重继承(接口最大的优势)

在这里插入图片描述

区分抽象类与接口

在这里插入图片描述
抽象类与接口的五点不同:
在这里插入图片描述

访问控制

1、访问控制符
在这里插入图片描述
注意:声明类时,如果不使用public修饰符设置类的权限,则这个默认为default(缺省)修饰;

使用访问控制符时,需要遵循以下原则:
①大部分顶级类都使用public修饰符
在这里插入图片描述
2、java类包
在这里插入图片描述
3、final关键字【最后的最终的】
①被final修饰的类、方法和变量不能被改变;
②被final修饰的类不能被继承;
③被final修饰的方法不能被重写;
④final关键字可用于修饰变量,一旦变量被final修饰,就不可以再改变变量的值,通常把final修饰的变量称为常量;

(五)内部类

在这里插入图片描述

匿名内部类:
匿名内部类的特点是只需要使用一次,也就是说,匿名内部类不能被重复使用;
语法如下:

new A{
		...//匿名内部类的类体
};
abstract class FreshKeepingFilm { // 创建“保鲜膜”抽象类
	abstract void pack(); // 定义抽象的包装方法
}

public class Sausage { // 创建香肠类
	public static void main(String[] args) {
		new FreshKeepingFilm() { // 创建匿名内部类FreshKeepingFilm的对象
			@Override
			void pack() { // 重写抽象的包装方法
				System.out.println("缠上保鲜膜为香肠保鲜");
			}
		}.pack(); // 匿名内部类FreshKeepingFilm的对象调用重写抽象的包装方法
	}
}

使用匿名内部类时应该遵循以下原则:
①匿名类没有构造方法;
②匿名类不能定义静态的成员;
③匿名类不能用private、public、protected、static、final、abstrac等修饰;
④只可以创建一个匿名类实例。

什么情况下会使用匿名内部类?

其实匿名内部类和其他类有着相同的内部结构,只不过匿名内部类创建出的对象没有被具体的变量所引用,所以匿名内部类是“一次性”的。如果创建出的类对象有且仅有一次, 在这种场景中就可以考虑使用匿名内部类。

arcgis根据矢量范围统计栅格数据众数、最大值、均值、中位数、最小值、少数等 像元统计数据 根据多个栅格数据计算每个像元的统计数据。 可用的统计数据有:众数、最大值、均值、中位数、最小值、少数、范围、标准差、总和及变异度。 https://desktop.arcgis.com/zh-cn/arcmap/10.3/tools/spatial-analyst-toolbox/an-overview-of-the-local-tools.htm ... 阅读详情

相关推荐

Origin 2025b中文版安装全指南:避开乱码、水印与崩溃陷阱

Origin作为科研绘图领域的事实标准,其2025b版本首次官方支持简体中文UI,但安装远非‘下一步’即可完成。核心在于理解软件本体、语言包、许可证服务与系统区域设置四者间的耦合关系——尤其Windows非Unicode程序语言必须设为‘中文(简体,中国)’,否则必然触发坐标轴乱码、PDF文字方块等典型故障;而AI辅助拟合、内置Python 3.11等新特性,又依赖正确的字体链(如SimSun)与注册表强制加载(UILanguage=zh-CN)才能稳定启用。该版本广泛应用于材料科学、电化学、XRD/SEM

weixin_42548874的博客 1408

【Java】语言基础

方法重载 方法名相同 参数的类型或个数不同。 记住一点,方法重载与返回值无关 考虑到真实应用,建议方法重载返回值类型相同 system.out.println()本身就是方法重载 public class javaDemo { public static void main(String[] args) { int resultA = sum(10, 20); int resultB = sum(10, 20, 30); double resultC

weixin_44420980的博客 274

【文献阅读:信道估计】Deep Residual Learning Meets OFDM Channel Estimation

基于深度学习的信道估计技术

weixin_43178683的博客 1754

Java基础--继承

继承后的特点 成员变量 子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰父类成员变量,类似于之前学过的 this 。 成员方法 如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。 方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会...

noob_07的博客 299

C语言入门系列:指针入门(超详细)

指针与内存是息息相关的,在学习指针之前,先回忆下内存相关的知识。内存是程序运行期间存储数据的硬件设备,为了方便管理,计算机将内存划分为一个个小的单元,每个单元的大小是一个字节。如果把内存比作一栋酒店大楼,内存单元就像是一个个小的房间,数据就住在小房间里。我们知道,为了客人能准确找到属于自己的房间,酒店房间是有房号的。同样,内存单元也是有编号的,这个编号在计算机中称之为“内存地址。

epitomizelu的专栏 3695

Arduino-CRSF库详解:嵌入式端CRSF协议解析与ELRS接收机集成

CRSF(Crossfire Serial Protocol)是一种面向FPV无人机的轻量级、高实时性串行通信协议,采用单总线异步传输与8位CRC-8校验机制,广泛应用于遥控链路与遥测交互。其核心在于帧同步(0xC8起始字节)、反相逻辑电平及无重传的广播式设计,对嵌入式平台的UART精度、电平匹配和状态机健壮性提出严苛要求。Arduino-CRSF库正是为资源受限MCU(如ESP32、STM32、ATmega328P)提供零配置、中断安全的协议解析能力,封装了CRC查表计算、超时恢复、多级同步验证等关键机制

weixin_35756690的博客 416

子类父类拥有同名的方法时……

子类父类拥有同名的方法时……(这个程序是不能运行的)  package yanzheng;public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); parent.printValue(); Child child=new Child(); ...

24k的优快云 1841

机械臂TCP标定实战:从四点法到六点法的精度跃迁

本文详细解析机械臂TCP标定技术,从基础的四点法到高精度的六点法实现精度跃迁。通过工具坐标系与基坐标系的转换原理,结合实战案例展示六点法如何将装配合格率提升至99.5%,并分享环境控制、操作技巧等提升标定精度的关键要素。

weixin_29038345的博客 896

JAVA——从基础学起(五)类和对象

五 类和对象 5.1 面向对象概述 在生活中,任何一种随处可见的事物都可以称为对象, 简单来说,类实质上就是用于封装对象属性和行为的载体,而对象是类抽象出来的一个实例。 5.1.1 对象 通常来说,对象包含静态的属性与动态的行为。在计算机中,对象的静态属性就是对象的变量,动态行为即对象中定义的方法。 5.1.2 类 类是用于封装对象属性与行为的载体。 5.1.3 封装 封装是面向对象编程的核心思想。将对象的行为与属性封装——即将对象内部的实现方法隐藏起来——这个封装而成的载体就叫做类 封装的思想保证了类内部

WOD_MAAYA的博客 609

黑苹果从入门到精通:最详细的VMware安装macOS教程

前言 不知为何,以前我发的两篇关于黑苹果的文章或没过审或被删除,最近SMZDM上有不少优质的黑苹果文章发出来,貌似禁令已开,前段时间在一篇写的很不错的黑果文章下吹牛说今年要写一个系列,故有了这篇文章作为系列的开头。 系列的名字起的有点俗,叫做xxx从入门到精通,但是我很喜欢,相信过半的黑果群众都是程序员,作为教程来说这个名字俗但是好用,我也希望这个系列能像其它入门到精通系列一样,让大家学到东西...

La victoria的博客 14万+

Hi3516CV610 YOLOv8模型转换与部署实战:从源码到板端推理全流程解析

本文详细解析了Hi3516CV610开发板上YOLOv8模型的转换与部署全流程,包括模型转换、量化、编译和部署等关键步骤。通过实战案例和避坑指南,帮助开发者高效实现从PyTorch模型到嵌入式设备的推理优化,适用于智能门禁、视频分析等实时场景。

weixin_30790841的博客 654

初识类的对象以及封装

我的Java进阶之路(一) 代码功能简介: 可以在控制台输入三位女生的身高和体重,然后会得到她们的平均身高和体重,并且会自动判断她们的平均水平是否达到了美女的标准。 代码知识点简介: 1.对象 对象是事物存在的实体,而对象又包括属性和行为。 2.类 类就是一类事物的总称,如果将某个事物抽象为对象,那么类就是这个对象的总称,类经过实例化就成了对象。 类是用来封装对象的属性和行为的载体,对象则是类的实例。 3.类的封装 封装是面向对象编程的核心思想,将对象的属性和行为封装起来,对使用者隐藏了数据的实现方式。 使

BbWwXY的博客 1134

深入解析 OpenClaw(小龙虾)源码:架构设计与核心实现

OpenClaw用清晰、工程化的代码结构,将复杂的Agent交互流程变成了可管理、可扩展的流水线。无论是想深入了解Agent系统设计,还是希望二次开发定制自己的AI助理,阅读OpenClaw源码都是一次绝佳的学习旅程。希望本文能帮助你快速掌握OpenClaw的核心脉络。如果你对某个模块(如技能开发、安全机制)感兴趣,欢迎继续探讨。本文基于OpenClaw社区版本源码分析,具体实现可能随版本迭代有所调整,请以最新源码为准。

Ven%的博客 449

Java面试复习:Java基础、面向对象编程、JVM原理、Spring框架解析

本文为Java面试复习提供指导,涵盖Java基础、面向对象编程、JVM原理、Spring框架等核心考点。文章详细解析每个知识点的概念和原理,并附带面试高频问题的简要答案。结合代码示例,深入说明关键概念,突出Java 8及以上新特性,揭示常见面试陷阱及解题思路,帮助读者高效准备面试。

weixin_46532327的博客 398

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java面试复习:面向对象编程、Java 8新特性与Spring

本文是为Java面试复习准备的,涵盖了Java基础中的面向对象编程、Java 8新特性、并发编程以及Spring框架的核心知识点。通过概念解析、核心原理、面试高频问题及代码示例,帮助读者深入理解并掌握这些知识点。

weixin_46532327的博客 356

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java 面向对象编程核心概念复习:继承、抽象类、接口与包

本文介绍了Java面向对象编程中的核心概念,包括继承、抽象类、接口和包。继承允许子类继承父类的属性和方法,实现代码复用和多态性;抽象类作为不能被实例化的父类,包含抽象方法和具体方法,强制子类实现抽象方法;接口定义完全抽象的类型,包含抽象方法、常量和默认方法,支持多实现;包用于组织类和接口,提供命名空间管理和访问控制。通过综合示例展示了这些概念在实际开发中的应用,强调了合理运用这些概念可以设计出模块化、可维护和可扩展的Java应用程序。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 634

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java面试复习指南:面向对象编程与JVM原理

本文带您复习Java面试核心知识点,涵盖面向对象编程、并发编程、JVM原理、Spring框架、数据结构与算法等。通过概念解析、核心原理、面试高频问题及简要答案,结合代码示例,帮助您掌握Java 8及以上新特性及常见面试陷阱,助力面试突击复习。

weixin_46532327的博客 433

Java面试复习:基础、面向对象编程、并发、JVM及Spring框架

Java通过JVM实现“编译一次,到处运行”,支持自动垃圾回收和强类型检查。Spring是一个开源的企业级应用开发框架,提供全面的基础设施支持。面向对象编程(OOP)是基于对象的编程范式,强调可重用性和模块化。Spring的核心是IOC(控制反转)和AOP(面向切面编程)。Java是一种面向对象的编程语言,支持跨平台应用开发。Java虚拟机(JVM)是Java程序的运行环境。OOP的四大基本原则:封装、继承、多态、抽象。JVM包括类加载器、执行引擎、垃圾收集器等。Java并发通过线程、锁、并发集合等实现。

weixin_46532327的博客 390

Java面试复习指南:Java基础、面向对象编程与并发编程

这篇文章为Java面试的复习提供了指导,涵盖Java基础、面向对象编程、并发编程、JVM原理、Spring框架等关键知识点。文章通过概念解析、代码示例、高频面试问题来帮助读者理解和准备面试。同时,强调了Java 8及以上的新特性以及常见的面试陷阱。适合快速复习和掌握核心面试内容。

weixin_46532327的博客 341

Java面试复习指南:面向对象编程、JVM原理与Spring框架

本文是一篇Java面试复习指南,涵盖Java基础、面向对象编程、JVM原理、Spring框架、数据结构与算法等核心考点。通过概念解析、核心原理、代码示例,以及面试高频问题和常见陷阱的解析,帮助读者快速掌握面试重点,尤其是Java 8及以上新特性。

weixin_46532327的博客 477

11-复习java程序设计中学习的面向对象编程

示例:创建学生对象,属性:姓名;方法:打印输出姓名。

summer__7777的博客 705

Java面试复习:面向对象编程、JVM原理与Java 8新特性

本文为Java面试复习提供了核心知识点,包括面向对象编程、JVM原理、Java 8新特性、数据结构与算法、Spring框架等。通过概念解析、代码示例和高频面试问题,帮助读者掌握关键要点,提升面试通过率。同时,文章中还穿插了一些常见的面试陷阱及其解答思路,助力考生在面试中脱颖而出。

weixin_46532327的博客 459

Java面试复习:Java基础、面向对象编程、JVM原理与Java 8新特性解析

本文涵盖Java面试中五个核心知识点:Java基础、面向对象编程、JVM原理、Lambda表达式及Stream API。每个知识点包括概念解析、核心原理和面试高频问题,并结合代码示例说明关键概念,突出Java 8及以上的新特性。此外,还提供常见面试陷阱和解题思路,帮助读者在面试中脱颖而出。

weixin_46532327的博客 398

Java基础复习—面向对象编程

文章目录面向对象面向对象简介类的抽象对象的创建对象属性的自动初始化 面向对象 面向对象简介 ​ 面向对象的编程思想以对象的抽象为导向,将现实世界的万事万物都抽象为程序中的对象,对象是数据和操作的封装体,将一组具有相同数据和操作的对象抽象为类型(类)。 ​ 面向对象是指面向客观事物之间的关系,人类日常的思维方式是面向对象,自然界事物之间的关系是对象与对象之间的关系。 ​ 首先根据客户需求抽象出业务对象;然后对需求进行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想

a6465456的博客 268

(二)Java基础知识复习(面向对象编程(OOP))

类,是一类具有相同属性和行为的事物的抽象。简单理解,类就是用来在程序中描述一类“事物”的。任何事物都能够通过属性和行为进行描述,以“学生”为例:学生的属性:姓名、性别、年龄、地址学生的行为:学习、吃饭、睡觉对象,是客观存在的的事物。例如“张三同学”就是属于“学生”类的一个对象。类和对象的关系:类是对象的抽象(描述),对象是类的实体。class 关键字用于定义类,使用类描述一类事物,其实就是在类中定义事物具有的属性和行为。

z1ztai的博客 696

《Java面向对象编程》课程综合复习总结

不同类型的集合适用于不同的场景,选择合适的集合类型可以提高代码效率。遇到的难点及解决方法 难点在于理解不同集合类型的内部实现和适用场景,通过阅读源码和文档解决。个人理解 多态提高了代码的灵活性和可扩展性,抽象类和接口为复杂系统提供了良好的设计基础。第一章:面向对象编程基础 核心概念 • 类与对象:类是对象的蓝图,定义了对象的属性和行为;• List, Set, Map:基本的集合类型,List是有序集合,Set是无序集合,Map是键值对集合。• 集合:一组对象的容器,提供了各种操作对象的方法。

weixin_56626911的博客 769
上一篇: CentOS7 Linux安装详细步骤
下一篇: JAVA复习之异常处理、 常用类和枚举类型
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值