Java面向对象-面向对象编程之基本概念

面向对象这个概念,每本书上的说法定义很多。
我自己根据我的经验,自己归档总结了下,
所谓面向对象,就是 以基于对象的思维去分析和解决问题,万物皆对象;
面向对象经常和面向过程放一起讨论;
这里举例,
比如要造一辆自行车,假如以面向过程的思维搞,张三先搞轮子,
李四再搞车架,王五再搞链条,赵六再搞脚踏板...最终拼拼凑凑,搞出一辆勉强能骑的车;
但是,假如某个部件要调整下,其他部件要调整的东西太多了,有时候搞不好还得重头开始搞;
面向过程的缺点就是 扩展性 维护性差,但是也是有优点的,就是速度快;
假如以面向对象的思维造一辆自行车,说严谨点就是去设计一辆自行车;
我们首先要做的是分析一辆自行车所需要的部件,比如轮子,车架,链条,脚踏板等等;
然后分析和设计出每个部件的尺寸和用料;
然后是分配按照部件去实现,把每个部件分配给指定的人去做;
最后就是把所有已经完成的部件组装起来,就是一辆自行车;
这样做出来的自行车,维护性和扩展性都要比面向过程思维做出来的强;
唯一的缺点就是前期投入的时间长一点;
Java面向对象三大特性;
封装:我们可以类,类里有方法,属性,可以封装很多功能 仅仅对外暴露一些接口,来实现模块化,组建化,和安全性;
继承:Java中的类可以继承,类似子女可以继承父母的东西;来实现可扩展;
多态:Java中的父类接口可以指向子类实现的引用;这个我们后面通过实例详细讲解;
Java面向对象-面向对象编程之基本概念的更多相关文章
- Java面向对象_继承——基本概念以及管理化妆品实例分析
一.继承的基本概念: 1.继承是面向对象三大特征之一 2.被继承的类成为父类(超类),继承父类的类成为子类(派生类) 3.继承是指一个对象直接使用另一个对象的属性和方法 4.通过继承可以实现代码重用 ...
- java面向对象1-面向对象概念
面向对象概念-类与对象的关系 封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式,private-构造方法/构造器-this关键字-static关键字(javadoc制作工具类) -代码块 继承 ...
- Java面向对象----Java面向对象(OOP)概念
理解面向对象 关键:让每一个对象负责执行一组相关任务 面向过程:算法第一,数据第二 面向对象:数据第一,算法第一 特点: 万物皆对象 程序是一组对象彼此之间在发送消息 每个对象都有自己的内存占用,可以 ...
- java面向对象基础总结
本周学习了java面向对象的一些基本概念,介绍了它三个主要特性,封装性.继承性.多态性,类与对象的关系,栈堆的关系,三个特性中主要讲了封装性,其他两个后面再讲. 类实际上是表示一个客观世界某类群体的一 ...
- java面向对象概念1
一.java面向对象学习的三条主线: 1.java类及类的成员:属性.方法.构造器:代码块.内部类 2.面向对象的三大特征:封装性.继承性.多态性.(抽象性) 3.其它关键字:this.super.s ...
- Java面向对象的概念整理
Java中一切皆是对象! 注意:8种基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有成员变量.方法可以被调用. 为解决8种基本数据类型不能当成Object类型(所有 ...
- 087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点
087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点 本文知识点:封装的概念和特点 说明:因为时间紧张,本人写博客过程中只是对 ...
- 深入理解JavaScript系列(17):面向对象编程之概论
介绍 在本篇文章,我们考虑在ECMAScript中的面向对象编程的各个方面(虽然以前在许多文章中已经讨论过这个话题).我们将更多地从理论方面看这些问题. 特别是,我们会考虑对象的创建算法,对象(包括基 ...
- PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
这篇文章主要介绍了PHP面向对象编程之深入理解方法重载与方法覆盖(多态)的相关资料,需要的朋友可以参考下: 什么是多态? 多态(Polymorphism)按字面的意思就是"多种状态" ...
随机推荐
- LeetCode OJ:Excel Sheet Column Number(表格列数)
Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, retur ...
- css: 基础一
1.display有哪些值?说明他们的作用 @1.block:设定元素为块级元素,占据一整行,可设置宽高. @2.inline-block: 设定元素行内块元素,可设置宽高,一行能显示多个. @3.i ...
- Siemens
Sr.EE-Complete the electronics and mechanical designs from design concepts to mass production for RU ...
- 微信oauth2验证
微信公众号进行oauth2验证时的要求: 需要两个地方配置: (1) Oauth2验证链接中的appid.redirecturi (2) 微信公众号授权回调页面域名: Appid为公众号的ap ...
- PostgreSQL EXPLAIN执行计划学习--多表连接几种Join方式比较
转了一部分.稍后再修改. 三种多表Join的算法: 一. NESTED LOOP: 对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择.在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表 ...
- C#当中利用Attribute实现简易AOP
首先看一段简单的代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } //来自UI层的调用 ...
- [Hive]HiveServer2配置
HiveServer2(HS2)是一个服务器接口,能使远程客户端执行Hive查询,并且可以检索结果.HiveServer2是HiveServer1的改进版,HiveServer1已经被废弃.HiveS ...
- android官网被封掉了,只好用这个网站进谷歌了!嘎嘎
http://developer.android.com/sdk/index.html 这个可以进去,但是必须是搜狐 .360,uc都不用特意FQ http://173.1 ...
- As3 Practises : use TheMiner do as3 project swf performance profile , find memory leak!
The second and most universal way is to launch it from the mm.cfg fileTheMiner.swf must be trusted1: ...
- python 环境变量设置
Win+E --> 我的电脑 --> 右击 选择属性 --> 高级系统设置 --> 环境变量 --> 用户变量 中 找到 PATH(Path) --> 编辑 --& ...