面向对象思想

理解:

面向对象更多的是一种思想的体现。

面向过程更多体现的是什么事情都要亲力亲为。
而面向对象跟多体现的是如何指挥别人做事情,只要明确我要干什么即可。

通过将相关或类似的功能 封装在不同的Java类中。相当于我的类具备了 完成某种、某类、某个问题的能力

面向对象的特点:

更符合我们的思维习惯,
可以将复杂的问题简单化。
我们的角色从原来的执行者变成了指挥者。

抽象对象的思维方式:

抽象对象(名词法)
分析对象的特征和行为
分析对象之间的关系
创建对象,指挥对象做事情

面向过程的处理方式:
要把大象装冰箱总共分3步:

main(String[] args){System.out.println("打开冰箱门");System.out.pritnln("大象进入冰箱");System.out.println("关上冰箱门")
}//面向过程的升级:方法
main(String[] args){open();in();close();
}
public static void open(){System.out.println("打开冰箱门");
}
public static void in(){System.out.pritnln("大象进入冰箱");
}
public static void close(){System.out.println("关上冰箱门")
}

如果处了面向对象的思想,要解决这个问题,它思考的角度就变了

首先要知道面向对象关注的点:

我要完成这件事情涉及到哪些对象。

每个对象应该具备什么样的能力

对象和对象之间的关系


//分析对象: 最简单直接的方法就是名词法。 把大象装冰箱名词: 大象 、 冰箱 、 “你”-程序//分析对象的能力冰箱:开门关门大象:进入冰箱
//分析对象间的关系大象 进入的时候, 依赖冰箱。
//开始实施面向对象的编程大象{进入(冰箱);}冰箱{开门();关门();}程序{main(String[] args){拿一台冰箱 bx; 拿一只大象 dx;调用冰箱的功能: bx.开门();调用大象的功能: dx.进入(bx);调用冰箱的功能: bx.关门(); }   }

优点

Java 是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点

代码开发模块化,更易维护和修改。

代码复用。

增强代码的可靠性和灵活性。

增加代码的可理解性。

三大特征

  • 封装:只隐藏对象的属性和实现细节,仅对外提供公共访问方式
    好处:将变化隔离、便于使用、提高复用性、提高安全性
    原则:将不需要对外提供的内容隐藏起来;把属性隐藏,提供公共方法对其访问
  • 继承:提高代码复用性;继承是多态的前提
    子类中所有的构造函数都会默认访问父类中的空参数的构造函数,默认第一行有super();若无空参数构造函数,子类中需指定;另外,子类构造函数中可自己用this指定自身的其他构造函数。
  • 多态
    是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象
    好处:提高了程序的扩展性
    弊端:当父类引用指向子类对象时,虽提高了扩展性,但只能访问父类中具备的方法,不可访问子类中的方法;即访问的局限性。
    前提:实现或继承关系;覆写父类方法。

后面的内容会详讲到

穿越Java - 基础篇 第三章 面向对象介绍 | 第1节 面向对象思想相关推荐

  1. 穿越Java - 基础篇 第一章 快速带你入门 | 第3节 Java语言发展史

    主题:Java语言发展史 开发环境 更多干货 发展史 开发环境 基于:IntelliJ IDEA.Maven构建工具.JDK1.8.SpringBoot 2.3.4 .Spring4.3.28编写. ...

  2. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.3. 安装Linux前的规划)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 3. 安装Linux前的规划 3.1 选择适当的distribution 3.2 主机的服务规划与硬件的关系 3.3 主机硬盘的主要规划 ...

  3. 穿越Java - 基础篇 第十章 反向探知 - 反射 | 第1节 反射概述

    主题:反射概述 开发环境 更多干货 定义: 作用: 理解: 总结: 开发环境 基于:IntelliJ IDEA.Maven构建工具.JDK1.8.SpringBoot 2.3.4 .Spring4.3 ...

  4. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.2. 磁盘分区)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 2. 磁盘分区 2.1 磁碟连接的方式与装置档名的关系 2.2 磁碟的组成复习 2.3 磁盘分区表(partition table) 2 ...

  5. 软件架构师 第一部分 基础篇 第三章 架构特性的定义

    一家公司决定使用软件解决特定问题,因此它们收集了该系统的需求列表. 有很多种用于需求收集的技术,这些技术通常由团队在软件开发过程中定义. 但是,架构师在设计软件解决方案时还必须考虑许多其他因素,如图4 ...

  6. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.4. 重点回顾)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 4. 重点回顾 5. 本章习题 6. 参考数据与延伸阅读 7. 针对本文的建议:http://phorum.vbird.org/view ...

  7. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.1. Linux与硬件的搭配)

    第三章.主机规划与磁盘分区 最近升级日期:2009/08/06 1. Linux与硬件的搭配 1.1 认识计算机的硬件配备 1.2 选择与Linux搭配的主机配备: 硬件支持相关网站 1.3 各硬件装 ...

  8. java基础篇 第1章 计算机、程序和java概述 学习笔记 - 副本

    1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. 计算机包括硬件( hardware ) 和软件( software) 两部分 a :硬件包括计算机中可以看得 ...

  9. Java基础篇:字符串的简单介绍

    你可能注意到了,在前面关于数据类型和数组的讨论中没有提到字符串或字符串数据类型.这不是因为Java不支持这样一种类型,它支持.只是因为Java的字符串类型,叫做字符串(String),它不是一种简单的 ...

最新文章

  1. 610D - Vika and Segments(线段树+扫描线+离散化)
  2. 如何在10亿个整数中找出前1000个最大的数?
  3. 总结一下MySQL中的锁机制
  4. 字符转换指令tr,col,expand
  5. input 换行_Python输出数据print,获取输入数据input,基础入门
  6. [LintCode] Wildcard Matching
  7. Java并发编程:并发容器之CopyOnWriteArrayList(转载)
  8. python原始web与django框架 mvc模式开发
  9. alter system switch logfile和alter system archive log current的区别
  10. STP 简介----PVST+ RSTP和快速PVST+ (1)
  11. 在win10 或者win7系统下装双系统ubuntu16.04教程
  12. auto.js停止所有线程_Java线程与并发编程实践:深入理解volatile和final变量
  13. 哪些趋势正在推动人工智能创新?
  14. 拓端tecdat|R语言Black Scholes和Cox-Ross-Rubinstein期权定价模型案例
  15. 计算机原理视频教程星火,计算机组成原理及汇编语言(中央广播电视大学)
  16. 安装Editplus软件
  17. 如何查找计算机主机地址,ip地址查询 怎么查询电脑IP地址?
  18. Shifter - Responsive HTML5 高大上静态页面
  19. 真正拖垮打工人的,是沉没成本
  20. 不懂Web基本原理怎么能学好爬虫。( 二、Web服务器工作原理)(爬虫、反爬虫、服务器、客户端、网络协议 )

热门文章

  1. 当前AI的特点及带来的工业革命
  2. 前端渲染:服务器渲染 or 客户端渲染
  3. ubuntu 16.0.4安装jdk
  4. 程序员你在干嘛?——我在改变世界
  5. apt-get使用sock5代理
  6. 安卓大作业 图书管理APP
  7. 注销共享服务器登录,登录和注销 - Power BI | Microsoft Docs
  8. Transfer Learning from Speaker Verification toMultispeaker Text-To-Speech Synthesis复制他的声音MockingBird
  9. 中美程序员不完全对比,中国程序员vs外国程序员
  10. 动态网页的核心——JSP