Java面向对象重要概念小结

2024-06-16

Java面向对象重要概念小结(共8篇)

篇1:Java面向对象重要概念小结

http://(implements)其他接口。例如:

interface MyInterfc extends Runnable{ public void mthd();abstract int mthd2();} Duncan Network | 编程开发文档 2 / 2

篇2:Java面向对象重要概念小结

面向过程,顾名思义,其中心意义在于“过程”二字,比如你要吃饭,那么首先是要选地,播种,施肥,成熟,收获,煮饭,然后才能吃饭,那么面向过程就是从开始到结束,分析出解决问题的需要的每一个步骤,然后用函数将这些步骤一个一个实现,使用的时候一个一个一次调用就行了。

面向对象,同样的,你去饭店吃饭的时候,只需要对服务员说一句你要吃饭就行了,你不需要关心饭是怎么来的,这就是面向对象。那么面向对象就是把组成问题事务分解成一个个对象,建立对象不是为了解决一个步骤,而是用来描述某个事务在解决问题步骤中的行为。面向对象是以功能来划分问题,而不是步骤。

以上的解释来源于书上,对于初学者而言,这样的描述过于抽象,不能很好的理解。下面我举个具体的例子来说明。

从书面上来说,可能面向过程更好理解,但是其实面向对象更符合人们的思考习惯。比如外面去商场买衣服,那么商场的功能就是提供衣服,你不需要关心衣服是怎么来的,你只需要向商场提出你要买衣服的要求就可以。就那贪吃蛇这个游戏而言,对于面向过程:1、吃一个;2、绘制画面;3判断是否死亡,就这样依次调用函数,一个一个步骤进行。

而对于面向对象,建立三个对象:1、蛇;2、画面系统;3、规则系统。首先进行操作,然后将操作后的结果提交至画面系统进行画面绘制,绘制之后的结果提交至规则系统判断是否死亡。这样一招功能来划分问题。

从上面的解释来看,面向对象和面向过程依然难以区分,但是如果我要返回上一步,那么对于面向过程而言,从初始状态到判断是否死亡到现实画面可能都需要改动。而对于面向对象则只需要重新设计画面系统,在里面保存上一步的坐标即可,这里不需要涉及到规则系统和其他操作。

面向对象的功能划分保证了面向对象的可扩展性。比如我需要为贪吃蛇重新改写一套规则,在面向过程中,规则已经渗透到整个程序的各个角落,改写不如重写。那么在面向对象中,则只需要重新设计规则系统即可。

篇3:浅谈Java面向对象程序设计

1 类和对象

大千世界都是由一个个对象组成的,一张桌子,一幢房子,一个人,一辆汽车……都是对象,正所谓万物皆对象。然而把同一类对象的共同特征抽取出来用来描述这些对象的抽象集合就是类。对象的属性和行为抽象出来分别对应类的成员变量和方法。用个例子来说明,人的共同属性有性别、年龄、身高、体重等,共同行为有吃饭,睡觉,跑步等。把这些共同的属性和行为抽象为人这个类如下:

类集合抽象出来后,在程序中需要使用关键字new来创建对象。程序中一旦对象被创建出来,各类对象的“行为”就可以完成程序的各种功能。

2 封装性

封装性是为了隐藏类内部信息而创建出来的一种机制。其包含两层含义:

1)类是一个不可分割的单位,变量和对变量的操作组成了类。

2)类中必须提供对外联系的方法,但又得尽可能隐藏某些实现的细节。

为了实现隐藏类内部的信息,Java定义了类及其成员访问的四种权限修饰符:public(公有)、protected(保护)、default(默认)、private(私有)。

1)public修饰的成员,可以被程序中所有的类访问,它的访问权限是最低的。

2)protected修饰的成员,可以被类内部,同一包(package)中的类和其子类访问。

3)default修饰的成员,可以被类内部和同一个包中的类访问,其他地方的类都不可以访问,包括其子类。

4)Private修饰的成员,只能被类内部访问,由此实现类内部信息隐藏最重要的关键字是private,它的访问权限是最高的。

3 继承性

继承性是一种由已有的类创建新类的机制,是面向对象程序设计中实现软件可重用性的最重要手段。

3.1 继承的概念

由一个已有的类,通过使用关键字extends定义一个新类,称为新类继承了已有类。新类被称为子类或派生类,已有类被成为父类或基类。用个例子来说明:

3.2 继承的作用

通过继承,子类自动拥有父类的所有成员变量和方法(除构造方法),使得父类的优良特性得以代代相传并且大大减少了子类的代码量。继承是实现软件可重用性的一种重要方式,增强了软件的可扩充性,提高了软件的可维护性。对此我们在设计类时,一般将通用性功能设计在父类中,将特殊性功能设计在子类中。

3.3 继承的原则

1)只允许子类单继承和多层继承,不允许多继承。

2)子类可以增加自己的成员变量和方法。

3)子类可以重定义父类的成员变量和方法。

4 多态性

多态又称动态绑定,是指程序运行时,系统根据参数或对象的实际类型调用其相应的方法。方法的多态性主要有重载和覆盖。

4.1 方法重载

重载表现为同一个类中的多态性,同一个类中可以定义多个名字相同参数个数或参数类型不同的方法。程序在运行时,根据参数个数或参数类型,调用其相应的方法。

4.2 方法覆盖

覆盖又称重写,表现为父类与子类间的多态性。方法重写时应注意相应的原则:

1)重写方法必须和被重写方法具有相同的方法名,参数列表和返回值类型。

2)重写方法不能使用比被重写方法更严格的访问权限。

方法覆盖所表现出来的多态性必须具备以下条件:

1)要有继承。

2)要有重写。

3)父类引用指向子类对象。

5 结束语

面向对象思想的产生是编程语言发展史上质的飞跃,它使问题域中的各种关系明朗化,各类对象形象化。三大特征机制(封装性,继承性,多态性)使程序的设计更加严谨,结构更加清晰。

参考文献

[1]叶核亚.Java2程序设计实用教程[M].2版.北京:电子工业出版社,2007.

[2]马鲁宁.JAVA语言面向对象程序设计的特点[J].黑龙江科技信息,2007(2):52.

[3]笪斌,苏建元.实现面向对象的继承性、封装性和多态性[J].电脑学习,2005(6):18-19.

[4]孙巍.面向对象机制在Java中的运用[J].长春教育学院学报,2007(4):38-39.

篇4:Java面向对象重要概念小结

关键字:java 教学方法 问题 适应社会

中图分类号:G71 文献标识码:A 文章编号:1672-3791(2014)11(b)-0150-01

当今信息爆炸的时代,互联网软件的开发市场比较火热,从目前计算机编程开发来看大致可分为Java方向以及.net方向,Java的跨平台及高安全性等优点,使它更多地应用在互联网软件开发应用当中。作为计算机专业本科学生将要步入社会做计算机软件开发工作,但是在学校所学知识在实际的工作中可利用比较少,很多东西没有接触到或不了解,没有系统的掌握一门语言,所学知识片面、断章,导致很多计算机专业毕业生,在很长一段时间不能适应,投入软件开发工作。

该文主要分析Java面向对象程序设计课在学校教学环境中存在的问题,通过改进使计算机专业毕业生能更好地适应社会的需要。

1 《Java面向对象程序设计》教学中存在的问题

《Java面向对象程序设计》教学中出现的主要问题如下。

课堂的主要内容为语法,程序只是某一语句语法的示例或验证,而不是在实际当中的应用体现。教师练习的实例脱离实际,这样的教学结构和实例吸引不了学生的视线。大多数学生对程序设计也就毫无兴趣,上课也只作为任务来完成。学得被动,不知所措。主要是由教师多年在教学第一线工作,教学任务繁重,接触面窄导致的。很多老师每周20多节课,两门甚至三门课,整日忙于备课、上课环节当中。

学生兴趣低、无法调动其学习兴趣。在传统的教学中,教材上的例子基本上是一些常规的数学问题,上课用的也没什么变动,导致学生写程序不知道有什么用,学生书写实例代码一味的抄写,不重视、不注意为什么这样写,如果程序出错了,从老师写的代码中对照着查,不去思考,不看整个程序结构,没有主动可言。

学生上机时间少。没能及时巩固所学知识,理论知识学完,等到上机实践的时候很多程序忘得差不多了。当场再翻书查证,既浪费时间,又没效果。

程序调试能力差。许多学生虽拥有自己的电脑,但多数学生只是比较熟悉图形界面操作环境,不熟悉DOS操作环境,容易反写、少写、错写命令。例如javac classname.Java 写成 javac classname 或 classname.Java javac的情况经常出现。

计算机英语水平低。死记命令,看不懂出错提示信息,出错找老师,不去想出了什么错误,怎么解决。

学生实践环节脱离实际。所有实例问题基本是虚构出来的。大众化的理论问题,不能很好地适应我们的学生,学生没有操作感、参与感,只是一个简单的抄写代码过程。

2 教学改革

为了更好地学习《Java面向对象程序设计》课程,培养适应社会的人才,结合学校的实际情况,呼和浩特民族学院针对以上问题作出教学改革从以下几方面进行。

(1)所有程序设计类课程调到计算机机房上课,保证人手一台计算机。在上课的同时学生就能练习验证所学知识,以提高掌握知识的效率。

(2)从新拟定教学计划,将《Java面向对象程序设计》课分为理论及实践两个大环节,学时数各占一半。具体实现过程是把上课时间分成讲授演示和实践练习部分,老师讲授时使用多媒体教学软件实时播放演示内容,所需时间控制在15~25 min之内,其余时间安排学生练习、巩固过程,此时老师可以针对性地辅导、改正学生错误,发现在该内容中容易出现混淆的概念、出现错误的点,修正教学重点,以便更好地教学。

比如调试程序书写的DOS命令,javac及Java命令的错误使用,类的扩展名写不写等问题,都可以在该环节中得到解决。

(3)专门开设《计算机专业英语》课,呼和浩特民族学院是以蒙古族大学生为主,因为英语在高考中考取普通本科院校才算进总分,参加蒙受院校招生中只是参考分,所以高中时得不到足够重视,学生的英语水平普遍比较低下。要想在大学四年学好英语对我们学生有一定的难度,但是开设《计算机专业英语》可以针对性地着重学习计算机领域使用到的英语,提高阅读程序的能力。开设这门课以后,很多学生能理解程序出错的英文提示,修正代码范围就缩小了,能完成简单错误的查找与修改。

(4)开办校企合作专业,请企业工程师讲课。实例不切实际是教学的很大缺点,因为企业工程师与高校教师相比有丰富的软件开发实战经验,从企业工程的讲课中学生能确切知道在企业项目开发中使用java我们可以解决一些什么问题,具体怎么完成的。我们又让学生去企业实习,亲身体验团队开发环境,能快速适应实际软件开发工作。否则我们学生毕业找不着工作或即使找到工作也不适应企业软件开发环境,不能快速投入工作当中。

(5)考核方式多样化。理论课一闭卷纸质题目,主要考概念、关键知识为主,实验课成绩以项目实战结果来评定,开学初期以3~6人组成一队,布置一个项目,让他们按照软件工程的要求完成整个开发的过程,项目的社会调查、可行性报告、需求分析、详细设计、代码撰写、测试等都要形成规范的文档。学生可以在学习过程中不断完善,期末提交项目结果。这样可以培养学生团队合作精神,并能比较系统地掌握一门程序设计语言。

(6)学校、系范围定期举办程序设计大赛,既增加学生的学习兴趣,又对参加全区、全国程序设计大赛打好基础,锻炼学生的实战能力。

3 结语

《Java面向對象程序设计》课程在高校计算机专业占有重要的地位,又是目前软件开发主流软件之一,我们必须紧跟时代的步伐,不断更新教学观念和教学内容,探索新的教学方法和手段提高教学质量,最终达到综合素质高,适应能力强,够适应社会需求的高标准计算机专业人才。

参考文献

[1]李颖.《Java程序设计语言》教学改革的探索与实践[J].中国新技术新产品,2010(1):238.

[2]向模军,刘松青.Java教学的探讨和实践[J].计算机与信息技术,2008(3).

[3]秦靖伟.JAVA教学方法改革与实践[J].产业与科技论坛,2011(11):139-140.

篇5:java面向对象程序设计教案

主讲教师:熊春秀 编写时间:2011-4-30

第一章:概述

第 1、2 节:面向对象的基本概念、面向对象程序设计概述 授课时间:2011-2-

22、23

计划学时数:1 教学任务与目的:让学生理解面向对象的基本概念 教学重点:掌握面向对象的基本概念 教学难点:理解面向对象程序设计的方法 教学方法:多媒体+板书 参考书目:《面向对象程序设计导论》,[美]C.Thomas wu著,电子工业出版社 专业词汇:Java虚拟机、Applet程序 备注

第二章:Java特点及运行环境

第 1、2、3 节:Java语言特点、Java应用程序及运行环境、Java Applet程序及运行环境 授课时间:2011-2-

22、23

计划学时数:3 教学任务与目的:让学生学会JDK的下载、安装与环境配置。教学重点:掌握编译和执行Java程序的基本步骤

教学难点:理解Java程序的入口并能够通过命令行传递参数 教学方法:多媒体+板书 参考书目:《面向对象程序设计导论》,[美]C.Thomas wu著,电子工业出版社 专业词汇:JDK、lib、bin 备注 第三章:Java语言基础

第 1、2 节:Java程序的构成、数据类型、表达式以及流程控制语句 授课时间:2011-3-

1、2

计划学时数:3 教学任务与目的:让学生学会Java基本的数据类型和表示方法、数值类型的运算、逻辑运算和比较、条件执行语句(包括三种条件语句和switch语句)、循环控制语句(包括for、while、do while循环及相应的辅助语句)、字符串类String和BufferString以及数组的声明及使用。

教学重点:掌握Java基本的数据类型和表示方法

教学难点:理解Java程序的循环控制语句(包括for、while、do while循环及相应的辅助语句)

教学方法:多媒体+板书 参考书目:《Java语言与面向对象程序设计》,印旻编著,清华大学出版社 专业词汇:变量、数据类型、循环控制语句 备注 第三章:Java语言基础 第 3 节:Java与C比较

授课时间:2011-3-

8、9

计划学时数:3 教学任务与目的:让学生在C语言的基本上进一步学习Java语言。教学重点:掌握Java语言与C语言的区别与联系。教学难点:理解Java语言在C语言上的改进。教学方法:多媒体+板书 参考书目:《Java2参考大全(第四版)》,[美]Herbert Schildt著,张玉清、吴浦峰、尚勇等译,清华大学出版社。专业词汇:Java、C 备注 第四章:抽象、封装与类

第 1 节:抽象、封装与Java类的概念

授课时间:2011-3-

15、16

计划学时数:3 教学任务与目的:让学生学会面向对象的基本特征、掌握如何定义一个类以及如何生成对象、深入掌握方法的定义及技巧、深入掌握类的访问权限与封装机制、深入掌握包的定义与包的使用方法。

教学重点:掌握类的定义与对象的生成。教学难点:理解类的抽象与封装机制。教学方法:多媒体+板书 参考书目:《Java2 实用教程》,耿祥义、张跃平编著,清华大学出版社。专业词汇:抽象、封装、类 备注 第四章:抽象、封装与类 第 2 节:系统定义的类

授课时间:2011-3-

22、23

计划学时数:3 教学任务与目的:让学生学会使用系统定义的类,并掌握与用户自定义类的区别。教学重点:掌握如何定义所需要的类。

教学难点:熟悉Java平台定义了哪些经常要用到、而且满足我们需要的类。教学方法:多媒体+板书 参考书目:《Java2 实用教程》,耿祥义、张跃平编著,清华大学出版社。专业词汇:系统定义的类、用户自定义类 备注 第四章:抽象、封装与类

第 3 节:类、域和方法的修饰符

授课时间:2011-3-

29、30

计划学时数:3 教学任务与目的:让学生学会类的声明。

教学重点:掌握如何定义类的修饰和方法的修饰符。教学难点:熟悉类的变量的定义与使用方法。教学方法:多媒体+板书 参考书目:《Java2 实用教程》,耿祥义、张跃平编著,清华大学出版社。专业词汇:成员变量、类变量、成员方法、类方法 备注 第五章:继承与多态

第 1、2 节:Java的继承与派生、域的继承与隐藏 授课时间:2011-4-

5、6

计划学时数:3 教学任务与目的:让学生全面掌握面向对象的基本特征、掌握如何使用继承性来到达软件的重用、深入掌握继承过程中域的隐藏和方法的覆盖技巧。教学重点:掌握如何使用继承性来到达软件的重用。教学难点:熟悉继承过程中域的隐藏和方法的覆盖技巧。教学方法:多媒体+板书 参考书目:《Java2 实用教程》,耿祥义、张跃平编著,清华大学出版社。专业词汇:继承派生、域、隐藏 备注 第五章:继承与多态

第 3、4 节:方法的继承、重载与覆盖、this与super、构造函数的继承与重载 授课时间:2011-4-

12、13

计划学时数:3 教学任务与目的:让学生通过继承可以更有效地组织程序结构,明确类之间的关系,并充分利用已有的类来创建新类,通过继承可以实现代码的重用,以完成更复杂的设计、开发。教学重点:掌握类的重载与覆盖的区别与联系。教学难点:熟悉类的重载与覆盖使用方法。教学方法:多媒体+板书 参考书目:《Java语言与面向对象程序设计》,印旻编著,清华大学出版社。专业词汇:继承、重载、覆盖、this、super 备注 第五章:继承与多态

第 5、6 节:多态性的实现、接口声明与实现 授课时间:2011-4-

19、20

计划学时数:3 教学任务与目的:让学生深入掌握抽象类和抽象方法的定义,掌握多态通过统一多个相关类的对外接口,在运行时根据不同的情况执行不同的操作,提高类的抽象度和灵活性,深入掌握接口的定义和使用技巧。

教学重点:熟悉多态性实现的两种方式以及接口的实现。教学难点:熟悉多态性与接口的实现方法。教学方法:多媒体+板书 参考书目:《Java语言与面向对象程序设计》,印旻编著,清华大学出版社。专业词汇:多态性、接口 备注 第六章:工具类与算法

第 1、2 节:语言基础类库、Applet类与小程序的基本原理 授课时间:2011-4-

26、27

计划学时数:3 教学任务与目的:深入了解Applet生命周期的主要方法和特点、熟练掌握Applet程序的编写方法、深入了解Applet的安全机制及其合理运用。教学重点:熟练掌握Applet程序的编写方法。

教学难点:深入了解Applet的安全机制及其合理运用。教学方法:多媒体+板书 参考书目:《Java语言与面向对象程序设计》,印旻编著,清华大学出版社。专业词汇:Applet、生命周期 备注 第六章:工具类与算法

第 3、4 节:数组、字符串、常用算法

授课时间:2011-5-

3、4

计划学时数:3 教学任务与目的:让学生学会字符串类String和BufferString、数组的声明及使用。教学重点:熟练掌握字符串与数组的使用方法。教学难点:深入了解数组的使用方法。教学方法:多媒体+板书 参考书目:《Java语言与面向对象程序设计》,印旻编著,清华大学出版社。专业词汇:数组、字符串 备注 第七章:用户图形界面的设计

第 1、2 节:用户自定义成分、事件驱动设计 授课时间:2011-5-

10、11

计划学时数:3 教学任务与目的:让学生学会使用面向对象的程序设计方法构建图形用户界面、深入了解抽象窗口工具包(AWT)、掌握事件处理基本原理和方法。教学重点:熟练掌握图形用户界面的开发方法。教学难点:深入了解图形界面的各种事件。教学方法:多媒体+板书 参考书目:《Java语言与面向对象程序设计》,印旻编著,清华大学出版社。专业词汇:AWT、GUI 备注 第七章:用户图形界面的设计

第 3、4 节:GUI对象,包括:按钮、文本框、鼠标、键盘等事件的处理、布局设计 授课时间:2011-5-

17、18

计划学时数:3 教学任务与目的:让学生深入了解GUI构件及掌握布局控制方法、熟练掌握菜单和对话框、掌握简单绘图方法。

教学重点:熟练使用Java语言提供的布局管理器来管理组件在容器中的布局。教学难点:深入了解组件在程序中安排中位置和大小使用方法。教学方法:多媒体+板书 参考书目:《Java语言与面向对象程序设计》,印旻编著,清华大学出版社。专业词汇:布局管理器、容器 备注 第八章:Java高级编程

第 1、2、3节:异常处理、多线程机制、Java程序对网上资源的访问 授课时间:2011-5-

24、25

篇6:Java面向对象重要概念小结

<书中例题>

第1章 Java 语言综述

例1-1 一个加法器 //Add.java public class Add { public static void main(String args[]){

int a,b,c;

a=5;

b=7;

c=a+b;

System.out.println(a+“+”+b+“=”+c);} }

例1-2 能接受命令行参数的应用程序 //WhoSayWhat.java class WhoSayWhat { public static void main(String args[]){

if(args.length<2)

{

System.out.println(“请向应用程序传递两个参数:”);

System.exit(0);//

}

String s1=args[0];

String s2=args[1];

System.out.println(s1+“ Say: ”+s2);} }

例1-3小应用程序举例 //Test.java import java.applet.Applet;import java.awt.Graphics;//Graphics public class Test extends Applet {

public void paint(Graphics g){

篇7:Java面向对象重要概念小结

经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。

在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。

学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。

Java思想:Java是一门面向对向语言,他定义一切都是对象

面向对象,就是面对现实;

现实中的一切都是对象,他们有分类,就产生了“类”;

他们有不同,类和类之间的不同,使用类来区分;

同一个类中不同的对象的区别,使用成员区分。所以,面向对象的内部逻辑是分类。

面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等

原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。

面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。

我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对!

我的理解:

1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),直到无法再细;

2、对每个对象(小问题)进行分析,抽象,提取处共同的内容(数据成员和操作方法),3、有相似的对象的,构造基类;再有基类派生出各个确定的对象(小问题);

4、解决问题的过程就是操作这些对象的过程。

我的理解:

与实际生活联系起来。

将要处理的„问题‟抽象成一个或多个„事件‟

找一个地方使用我的智慧

1。了解系统的功能。列举出它的对外接口,即对于使用者来说它有什么功能。把这整个系统作为一个对象。

2。环境。系统不是运行在真空中的,操作系统等外部环境都可能会影响它。所以把环境也作为一个大的对象。

3。内部。在系统的内部,一般都比较复杂,一般的做法是规定一个粒度,枚举出该粒度上所有的物体。比如说人体,如果在器官的粒度上,就有心,肝,肺。而小于该粒度的物体(或称对象),比如血细胞,就忽略,作为其它物体(或称子系统的内部对象)。

4。子系统。不断缩小粒度,沿用步骤1~3,直到不能再抽象为止。

5。无形的物体。一个完整的互连的系统需要许多无形的物体,比如消息等了,一般这样的对象比较难发现。当你发现各个子系统无法正确合作或理顺关系时,试着加入一些辅助对象。一切都是为了让人明白,有能让机器理解的思想

我想分析和抽象能力的高低是个关键,首先要从问题域分析和抽象出准确的对象模型,再根据这些模型进行处理,当然在过程种少不了楼上前辈们说的一些思想和细节,但是别忘了,我们的目的是解决问题,不要为了面向对象而面向对象!

我想分析和抽象的能力对这个问题是个关键。首先要在问题域仔细分析、抽象得到相关的对象模型,然后才是相应的设计。可是面向对象只是我们解决问题一种思想,切不可忘了问题本身,弄成为了面向对象而面向对象了!当然过程种少不了楼上一些前辈说的思想和细节了。

耕具我多年的实践:面向对象包括两个思想:

从大往小想,从小往大做

从难往易想,从易往难做

同意一下观点-----能深入浅出,真高手也!

真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题, :-)把问题从大到小都抽象成对象(指针只是对象的使用形式),在设计和编写程序的时候把你设计的对象合理的编排组合就是面向对象编程了。

面向对象,就是面对现实;

现实中的一切都是对象,他们有分类,就产生了“类”;

他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。

对象:

对象是人们要进行研究的任何事物,从简单的一个小分子到复杂的汽车飞机都可以看做对象,只是有时对象要根据人们研究问题的需要来确定,对象不一定是具体的,有时也可以表示抽象的规则或计划。

类:

篇8:Java面向对象重要概念小结

这篇文章主要介绍了简述Python中的面向对象编程的概念,面向对象编程是Python的重要特性,需要的朋友可以参考下

面向对象编程――Object Oriented Programming,简称OOP,是一种程序设计思想,OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。

我们以一个例子来说明面向过程和面向对象在程序流程上的不同之处。

假设我们要处理学生的成绩表,为了表示一个学生的成绩,面向过程的程序可以用一个dict表示:

std1 = { ‘name‘: ‘Michael‘, ‘score‘: 98 }std2 = { ‘name‘: ‘Bob‘, ‘score‘: 81 }

而处理学生成绩可以通过函数实现,比如打印学生的成绩:

def print_score(std): print ‘%s: %s‘ % (std[‘name‘], std[‘score‘])

如果采用面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是Student这种数据类型应该被视为一个对象,这个对象拥有name和score这两个属性(Property),

如果要打印一个学生的成绩,首先必须创建出这个学生对应的对象,然后,给对象发一个print_score消息,让对象自己把自己的数据打印出来。

class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print ‘%s: %s‘ % (self.name, self.score)

给对象发消息实际上就是调用对象对应的关联函数,我们称之为对象的方法(Method)。面向对象的程序写出来就像这样:

bart = Student(‘Bart Simpson‘, 59)lisa = Student(‘Lisa Simpson‘, 87)bart.print_scorelisa.print_score()

面向对象的设计思想是从自然界中来的,因为在自然界中,类(Class)和实例(Instance)的概念是很自然的。Class是一种抽象概念,比如我们定义的Class――Student,是指学生这个概念,而实例(Instance)则是一个个具体的Student,比如,Bart Simpson和Lisa Simpson是两个具体的Student:

所以,面向对象的设计思想是抽象出Class,根据Class创建Instance。

面向对象的抽象程度又比函数要高,因为一个Class既包含数据,又包含操作数据的方法。

小结

上一篇:《老人与海鸥》的学科整合课例下一篇:员工交通安全协议书