基本概念:

一、结构化方法与结构化程序设计

1、结构化方法:源自迪克斯特拉(E.W.Dijkstra)提出的结构化概念,采用自顶向下、逐步求精的模块化设计方法。核心是将工作分成若干个相互独立的模块,使用顺序、分支和循环流程控制构造程序。C语言是标准的结构化程序设计语言。

2、结构化程序设计:在每个过程(函数)中通过语句调用共同完成整个程序的功能,因此从这个角度上看,程序的内容包括函数及函数调用,为了方便开发者,该类语言通常都有现成的库供使用者使用。

3、结构化程序设计过程:结构化分析(Structured Analysis SA)、结构化设计(Structured Design SD)和结构化程序设计(Structured Programming,SP)三个阶段,使得每个阶段解决的问题在人们容易理解的范围之内。

*总结:结构化程序设计的核心任务:

(1)、函数的实现和函数的调用。

(2)、主要关注行为特征

(3)、通过流程图划分行为的细节

#缺点:

(1)、抽象级别不够

(2)、模块重用力度不够

(3)、程序设计复杂、周期长、可维护性和可扩展性不高

(4)、算法+数据结构=程序,结构发生变化,模块也会失效

二、面向对象的程序设计

1、面向对象方法:类的引入源自克利斯登.奈加特(Kristen Nygaard) 和奥利-约翰.达尔(Ole-Johan Dahl)发布的Simula语言,艾伦.凯(Alan Kay)发明的Smalltalk语言采用了面向对象一词。面向对象的核心是构成问题域的现实世界中存在的各个实体。

2、面向对象程序设计:存于世界中的实体被描述成对象,实体间的关系被描述成对象间的关系,实体间的消息传递对应着对象间的交互,实现相应的功能。

3、面向对象程序设计过程:面向对象分析(Object Oriented Analysis, OOA)、面向对象设计(Object Oriented Design, OOD)、面向对象程序设计(Object Oriented Porgramming, OOP)的程序设计方法。

*总结:面向对象程序设计的核心任务:

(1)、类的属性和方法的抽象。

(2)、客观实体的直接映射

(3)、对象同时具有方法和属性,携带着数据和过程,并且具有主动性

#缺点:

(1)、代码量大

(2)、需要看大量的文档

三、面向对象编程的基本概念

1、类:具有相同类型特征的客观实体抽象出同一类实体共有的特征和行为的一般描述。

三个方面: (1)类是一个描述

(2)同一类实体共有的特征(数据、属性)和行为(方法、函数)

(3)具有相同类型特征的客观实体的抽象

特征:类本身是客观实体的抽象描述,不能是具体具体的展示。

误区:根据第二条描述,有些书籍中把类和数据结构等价,事实上类比数据结构的功能强大很多,而且两者关注的重心也不同,类更侧重与描述实体的抽象;数据结构更加关系数据的存储方式和能够进行的操作方式。

2、对象:将类实例化后产生了对象,类是一种规范,不能完成具体的动作,需要对象执行类相应的动作(静态方法除外),对象同时具有类的属性和类的方法。

3、消息:对象间的数据交互通过消失实现。

消息中包括:消息的接受者和要求接受者实现的操作请求,从而实现对象状态的改变。

四、面向对象的特征

1、抽象:从众多事物中抽取出共同本质的特征。

本质特征:能够将一类事物与其他事物区分的特征

功能抽象:抽取特定类事物共同拥有的行为;

数据抽象:抽取特定类事物共同拥有的特征;

模块化:将复杂问题逐步分解成若干个相对简单的子问题,每个子问题是一个模块。面向对象中的模块拥有更大的粒度和抽象级别。

信息隐藏:将模块内的特定内容隐藏,使得外界不得见。被隐藏的可以是模块的实现细节,也可以是模块的数据甚至是执行机制。模块间的访问,可以通过必须的接口访问完成。

信息的隐藏:(1)加强了系统的可靠性

(2)利于代码的重用

(3)实现方式的多样化

模块化和信息隐藏正是通过封装实现的,代码的重用是继承的主要任务,方法实现的多样化通过多态实现。

2、封装:将对象的属性和方法组合成一个可供访问的基本逻辑单元。

对象主要有属性和方法构成,属性代表着对象的状态,属性的改变意味着对象状态的改变,对象的方法,一般是用来改变对象的状态的。面向对象的编程的核心就是改变对象的状态,使其按照设计者指定的方式而改变。

封装的特征:使得软件具有较好的模块性,防止程序间相互依赖的影响,使系统具有更高的可维护性。

封装的缺点:当软件设计问题域非常复杂时,对象中需要封装大量的属性和方法,可能会使类急剧膨胀。

3、继承:体现了类之间的层次关系。

继承的特征:(1)类可以有父类、子类;

(2)子类可以覆盖和扩张父类中的属性及方法

(3)封装是为了避免类的规模过大问题而出现

4、多态:同一类的不同对象对同一消息的不同响应,对象的多态更多的体现在方法上,多出现在继承中。

两种形式:参数不同时 Oveload 重载

包含多态,方法签名完全一样 Override 重写

Android开发基础(java)1的更多相关文章

  1. 20145213 《Java程序设计》实验四 Android开发基础

    20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...

  2. 20145225《Java程序设计》 实验四 Android开发基础

    20145225<Java程序设计> 实验四 Android开发基础 实验报告 实验内容 安装Android Studio 运行安卓AVD模拟器 使用安卓运行出虚拟手机并显示HelloWo ...

  3. 20155324 《Java程序设计》实验四 Android开发基础

    20155324 <Java程序设计>实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件. ...

  4. 20145221 《Java程序设计》实验报告四:Android开发基础

    20145221 <Java程序设计>实验报告四:Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管 ...

  5. 20155227 《Java程序设计》实验四 Android开发基础设计实验报告

    20155227 <Java程序设计>实验四 Android开发基础设计实验报告 任务一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二 ...

  6. 20155233 《Java程序设计》实验四 Android开发基础

    20155233 <Java程序设计>实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android组件.布 ...

  7. 20155235 《Java程序设计》 实验四 Android开发基础

    20155235 <Java程序设计> 实验四 Android开发基础 实验要求 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理 ...

  8. 20145219 《Java程序设计》实验四 Android开发基础设计实验报告

    20145219 <Java程序设计>实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello ...

  9. 2018-2019-2 20175105王鑫浩《Java程序设计》实验四 《Android开发基础》实验报告

    实验四 <Android开发基础> 实验报告封面 课程:Java程序设计 班级:1751班 姓名:王鑫浩 学号:20175105 指导教师:娄嘉鹏 实验日期:2019年5月17日 实验时间 ...

  10. 20145215实验四 Android开发基础

    20145215实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件 ...

随机推荐

  1. 【转载】MQTT的学习之Mosquitto集群搭建

    本文出自:http://www.cnblogs.com/yinyi521/p/6087215.html 文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 ...

  2. (洛谷)P1019 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  3. Linux命令之---nl

    命令简介 nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补 ...

  4. (WPF&Silverlight)silverlight自定义控件

    2个半小时弄懂了自定义控件是怎么回事儿. 在silverlight中创建一个UserControl,把上面sliderbar的外观和功能都封装在里面. 以自定义控件mapslider控件为例: 1.首 ...

  5. 「微信小程序免费辅导教程」24,基础内容组件icon的使用探索与7月26日微信公众平台的更新解读

  6. 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式

    1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1469  Solved: ...

  7. TCP/IP网络编程之套接字与标准I/O

    标准I/O函数 标准标准I/O函数有两个优点: 标准I/O函数具有良好的移植性 标准I/O函数可以利用缓冲提高性能 关于移植性无需过多解释,不仅是I/O函数,所有标准函数都具有良好的移植性.因为,为了 ...

  8. border,border-width不支持百分比

    1.border-width不支持百分比 原因:不会因为设备大就按比例变大 同样的,outline,box-shadow,text-shadow也不支持百分比 也就是border不支持百分比 2.bo ...

  9. Linux设置运行core dump

    系统配置vim /etc/sysctl.conf kernel.core_uses_pid = kernel.core_pattern = %e-core-%p-%t sysctl -p检查有没有生效 ...

  10. 2018安恒杯11月月赛 MISC

    题目放评论了 Numeric password 这次隐写没有按照套路出牌,很强. 记录一下 看来自主学习的能力很有待提高. 打开Numeric password.txt 中华文化博大精深,近日在教小外 ...