前言
决定一张照片的好坏是后面的头脑而不是器材。接下来讲述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.定义设计类:使用设计类来表示有效类定义的静态视图,重点描述类的属性和方法。
分享到:
相关推荐
李兴华所有的j2se的笔记 魔乐科技的所有笔记
我的学习笔记 需要就下载吧 接口 上课时的课堂笔记及相关程序
Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记
j2se学习笔记.doc j2se学习笔记.doc j2se学习笔记.doc j2se学习笔记.doc
快速学习JAVA,掌握牢固的JAVA基础,这决对是你正确的选择
传智播客整理的J2SE全套笔记, 从基础到高级, pdf格式 传智播客整理的J2SE全套笔记, 从基础到高级, pdf格式 传智播客整理的J2SE全套笔记, 从基础到高级, pdf格式
自己的j2se学习笔记和收集的一部分笔记
java开发的类似于记事本的应用程序,有文件,编辑,字体等功能
J2SE学习实例 1、Java的基础知识 2、Java面向对象 3、集合Collection的使用 4、IO使用 5、Socket编程 6、Thread线程技术 7、Subject反射技术 8、GUI图形编程
很不错的笔记,PDF文件,非常清晰。 特别在介绍J2SE部分,很基础也很简洁。 入门的朋友可以下来看看,应该会收获不少。 MLDN的JAVA课件
Java Web ppt 开发 J2SE 学习笔记
Java-J2SE学习笔记
基于Java1234的J2se课程的学习笔记,内有个人理解,心得,归纳总结。
马士兵老师讲解J2SE视频的相关笔记内容,通过思维导图的形式对主要内容进行整理.方面对相关知识的回顾和查找.文档需要通过专门的思维导图软件(Mindmanager)打开.
1 JAVA认识 2 JAVA数据类型 3 面向对象程序设计 4 JAVA集合 5 JAVA反射机制 6 JAVA注解(ANNOTATION) 7 JAVA中的异常类 8 JAVA-SWING 9 观察者模式 10 内部类讲解 11 JAVA I/O流讲解 ...
非常基础的学习笔记,希望对你学习基础有用!
记载了java j2se的基本语句实例,学习java j2se的良备