JAVA 从入门到起飞 day8 面向对象01

news2025/1/10 20:45:08

1.面向对象的介绍

老师的讲解:

 面向:就相当于拿找

对象:能干活的东西

面向对象编程:拿东西过来做对应的事

我的理解:

 让我们通过一个比喻来了解 JAVA 中的面向对象思想。

想象一下你正在建一座房子:

1. **类(Class)- 房子的蓝图**


   
   在建造房子之前,你需要有一份详细的蓝图,指明了房子的结构和设计。在 JAVA 编程中,类就好比这样的一份蓝图,其中定义了对象的属性和方法(即对象可以做什么,有什么特点)。

2. **对象(Object)- 根据蓝图建造的房子**
   
   根据蓝图你可以建造多座结构相同但独立的房子。同理,在 JAVA 中,你可以根据一个类创建多个对象,它们都有类中定义的属性和方法,但每个对象可以有自己独特的属性值。

3. **属性(Attribute)- 房子的特性**
   
   每座房子都有自己的特性,比如卧室的数量、房子的颜色等。在 JAVA 中,对象的属性就是用来描述对象的特性的,例如一个`Person`类可以有`name`和`age`属性。

4. **方法(Method)- 房子的功能**
   
   一个房子有多种功能,比如可以开窗通风,可以开门出入。在 JAVA 中,对象的方法就是定义对象可以执行什么样的操作。

5. **封装(Encapsulation)- 房子的私密性**
   
   房子有一些区域是私人的,不对外公开,比如你可能不希望任何人都可以进入你的卧室。JAVA 中的封装就是这样一个概念,可以限制对某些属性或方法的访问,保证对象的内部状态的安全。

6. **继承(Inheritance)- 房屋样式的传承**
   
   如果你有一个已经设计好的房子蓝图,你可以在这个基础上添加更多的特性,比如添加一个花园或者泳池。JAVA 中的继承允许你在一个已存在的类的基础上创建一个新的类,继承原来类的属性和方法,并可以添加新的属性和方法或重写原有的方法。

7. **多态(Polymorphism)- 房子的多功能性**
   
   一间房子可以用作多种用途,比如可以作为居住用房,也可以改造成办公室。JAVA 中的多态允许一个方法有多种实现方式,具体执行哪种实现可以在运行时动态决定。

为什么用面向对象编程?

JAVA 采用面向对象编程(Object-Oriented Programming, OOP)原因可以从几个方面来解析:

1. **代码重用和模块化**:
   通过使用类和对象,JAVA 程序员可以更容易地重用代码。类可以作为模块来创建,而后可以在多个项目或程序中重复使用,这有助于减少代码重复和提高代码的可重用性。

2. **更容易维护和扩展**:
   OOP 允许程序员以更结构化和模块化的方式来组织代码。这意味着当需要修改或扩展程序时,可以更容易地识别和修改相关的部分,而不是整个代码基础。

3. **更好的问题域建模**:
   OOP 允许程序员创建对象,这些对象可以很好地模拟现实世界中的实体和关系。这有助于更准确地模拟和解决实际问题,因为可以直接将现实世界的概念和结构映射到程序中。

4. **封装提高安全性**:
   通过封装,JAVA 程序可以隐藏对象内部的状态,并只通过定义好的接口来与对象交互。这有助于保护对象的内部状态不被外部代码错误地访问或修改,提高了代码的安全性和稳定性。

5. **更好的代码可读性和组织结构**:
   OOP 提倡将相关的属性和方法组织在一个类中,这样有助于提高代码的可读性和清晰度,使得代码结构更为清晰和有组织。

6. **灵活性和动态性**:
   通过使用多态和继承,JAVA 可以创建更灵活和动态的程序。多态允许程序在运行时决定使用哪个方法,而继承则允许程序员创建新的类,复用和扩展现有类的功能。

7. **推动了设计模式的发展**:
   OOP 也促进了设计模式的发展。设计模式是解决常见编程问题的最佳实践和模式,许多设计模式是基于 OOP 原则和概念创建的,可以帮助创建更健壮、可维护和可扩展的程序。

基于以上原因,JAVA 采用了面向对象编程模式,使其成为了一个强大、灵活且适用于多种应用场景的编程语言。

老师的解释:

我们平时在处理问题的时候无论是洗衣还是扫地还是聊天都要找到对应的工具。 

 面向对象的学习重点是什么?

老师的解释:

1.就是学习获取已有对象并使用

2.学习自己设计对象并使用:

我的理解:

在 JAVA 中学习面向对象编程(OOP):

1. **类和对象**:
    - **类的定义与实例化**:理解类是什么,如何定义类,以及如何创建类的实例(对象)。
    - **对象的属性与方法**:理解对象的属性(数据成员)和方法(函数)如何定义和使用。

2. **封装**:
    - **访问修饰符**:理解不同的访问修饰符(private, public, protected)如何控制类成员的访问权限。
    - **构造方法与Getter/Setter方法**:理解如何通过构造方法初始化对象和通过getter和setter方法访问和修改对象的属性。

3. **继承**:
    - **基础和派生类**:理解继承的概念,包括如何创建基类和派生类。
    - **方法重写**:理解如何在派生类中重写基类的方法以实现新的功能。

4. **多态**:
    - **方法重载**:理解方法重载的概念及其用途。
    - **动态绑定**:理解动态绑定和如何通过它实现多态。

5. **抽象类与接口**:
    - **抽象类**:理解抽象类的概念及其用途。
    - **接口**:理解接口的概念和如何使用它来实现多重继承和定义契约。

6. **异常处理**:
    - **异常类型**:理解JAVA中不同类型的异常(checked和unchecked)。
    - **异常处理**:理解如何使用try-catch块和throw/throws关键字进行异常处理。

7. **设计模式**:
    - **常用设计模式**:学习和理解一些常用的OOP设计模式,如单例模式,工厂模式,观察者模式等。
   
8. **实际项目练习**:
    - **项目实战**:通过实际项目练习来加深对OOP概念的理解和应用。

9. **代码质量和最佳实践**:
    - **代码重用和模块化**:理解如何编写可重用和模块化的代码。
    - **代码清晰与注释**:学习如何编写清晰的代码并正确地使用注释来文档化代码。

集中精力学习和理解这些重点将帮助你掌握JAVA中的面向对象编程,并成为一个更加熟练和高效的JAVA程序员。

 

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

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

相关文章

【开放视觉】AI人像特效之「更快、更高、更强的互娱换脸解决方案」

写真开源AIGC推荐插播: 最新 FaceChain支持多人合照写真功能,项目信息汇总:ModelScope 魔搭社区 github开源直达(觉得有趣的点个star哈。):https://github.com/modelscope/facechain 正文&#xff1…

如何实现数据流畅转换?火山引擎ByteHouse推出ELT能力

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 在数据分析场中,企业使用的数据通常具备来源多样化的特点,如支付交易记录、用户行为等,且数据格式各异,有的为行式存…

海南大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书​

海南大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书​

分享一下鲜花店做微信小程序开发的重要性

随着移动互联网的普及,微信小程序作为一种新型的应用形态,正在改变着人们的生活方式和消费习惯。对于鲜花店来说,开发微信小程序尤为重要,因为它能为商家带来诸多优势和便利。本文将详细探讨鲜花店做微信小程序开发的重要性。 首先…

Mysql->Hudi->Hive

一 准备 1.启动集群 /hive/mysql start-all.sh2.启动spark-shell spark-shell \--master yarn \ //--packages org.apache.hudi:hudi-spark3.1-bundle_2.12:0.12.2 \--jars /opt/software/hudi-spark3.1-bundle_2.12-0.12.0.jar \--conf spark.serializerorg.apache.spark.…

二维码智慧门牌管理系统:强化地址管理,推动政府业务协同

文章目录 前言一、二维码智慧门牌管理系统的特点二、优势与效果 前言 随着科技的迅猛发展,我们的生活正在经历着前所未有的变革。在这个过程中,地址门牌的管理显得尤为重要。为了更好地管理地址资源,政府各部门需要实现标准地址资源共享交换…

uniapp 小程序 父组件调用子组件方法

答案:配合小程序API > this.selectComponent(""),来选择组件,再使用$vm选择组件实例,再调用方法,或者data 1 设置组件的id,如果你的多端,请跟据情况设置ref,class,id,以便通过小…

Python 变量的定义和数据类型的转换

变量 变量的定义 基本语法:变量名 值 变量名是给对象贴一个用于访问的标签,给对象绑定名字的过程也称为赋值,赋值符号 “” 变量名自定义,要满足标识符命名规则。 Python中,不需要事先声明变量名及其类型&#xff…

100个Python常见问题.pdf

大家好,我是涛哥。 最近,收到大家的反馈,能不能整理一些在python的开发中比较常见的问题,所以这段时间为大家梳理了100个Python常见问题,看看这里面有没有你需要的? 包括Python爬虫,PythonGUI编…

海外媒体发稿:Kol出文营销推广10方法解析

根据遵照下列10个秘笈,你将能够变成行业的领先者,增加自己的知名度并获得更多的可能性。展现个人ip,给予优质的内容,提升技术专业互联网,利用社交媒体和数据统计分析,和粉丝取得联系,参加行业主…

Java开发之框架(spring、springmvc、springboot、mybatis)【面试篇 完结版】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、框架知识分布二、Spring1. spring-单例bean① 问题引入② 单例bean是线程安全的吗③ 问题总结④ 实战面试 2. spring-AOP① 问题引入② AOP记录操作日志③ …

9.11黄金今日会爆涨吗?黄金原油最新投资行情走势咨询

黄金走势分析及策略      黄金上周五冲高回落,日线以长上影线阴线收尾,说明上方10日线1930附近阻力较强,这也是上周五的高点,也有可能是未来决定黄金能否打开新回升趋势的关键,下方目前受到中轨线1915一线支撑&…

无涯教程-JavaScript - FVSCHEDULE函数

描述 FVSCHEDULE函数在应用一系列复合利率后返回初始本金的未来值。使用FVSCHEDULE以可变或可调汇率计算投资的未来价值。 语法 FVSCHEDULE (principal, schedule)争论 Argument描述Required/OptionalPrincipalThe present value.RequiredScheduleAn array of interest rat…

三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍

三维模型3DTile格式轻量化压缩处理工具常用几款软件介绍 三维模型3DTile格式的轻量化处理旨在减少模型的存储空间和提高渲染性能。以下是一些推荐的工具软件,可以用于实现这个目的: MeshLab:MeshLab是一个开源的三维模型处理软件&#xff0c…

51单片机智能小车(循迹、跟随、避障、测速、蓝牙、wifie、4g、语音识别)总结

目录 1.电机模块开发 1.1 让小车动起来 1.2 串口控制小车方向 1.3 如何进行小车PWM调速 1.4 PWM方式实现小车转向 2.循迹小车 2.1 循迹模块使用 2.2 循迹小车原理 2.3 循迹小车核心代码 3.跟随/避障小车 3.1 红外壁障模块分析​编辑 3.2 跟随小车的原理 3.3 跟随小…

职场新人向老板汇报工作时,需要注意什哪些事项?

引言: 职场新人在向老板汇报工作时,需要特别注意一些事项,以确保有效传达工作进展和获得老板的认可。本文将重点介绍职场新人在向老板汇报工作时需要留意的事项和技巧。 一、准备充分: 在向老板汇报工作之前,职场新人应…

使用Enterprise Architect(EA)的插件AtScope,解析代码中函数和变量调用关系

Enterprise Architect简称EA,是用来设计程序流程图和结构图的软件 AtScope是EA的插件,可以用来分析代码结构,查看工程中的文件之间的变量和函数调用关系 安装EA和AtScope都需要lisence,自行解决 这里以EA10版本为例 EA和AtScop…

【SpringBoot应用篇】SpringBoot集成Caffeine本地缓存

【SpringBoot应用篇】SpringBoot集成Caffeine本地缓存 本地缓存介绍本地缓存方案选型CaffeineSpringBoot 集成 Caffeine 两种方式SpringBoot 集成 Caffeine 方式一pomapplication.yml缓存配置类User实体UserMapperUserServiceUserController SpringBoot 集成 Caffeine 方式二po…

开源抖音小程序系统源码分享+完整版安装教程

给大家分享一个抖音小程序系统源码,系统是开源运营版,源码包含完整搭建部署教程,内含多套模板、模块化自由DIY功能,支持除抖音小程序制作外,还支持一键同步微信、支付宝、百度、今日头条端小程序等等,功能是…

使用Python操作CSV文件,方便又快捷

概念 CSV是逗号分隔值或者字符分割值,其文件以纯文本形式存储表格数据。 CSV文件可以用文本文件或者转换成EXCEL(直接用EXCEL也可以,但是可能会有一些问题)打开。因此更适合通过CSV文件进行程序之间转移表格数据。 应用场景 需…