`
929118967
  • 浏览: 20418 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
博客专栏
Fcebf22e-9505-38db-b3f2-65fdcc3fd6a5
java开发的深入浅出
浏览量:6921
文章分类
社区版块
存档分类
最新评论

J2SE笔记之方法

 
阅读更多

前言


决定一张照片的好坏是后面的头脑而不是器材。接下来讲述java中的方法解析。
本文讲述方法的理论和方法的案例。在将方法之前,我先说一下我的学习java的方法;我是先理解了方法与方法之间的关系,主要是他们之间的执行顺序和调用关系。
通过一个练习加强理解,进而继续理解类与类的关系,最后理解包与包的关系。

方法 理论

定义语法

修饰符 返回值 方法名(参数列表){

return 值 //值的类型一定要与返回值的类型匹配

}

调用语法

方法名 (值1,值2);

注:a.方法调用的传值,值的类型应与定义对应位置类型一致;方法没有返回值,使用void关键字占位,可以不需要返回值,如果需要返回值 return;

b.java只有一种传值方式,就是值传递。

形参:在方法定义时,存在于参数列表中的变量

作用:用来接收来自实参所传递的值。

实参:在方法调用时,存在参数列表的值或变量。

作用:传值给形参。

注:Scanner :提供用户输入管道,下面案例要使用的方法。

import java.util.Scanner;

Scanner sc=new Scanner(System.in);

api方法:

long nextLong() 阻塞方法,用户必须输入数据,程序才继续执行

String next() 从控制台读取字符串(不允许带空白:\t ;)

String nextLine() 从控制台读取字符串(允许带空白)

注:在使用nextLine时,需要独立创一个管道,否则,nextLine()就会将上次的输入的回车记录为用户输入的字符串。

所有的方法都直接或者间接的被main方法调用;main方法是应用程序的入口点。

案例

在讲解试卷系统之前,先来讲讲需要补充的UML语言。

1.知识的补充:类的3种关系

在画UML 图的类图(Class Diagram)时,要先了解一下类的3种关系:

注:UML使用类图表示类,接口以及关联。类图用于静态建模。类图由3部分组成(类名,属性,操作),示例图如图1-1

在UML中,事物之间相互联系的方式(无论是逻辑上的还是物理上的)都被建模为关系。在面向对象的建模中,有3中重要的关系:依赖,关联和泛化。

1)依赖(dependency)是使用关系。例如,水管依赖热水器,对它们所运送的水进行加热。说明一个事物使用另一个事物的信息和服务。

示例图1-2:


2)关联(association)是实例之间的结构关系。例如,一个房间是由墙和一些其他事物组成的,墙上可以嵌套门和窗,管道可以穿通墙体。

类之间的关联关系大多用来表示变量实例持有着其他对象的引用。

这时我想起了一句话:编程来源于生活,理解了生活,就理解编程。

1))具体的示例:


其中,还有聚合与组合都是关联的一种特殊形式。聚合它意味着整体和部分的关系;而组合是一种特殊的聚合形式。

3)泛化(generalization),把一般类连接到较为特殊的类,也称为超类和子类关系。称为is-a-kind-of关系。

例如,观景窗是一种带有固定的大窗格的窗户,庭院是一种带有向两边开的窗格的窗户。

示例图1-3


2.案例实现

需求是使用方法之间的调用关系,来完成一个试卷系统。该试卷系统有试卷Paper类,Choice抽象类,以及Choice的两个子类MultChoice和SingleChoice类。
实现一个可以在控制台录入当选题和多选题,并答题的系统。
他们之间的UML由于较简单,就不画了。具体可参照下面的Code实现。
<script src="https://code.csdn.net/snippets/270346.js" type="text/javascript"></script>
<script src="https://code.csdn.net/snippets/270349.js" type="text/javascript"></script>
<script src="https://code.csdn.net/snippets/270354.js" type="text/javascript"></script>
<script src="https://code.csdn.net/snippets/270362.js" type="text/javascript"></script>
<script src="https://code.csdn.net/snippets/270366.js" type="text/javascript"></script>

总结

方法:用来表示对象的功能,它依赖于对象而存在。方法是动作,一般使用动词来声明

关于UML的保留和舍弃

养成舍弃UML图的习惯吧,最好,养成不要把图建立在能长期保存的介质上的习惯。在一个白板或一个草稿纸上画它们,经常擦掉白板或舍弃草稿纸。一个原则就是不使用Case工具或画图工具。这些工具只用一次即可,你的大多数UML图都是短命的。
但有一些图保存下来是非常有用的:
1.表现你的系统中一个通用设计解决方案图
2.记录了复杂的协议,难以通过代码了解的图
3.提供了比较少涉及到的系统范围的“路标图“的图
4.记录了比代码更易表述的设计意图的图。

使用UML的场景

1.作为草图-与他人交流设计方案,来指导更详细的设计或编码人员进行开发
2.作为编程蓝图和详细设计指导
3.作为系统结果的road map ,这种脉络图可以使开发者快速找到类之间的依赖关系,并提供系统结构的参考。
4.作为代码的逆向工程图——帮助代码维护人员,阅读、分析和检查代码,快速了解代码结构。
5.在理论、工具和可用性方面处于发展阶段:把UML作为编程语言,即基于UML模型驱动(MDA),用UML全程建模,完成软件系统可执行规格说明,代码自动生成。

建模语言UML

UML主要用于沟通,是大家熟悉认同的语言而已。面向对象分析和设计来源于设计者的头脑,重点是设计者的思想和理念。
比如,决定一张照片的好坏是后面的头脑而不是器材

敏捷开发工程

1.定义用例:需求分析可能包括人们如何使用应用的情节或场景
2.定义领域模型:面向对象的分析关注领域的概念,属性和关联来形成OOA结果领域模型(domain model),在领域模型中展示重要的领域对象。
3.分配对象职责,并绘制交互图:ood关注软件对象的定义-它们的职责和协作。
注:顺序图(sequence diagram)是描述协作的常见表达方式,它展示了软件对象之间的消息流,和由消息引起的方法调用
4.定义设计类:使用设计类来表示有效类定义的静态视图,重点描述类的属性和方法。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics