Java——面向对象

news2024/11/16 15:34:23

目录

前言

一、什么是面向对象?

面向过程 & 面向对象

面向对象

二、回顾方法的定义和调用

方法的定义

方法的调用

三、类与对象的创建

类和对象的关系

创建与初始化对象

四、构造器详解

五、创建对象内存分析

六、封装详解

七、什么是继承?

八、Super详解

九、方法重写

十、什么是多态

十一、Instance of和类型转换

十二、static关键字详解

十三、抽象类

十四、接口的定义与实现

十五、N中内部类

总结


前言

随着对java学习的深入,接下来要学习的内容是基于java编程语言的面向对象知识。主要介绍了什么是面向对象?类和对象的创建、构造器详解、创建对象内存分析、封装、继承、多态等内容


一、什么是面向对象?

面向过程 & 面向对象

面向过程思想

●步骤清晰简单,第一步做什么,第二步做什么....

●面对过程适合处理一些较为简单的问题

面向对象思想

●物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。

●面向对象适合处理复杂的问题,适合处理需要多人协作的问题

对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去解决。

面向对象

面向对象编程(OOP)

面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据

抽象

三大特性:封装、继承、多态

认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象

代码运行角度考虑,是先有类后有对象。类是对象的模板


二、回顾方法的定义和调用

方法的定义

修饰符 返回类型

 break:跳出switch,结束循环和return的区别

方法名:注意规范就ok  见名知意

参数列表:(参数类型 参数名)...

方法的调用

静态方法 非静态方法

 

 

形参和实参(需要注意的是实际参数和形式参数的类型要对应)

 值传递和引用传递

  

this关键字(在类里面this关键字就是指向目前对象的指针)

 ​​​​​​


三、类与对象的创建

类和对象的关系

类是一种抽象的数据类型,它是对某一事物整体描述/定义,但是并不能代表某一个具体的事物。

   ●Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的书屋应该具备的特点和行为

对象是抽象概念的具体事例

   ●张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。

   ●能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。

创建与初始化对象

使用new关键字创建对象

使用new关键字创建的时候,除了分配内存空间之外,还会给 创建好的对象 进行默认的初始化以及对类中构造器的调用。

类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下两个特点:

1、必须和类的名字相同

2、必须没有返回类型,也不能写void

构造器必须要掌握

打开Student的class文件会发现比我们所写的代码多了一个Student()方法,这就是构造器,编译器会默认生成一个无参构造方法

无参构造与有参构造的简单介绍 

 ​​​​​​​


四、构造器详解

五、创建对象内存分析

六、封装详解

七、什么是继承?

八、Super详解

九、方法重写

十、什么是多态

十一、Instance of和类型转换

十二、static关键字详解

十三、抽象类

十四、接口的定义与实现

十五、N中内部类


总结

以上就是本文要介绍的内容,主要介绍了什么是面向对象、类和对象的创建、构造器详解、创建对象内存分析、封装、继承、多态等内容。

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

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

相关文章

Unity TextMeshPro

Unity TextMeshPro 简介 TextMeshPro(也简称为TMP)号称是Unity的终极文本解决方案,它是Unity 的 UI 文本和旧版文本网格体的完美替代品。 功能强大且易于使用,使用高级文本渲染技术以及一组自定义着色器;提供实质性的视觉质量改进,同时在文…

Python基础教程(入门教程),初学者学Python编程如何快速入门?

【导语】Python是一种跨平台的计算机程序设计语言,通过Python编程,我们能够解决现实生活中的很多困难,现如今,我们工作中的许多工作都需要通过编写计算机软件来完成,那么初学者学Python编程如何快速入门呢?下面就来给…

【用Group整理目录结构 Objective-C语言】

一、接下来,我们看另外一个知识点,怎么用Group把这一堆乱七八糟的文件给它整理一下,也算是封装一下吧, 1.这一堆杂乱无章的文件: 那么,哪些类是属于模型呢,哪些类是属于视图呢,哪些类是属于控制器呢, 我们接下来通过Group的方式,来给它们分一下类, 这样看起来就好…

虚拟机安装ubuntu窗口自适应问题以及软件窗口显示不全解决方法

这部分查了很多博客,首先感谢前人栽树。 直接上我在安装过程中的有效解决步骤, 文后会描述遇到的非有效解决步骤,以供遇到相同问题的同学参考。 打开终端窗口 (ctrlaltt),当然肯定是一条一条的执行。 sudo apt-get update sudo apt-get upg…

第三章-OpenCV基础-7-形态学

前置 形态学主要是从图像中提取分量信息,该分量信息通常是图像理解时所使用的最本质的形状特征,对于表达和描绘图像的形状有重要意义。 大体就是通过一系列操作让图像信息中的关键信息更加凸出。同时,形态学的操作都是基于灰度图进行。 相关操作最主要…

Filebeat处理多行换行的问题

问题:在使用filebeatelabscience或者filebeatelk 又或者其他桥接器的时候,因为filbeat默认使用单行显示的原因,但日志出现堆栈错误或其他多行日志时会出现如下错误处理办法:1.固定日志格式 这里不展开说明2.匹配日志 找到你的file…

【Flutter入门到进阶】Flutter基础篇---布局

1 GridView网格布局组件 1.1 说明 1.1.1 图例 1.1.2 说明 GridView网格布局在实际项目中用的也是非常多的,当我们想让可以滚动的元素使用矩阵方式排列的时 候。此时我们可以用网格列表组件GridView实现布局 GridView创建网格列表主要有下面三种方式 1、可以通过Gr…

纳睿雷达在科创板上市:总市值达93亿元,2022年营收约2亿元

3月1日,广东纳睿雷达科技股份有限公司(下称“纳睿雷达”,SH:688522)在科创板上市。本次上市,纳睿雷达的发行价为46.68元/股,发行数量为3866.68万股,募资总额约为18.05亿元。 上市首日&#xff…

关于“腺样体面容”的两大认知误区,你需要了解一下

仅供医学专业人士阅读参考看完不要再中招了!随着父母越来越重视孩子的外表和健康成长,“腺样脸”几乎成为聚会上不可避免的热门话题。在各种交流和讨论中,你经常听到朋友焦虑有点高兴地说:“虽然我的孩子总是张嘴睡觉,…

pandas: 三种算法实现递归分析Excel中各列相关性

目录 前言 目的 思路 代码实现 1. 循环遍历整个SDGs列,两两拿到数据 2. 调用pandas库函数直接进行分析 完整源码 运行效果 总结 前言 博主之前刚刚被学弟邀请参与了2023美赛,这也是第一次正式接触数学建模竞赛,现在已经提交等待结果…

【自动化测试】一位自动化测试工程师居然不会封装框架?神秘自动化测试框架......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 自动化测试框架 自…

02 Android基础--service

02 Android基础--service什么是service?service的demo使用Service的种类前台service的使用背景什么是service? Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。 服务分为两种形式:非绑定状态与绑定状态。 非…

深入Linux内核理解NIO与Epoll

目录 深入Linux内核理解NIO与Epoll IO模型 BIO(Blocking IO) 代码演示: 缺点: BIO总结: NIO(Non Blocking IO) NIO非阻塞代码示例: 使用telnet客户端Debug代码演示: 总结: NIO引入多路复用器Selector的代码演…

Python - 模块、包

模块 什么是模块(module) 是一个Python文件模块包含:函数、类、变量、可执行的代码模块分类: 内置标准模块(又称标准库)第三方开源模块自定义模块 导入模块的方式 几种方式: import [模块名…

git版本控制流程

git在生产中的版本控制流程 git介绍:Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 那么git是如何在生产中进行版本控制的? 首先在整个git管理的项目中会分为四个分支 dev(开发分支&…

【Python】元组与集合

一、元组Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可定义空元组print(tuple()) print(())# 元组是一个不可变的序列&am…

【Flutter入门到进阶】Flutter基础篇---基础组件

1 Container容器组件 1.1 属性说明 1.1.1 alignment topCenter:顶部居中对齐 topLeft:顶部左对齐 topRight:顶部右对齐 center:水平垂直居中对齐 centerLeft:垂直居中水平居左对齐 centerRight:垂直居中水…

python自学之《21天学通Python》(17)——第20章 案例1 做一个Windows 上的360工具

Python的语法简洁而清晰,具有丰富和强大的类库及第三方库。它能够很轻松地将各种语言模块联结在一起,所以被称为“胶水”语言。当然,Python也能够方便快捷地编写一些常用的工具程序,而用其他程序设计语言需要编写很复杂的代码来完…

算法训练营 day60 动态规划 回文子串 最长回文子序列

算法训练营 day60 动态规划 回文子串 最长回文子序列 回文子串 647. 回文子串 - 力扣(LeetCode) 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的…

DIY-BETAFPV和DIY(ESP-01F+E19-900M20S2模块)915MHz信号测试对比

DIY-BETAFPV和DIY(ESP-01FE19-900M20S2模块)915MHz信号测试对比1. 前提条件2. 实测效果2.1 起点附近(距离3m左右)2.2 30m米距离(树梢)2.3 80米距离3. 整体比较4. PCBA分析4.1 DIY-BETAFPV4.2 DIY&#xff0…