首页
IT
登录
6mi
u
盘
搜
搜 索
IT
java总结
java总结
xiaoxiao
2021-12-14
17
软件开发基本过程:4步,如下, 简历软件需求 软件设计 实现软件设计 软件测试 类识别: 面向对象软件设计的基本内容是确定类,类决定着软件的结构。 问题说明中的名词,可能标示了需要的类和对象。 类代表一组有类似行为的对象,一个对象也用类。 类职责: 起初,常常只要给一个类分派基本的职责就足够了,并且考虑如何将分派的职责转换为具体方法。 其它职责后续考虑,或定义新类。 静态类成员: 考虑是否设置静态变量和方法。 类间关系: 其中基本的三个,依赖、聚合、继承。 同一个类之间的依赖关系。 一个聚合对象由其它的对象组成,形成一种"has-a"关系。 UML,统一建模语言。 其主要模型有:功能模型,对象模型,动态模型 图的功用:用例图,类图,对象图,包图,活动图,状态图,序列图,协作图,构件图,部署图 接口comparable提供对两个对象进行比较的通用机制。 接口iterator提供集合类的迭代操作。 枚举型的值是对象。事实上,枚举值是枚举类型的实例。 一个枚举型的值是具有该枚举型的静态变量。 方法设计 : 方法分解,方法参数的传递方式。 将一个对象传递给一个方法时,形参和实参相互成为对方的别名。 测试: 测试的目标是发现错误,发现程序中任何不完善的地方。 测试是努力尝试各种方式去发现错误。 越早发现问题越好。 逐步提高程序质量。 审查: 评价设计和代码 设计必须了解用户需求和可能的动作,以便设计出更好的界面。界面是用户与系统交互的唯一途径。 界面设计应坚持一致性和可用性,并尽最大可能让用户少犯错误。 数组相关: 数组用于分组和组织数据。 当整个数组作为参数传递时,实际上传递的是原始数组引用的副本。 数组元素也可以传递给方法,传递的也是副本。 main方法的形参总是string 对象数组。string[]参数,代表了命令行参数。 可变长度参数列表:(省略号表示接受的参数个数是可变的) public double average(int ... list){} 表示,average方法可接受任意个数的int参数,接受的参数将自动存入数组list,在方法内部可按正常的数组处理参数。 数组可以有一维,二维,三维,甚至多维。数组在画复杂图形时很有用。 arrayList数组中插入和删除一个元素后,将调整元素的位置以便使剩余元素的索引值保持连续性。 arrayList类的方法将对象引用作为参数接收。 继承相关: 子类可以定义与父类同名的变量,定义是合法的,可以改变变量的类型,但不提倡这样做,会引起混淆。称为影子变量。 应当合理的将类的公共特性保持在尽可能高的类层次级上,以利于实现类定义的一致性和软件的易维护性。 设计类层次结构以满足应用程序的需要,着重考虑将来应用的可扩展性。 抽象类代表一种概念,子类将基于这种概念来定义方法,因此抽象类不能实例化。 从非抽象父类派生出抽象类也是可能的。 从抽象父类派生出抽象类也可以。 子类继承了父类的private方法,虽不能直接访问,但可以通过调用父类的public方法访问。 final修饰符可用于限制继承的能力。 多态性: 对于多态性引用,方法调用与方法定义代码的绑定在运行时执行。 两种方式建立多态性引用:继承方式,接口方式。 接口名可以用于声明对象引用变量。一个接口引用变量可以指向实现该接口的任何类的任何对象。 多态性可用于排序、搜索。 算法的选择取决于具体条件。 如果对象可以自然地由继承的关系关联在一起,通过继承实现多态好。 如果对象共同存在的主要问题需要以各自不同的方式进行处理,则通过接口建立多态性引用是更好的选择。 异常相关: printStackTrace方法输出调用堆栈跟踪信息。 throw语句用于开始一个异常的传递。异常抛出后,程序终止执行并打印输出有关的异常信息。 一个流是一个有序的字节序列;流可以用作输入源或作为输出的目的地。 一个数据存储(如文件)可以作为一个程序的输入流或输出流,但一般不能同时既是输入流又是输出流。 system类中的三种对象引用变量代表标准I/0流。 system.in 标准输入流 ,默认代表键盘 system.out 标准输出流 ,默认代表显示器屏幕上的一个具体窗口 system.err 标准错误流 ,默认代表显示器屏幕上的一个具体窗口 递归与迭代: 递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。 递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。 递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止。 使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败; 递归不断产生最初问题的简化副本,直到达到基本情况。迭代和递归过程都可以无限进行:如果循环条件测试 永远不变成false,则迭代发生无限循环;如果递归永远无法回推到基本情况,则发生无穷递归。 递归函数是通过调用函数自身来完成任务,而且在每次调用自身时减少任务量。而迭代是循环的一种形式,这 种循环不是由用户输入而控制,每次迭代步骤都必须将剩余的任务减少;也就是说,循环的每一步都必须执行 一个有限的过程,并留下较少的步骤。 每次递归调用都需要新增内存空间。 一个方法调用自己是直接递归;一个方法调用其他方法,最终导致再次调用自己,是间接递归。 所有的问题都可以用循环迭代的方法求解,但某些情况下会很复杂。
转载请注明原文地址: https://ju.6miu.com/read-971474.html
专利
最新回复
(
0
)