对抽象编程
‘壹’ 为什么要开发抽象编程语言
因为这样可是使代码永远不过时(理想)
‘贰’ 面向切面编程 面向接口编程 面向抽象编程 面向对象编程
面向对象》面向接口》面向切面,越来越“高级”的程序设计方式。面向抽象这个概念相比另三个概念是个抽象概念,既这三者都是面向抽象,这也可以说成是这三者的联系,区别就是层次不同:面向对象是语言层次的编程方式,面向接口既是语言层次又是设计模式层次,而面向切面编程则可算做是框架层次,越来越“高级”。
至于具体的定义和用法,自己网络吧。
‘叁’ 为什么面向对象技术强调要针对抽象编程,而不要针对具体编程
当你已经有一段程序之后,想要在其基础上做一点功能上的修改来获得新的代码,这时就可以继承之前的基类,然后自己进行一些补充生成新的派生类,可以更为方便的继承已有的程序。简单地说面向对象的编程的特点就是封装、继承与多态
如果您认可我的答案,请采纳。
您的采纳,是我答题的动力,O(∩_∩)O谢谢!!
‘肆’ 请问C++语言的抽象编程问题
行为抽象,比如长方形,其必有的行为就是绘制,那么绘制这个行为可以抽象成一个函数就是绘制函数(内容就是如何绘制一个长方形)。而数据抽象,长方形基本要素就是长宽,那么这个两个值就可以抽象成长方形的两个基本数据,长和宽。
至于数据结构,上网找吧,真的很多解释的。最基本的数组就是一种数据结构。
‘伍’ 求助:Java 面向抽象编程问题
擦....面向抽象编程...........亮瞎了.....
‘陆’ 在面对对象编程中抽象类的特点什么
抽象类的特点:
1、抽象类的方法可以是抽象的,也可以是不抽象的。
2、抽象类的方法可以全是抽象的,也可以全是不抽象的。
3、有抽象方法的类必须是抽象类,或者是接口(但是接口的方法定义必须是public static abstract 修饰)。
4、子类继承抽象类,必须实现抽象类的所有抽象方法。
5、抽象类不能被实例化,没有构造函数。
6、子类中的抽象方法不能与父类的抽象方法同名。
7、抽象类的默认属性修饰符是public abstract。
8、抽象类的属性不能定义成静态的。
9、如果抽象类的抽象方法不被重写,那么子类也必须是抽象类。
‘柒’ 抽象编程的介绍
抽象编程是通过抽象的方法来减少编程工作量或有效地减轻编程难度称为抽象编程将问题通过功能分解,各个击破的编程方法(过程化编程) 是一种以行为抽象为主的抽象编程将问题通过实体分析,分层分类地实现抽象数据类型,从而进行简单应用编程(基于对象编程)是一种以数据抽象为主的抽象编程这种抽象编程,通过数据类型复用,方便编程,方便维护和扩展,其效果比过程化编程更好编程语言中没有许多具体的数据类型要解决实际问题,很大部分工作是要建立数据模式与实际问题的对应,也就是建立抽象数据类型的过程对象化编程就是基于分层分类的抽象数据类型之具体编程,它能更好地实现数据结构和算法,便是将N.Wirth的程序公式:程序=算法+数据结构具体化为:程序=算法+抽象数据类型
‘捌’ 抽象编程的编程质量
(Programming Quality ) 通过使用更好的编程方法可以从本质上改进可读性通过使用定义良好的算法和语句控制结构,可以局部改进算法的可理解性通过学习和使用优秀程序员的编码习惯,采用一贯的编码风格,可以增强可读性。
注意:
高级程序员与初学者对可读性的把握分寸是不同的易编程性:
只是对采用好的编程方法或更高级语言而言,抽象程度越大,越易编程对象化编程在抽象数据类型的创建上做了大量的工作,因而赢得了应用程序编写的方便与快捷比如数组,无法整体复制,无法扩容,但是向量则可以。 编程在算法设计上是挖空心思的劳动过程,而在运用语言对之描述上应该潇洒自在:容易表达,不容易出错,运行上更安全。
好的编程方法能够帮助程序员实现潇洒编程抽象数据类型中可以将大量安全代码嵌入其中,从而使应用编程潇洒自在实现抽象数据类型的过程本身也是使用其他抽象数据类型的应用编程,同样也充满着潇洒与自在
void f(char* s)
{
string s1,s2=s; //第一种
s1=s;
char* st=new char[strlen(s)+1]; //第二种
strcpy(st,s); char a[40]; //第三种
strncpy(a,s,sizeof(a));
a[sizeof(a)-1]=‘ ’;
} 指局部修改不影响系统全局的总体性能,而系统产生的问题通常可以通过局部维护(修改或更换部件) 来解决。
模块化编程使程序可拆装,可局部修改,而不影响整体性能与工作,因而可维护性强,过程化编程是将过程模块化,具有一定的可维护性;
对象化编程是将数据类型也模块化,从而导致更方便的维护性能可扩充性:指系统扩展时,只增加扩展代码,而对原系统的正常运作只作很少的修改甚至不修改功能扩展的影响:
过程化编程,会涉及多处扩展代码与原系统不和谐所带来的修改对象化编程,如果是抽象数据类型的功能扩展,则不会影响原系统的正常运行,而只是支持应用程序中增加的一些扩展代码而已;
如果是应用程序功能扩展,那是使用抽象数据类型的抽象代码扩展,其修改量比之低级代码要少效率
‘玖’ 什么是抽象编程
顾名思义抽象编程是指在编程的过程中把大象抽出来。
如何在编程的过程中把大象抽出并保持程序的可移植性,这个一直以来是一个困扰全世界各类语言编程的程序员的一个难题。
最早提出抽象这个概念的是 达芬奇 在他的名画中有着抽象的充分演示。
如果在一个项目中做到抽象编程的话,无疑是完美的。那么在编译型的语言中如果做到呢?
首先搭建环境,这个问题怎么说呢?真是个见仁见智的。
在C语言中和在JAVA又或者在Python中如何搭建这个抽象的环境。
由于笔者最近热衷于Python的开发。首先谈谈在Python中如何做到把大象抽出来的同时保证程序的完美的可移植性。
第一 建立一个抽象类库。
打开IDLE,引入抽象的概念。
第二 告诉大象我们即将把你抽出来。这个对于大象来说是很不公平的,它肯定的回答NO
那么我们是不是就不能把大象抽出来了呢?当然可以。大象是很笨的,我们可以先构造一个函数。内容包括香蕉芒果等大象爱吃的食物,先把大象“骗”出来。当然这个也是很有技巧的。骗出来以后大象暂时存在什么地方呢?众所周知Python讲究效率、快捷的开发注重的是解决问题。那么,我们到哪里去找个那么大的空间把大象存进去呢?答案当然是动物园啦。首先与管理员协调暂存事宜。待需要的时候在把大象引入回来。
第三 大象的引入问题
这个时候相信大家对把大象存在什么位置已经有了个初步的了解,但是如果管理员很热爱大象的话,给大象提供的伙食比我们先前的要好。那么这个时候引入无疑会增加成本。必须提供更好的伙食条件大象才有可能原因再次回来我们预先的架构中继续工作。那么在作者的BLOG中有着一套比较完整的解决方案。下面的参考地址会给出作者的Blog地址。请大家争相传阅。
总结:抽象编程的原理大家都清楚了。需要解决的主要问题就是把大象抽出后的再次引用问题。这个也是本文的难点。希望对大家有所帮助。
‘拾’ 有看过 斯坦福大学 抽象编程的吗
衔接编程方法论课程,不是c++语言的课程.而且有大量作业。如果去过stanford的官网可以下载作业,我记得第一个作业是生成一个可移动的图案,用的是他们自己的库,不过没答案也没讲解。只看视频是不够的。现在MOOC很流行课程众多,有视频,作业,交流。网易的云课堂,学堂在线,coursera都很好