一、面向过程的思想和面向对象的思想

面向对象和面向过程的思想有着本质上的区别,作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,然后再分析这些类和对象应该具有哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。

面向对象有一个非常重要的设计思维:合适的方法应该出现在合适的类里面

二、简单理解面向对象

就是在程序里面首先分解出来的应该是注意不再是一步一步的过程了,而是首先考虑在这个问题域里面或者程序里面应该具有有哪些对象,所以从现在开始考虑任何问题脑子里不要再想着我实现这件事我第一步应该干什么,第二步应该干什么,如果这样想,那就是面向过程的思维了。面向对象的思维是,当我碰到这个问题域的时候,碰到这个程序的时候,我首先应该把这个问题里有哪些对象,对象与对象之间有什么关系抽象出来。

三、面向对象的设计思想

面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式。

面向对象更加强调运用人类在日常生活的逻辑思维中经常采用的思想方法与原则,如抽象、分类,继承、聚合、多态等。

人在思考的时候,首先眼睛里看到的是一个一个的对象。

四、对象和类的概念

对象是用于计算机语言对问题域中事物的描述,对象通过“属性(attribute)”和“方法(method)”来分别对应事物所具有的静态属性和动态属性。

类是用于描述同一类的对象的一个抽象的概念,类中定义了这一类对象所具有的静态属性和动态属性

类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

eg.什么叫瓶子?

瓶子的定义:具有某些类特征的东西就是瓶子,比分说什么样的形状,比方说有个口,能倒水,能装水,一般有个盖等等。给瓶子下定义的过程,其实就是把瓶子里的某些东西抽象出来了,所以瓶子在这里是叫做一类事物的一个抽象,在你脑子里有瓶子的概念,可瓶子的概念在你脑子里到底是什么呢?瓶子的概念在你脑子里叫做一类事物的一个抽象。怎么抽象的呢?你往往抽象的是这两个方面:第一个方面我们叫它静态的属性,瓶子应该具有哪些特征,比分说瓶子应有个口,这是它的具有的一个静态属性,瓶子一般有一个盖,这也是它的具有一个静态属性,除此之外,你还可能给它总结动态的属性,什么动态的属性呢?比放说瓶子能倒水,这是它的动态属性。瓶子这个概念在你脑子里如果你细细的思维的话,其实你给它做了两方面的总结,一方面是静态的,一方面是动态的。反映到JAVA的类上,一个就是成员变量(静态属性),一个就是方法(动态属性)方法是可以执行的,可以动的。成员变量是某一个类的静态属性。所以你脑子里瓶子的概念实际上是一类事物的一个抽象,这种东西我们叫它类,椅子是类,桌子是类,学生是类。什么是对象呢?这一类事物的具体的某个实例就叫做对象。所以一类事物的具体的某一个东西,符合这类事物具体的特征的某个东西就叫做对象。瓶子是一个类,某个瓶子就是瓶子这个类里面的一个对象。

六、类(对象)之间的关系

一.关联关系(最弱的一种关系)

二.继承关系(比较强的一种关系)

三.聚合关系(整体和部分)(比较强的一种关系)

四.实现关系

五.多态

七、Java与面向对象

对象和类是分不开的,必须首先定义类才能有对象。首先定义方法才能调用。对象是JAVA里面的核心,做任何东西你首先都得给我造出一个对象才能做。静态属性简称属性,也叫成员变量,以后说属性或者说成员变量它们指的都是同一回事。

整个类可以看作是静态的属性还有方法他们之间的一个综合。怎么抽象出一个类的概念,还是那句话,你必须抽象出两个方面来,第一方面是看他们的静态属性,他们有哪些成员变量,第二方面是看他们的有哪些方法。

写JAVA程序时,我们一上来写的就是public class(声明一个类),在这个class里面我们写的是成员变量和方法。

每一个JAVA里面的class(类)都对应了我们现实生活中某一类事物的一个抽象。比如说要在JAVA里面封装一只狗,具体怎么封装,如何写代码,代码如下:

从这个意义上来讲,JAVA里面的每定义一个类实际上就相当于一种新的数据类型。就跟int ,float, String等一样,不过是一种新定义的类型而已。

八、为什么使用面向对象编程?

面向对象编程:一组对象互相配合通过沟通完成特定功能

做软件苦苦追求的一种境界是可重用性(reusable),可扩展性。如果是面向过程,一般情况是属性和方法它们是分开的,他们不是聚合的关系,不是合在一起的,这样要复用起来比较麻烦,复用的层次只是局限于方法这个层次上,而面向对象则不同,它是把属性和方法综合在一个里面。综合在一起复用的时候是整个对象进行复用。所以面向对象和面向过程相比,前者更加容易让我们达到可重用性。

java基础面向对象_Java基础面向对象相关推荐

  1. java super用法_Java基础面试题汇总

    blog.csdn.net/ThinkWon/article/details/104390612 Java概述 何为编程 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结 ...

  2. java的实现基础知识_Java基础知识

    1 面向对象和面向过程的区别 面向过程: 优点:性能高.直接编译. 适用:单片机.嵌入式开发.Linux/Unix 面向对象: 特点:封装.继承.多态 优点:易维护.易复用.易扩展.可移植(数据类型. ...

  3. 黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

    黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合 ...

  4. java 向父类_Java基础——面向对象(Object父类)

    原标题:Java基础--面向对象(Object父类) 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. Obj ...

  5. java基础面向对象_Java基础-面向对象

    一面向对象基础 1 类:例如车有:小汽车.大卡车.三轮车.四驱车等等.但要用一个词概括它们,则可以统称为车.现在这个"车"就相当于 类 2 抽象类:一个被 abstract 修饰的 ...

  6. java面向对象基础代码_Java基础语法——面向对象(1)

    一 面向对象 1.1 什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. 面向过程的程序设计方式,是遇到一件事时,思考"我该怎么做",然后一步步实 ...

  7. java 抽象类对象_Java基础___面向对象__抽象类

    抽象类 在面向对象的概念中,所以的对象都是通过类来描绘的,但是反过来,并不是多余类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对象 ...

  8. java面向对象基础代码_JAVA基础知识点之Java面向对象

    特点:1:将复杂的事情简单化. 2:面向对象将以前的过程中的执行者,变成了指挥者. 3:面向对象这种思想是符合现在人们思考习惯的一种思想. 过程和对象在我们的程序中是如何体现的呢? 过程其实就是函数: ...

  9. java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...

    上一个礼拜太忙了,今天开始恢复java的学习~ 目录 1.面向过程--面向对象的区别 传统的面向过程式编程是动作驱动的,数据和动作是分离的.面向对象编程的范式重点在于对象,动作和数据一起定义在对象中. ...

最新文章

  1. opencvmediapipe 人脸检测+摄像头实时
  2. Learn OpenGL (十二):投光物
  3. 生物信息学常见数据格式 • fasta • fastq • gff/gtf 练习题
  4. python webshell_python脚本实现查找webshell的方法
  5. C++设计模式——适配器模式(对象适配器、类适配器)
  6. 基于Smith预估器的PID控制在房间湿度控制
  7. ios开发 循环引用 检测_iOS开发——Block引起循环引用的解决方案
  8. 2019.03.21 创建表 一对多,一对一,多对多。
  9. Oracle PL SQL完全自学手册pdf
  10. LCD驱动芯片/LCD段式液晶显示驱动芯片-VK0192M/VK0256/B/C技术资料简介
  11. 宁波大学计算机网络复试真题,宁波大学计算机网络习题集
  12. 《计算机网络:自顶向下的方法》课后习题_第二章
  13. 关于如何让网站被搜索引擎收录
  14. IT人员的职业生涯规划
  15. 虚拟机Ubuntu21.04全屏显示
  16. 禁止小程序输入Emoji表情符
  17. vue_按需引入elment、echarts和路由懒加载,减少打包体积
  18. 解决pnpm 不是内部或外部命令的问题(pnpm安装教程)
  19. vue移动助手实践(一)——基于vue的换肤功能
  20. 【MATLAB教程案例69】基于MATLAB编程实现H无穷控制器与性能分析

热门文章

  1. git使用变基方式同步远程和本地副本的代码同步方式
  2. 直接访问静态图片_详解nginx和tomcat访问图片和静态页面的配置方法
  3. 多元统计第二章证明题_2020年中南大学应用统计硕士考研成功经验分享
  4. python subprocess_python subprocess - 刘江的python教程
  5. python写网站 linux_linux下利用nginx部署python网站
  6. 计算机论文数据建模怎么写,如何撰写建模论文?
  7. c语言 浮点型数据怎么存放,C语言学习之浮点型数据存储
  8. oracle分页置顶,[置顶]       ibatis查询oracle分页
  9. 计算机基础知识第四章测试,计算机基础知识测试题第四章
  10. 基于颜色特征的图像匹配MATLAB,基于颜色特征的图像检索系统 这是个MATLAB程序 - 下载 - 搜珍网...