Java学习笔记(六):面向对象① —— 认识面向对象

简介: Java学习笔记(六):面向对象① —— 认识面向对象

@[toc]
  
  
  

面向过程 & 面向对象

  
面向过程思想:

强调的是功能的行为,以函数为最小单位,考虑怎么做

  • 步骤清晰简单,第一步做什么,第二步做什么......
  • 面向过程适合处理一些较为简单的问题

  
面向对象思想:

强调具备了功能的对象,以类/对象为最小单位,考虑谁来做

  • 物以类聚,分类的思维模式,思考解决问题首先需要哪些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过程的思考。
  • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题。

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

  
举个例子:

人把大象装进冰箱 —— 这个问题怎么做?

面向过程写法:

  1. 把冰箱门打开
  2. 抬起大象,塞进冰箱
  3. 把冰箱门关闭


面向对象写法:

人{
        打开(冰箱){
            冰箱.打开();
        }
        
        抬起(大象){
            大象.进入(冰箱);
        }

        关闭(冰箱){
            冰箱.关闭();
        }
}

冰箱{
        打开(){
            具体操作
        }
        
        关闭(){
            具体操作
        }
}

大象{
        进入(冰箱){
            具体操作
        }
}

  
  
  

什么是面向对象

  

面向对象编程(Object-Oriented Programming,OOP)

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

面向对象的三大特征:

  • 封装
  • 继承
  • 多态


从生活认知角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对于对象的抽象。

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

  
  
  

类与对象的关系

  

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

  • 动物、植物、电子产品......
  • Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为。


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

  • 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。
  • 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。

  
  
  

面向对象的思想概述

  

程序员从面向过程的执行者转化成了面向对象的指挥者
  

面向对象分析方法分析问题的思路和步骤:

  • 根据问题需要,选择问题所针对的现实世界中的实体。
  • 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
  • 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造成计算机能够识别和处理的数据结构。
  • 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具。

  

在这里插入图片描述

相关文章
|
1月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
25 1
|
2月前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
27 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
2月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
46 2
|
2月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
57 0
|
4月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
4月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
41 4
|
4月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
3月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
32 0
|
3月前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
52 0
|
3月前
|
Java 程序员 开发工具
java学习笔记
java学习笔记
51 0