java中的函数调用怎么理解?
在JAVA中怎么使用 什么时候能用到? 展开
你想去买一样东西,这时,可能会叫你的秘书去帮你买它。
您的秘书可能不熟悉市场,这时她委任采购部门去帮她购买你需要的东西。
不好意思,昨天有事匆忙留下一段,还有一段没有完成。。。
在JAVA中怎么使用 什么时候能用到?
我就大致的回答一下吧。如果不合心意,还请谅解!
OOP强调低耦合,高内聚。单一职责原则。还有许多模式以及原则,使你的系统富有弹性,易于扩展,修改,维护。
内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 对于低耦合,粗浅的理解是:
一个完整的系统,模块与模块之间,尽可能的使其独立存在。
也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
模块与模块之间的接口,尽量的少而简单。
如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。
这样有利于修改和组合。[1]
引用:http://baike.baidu.com/view/3082578.html
代码的话,我就不多说了。自己估量估量,就知道是怎么回事了。
方法就是生活中的功能,方法定义就是创建功能,方法调用就是使用功能。
我现在要输出一个字符串,这个字符串需要上下都有一行“*”,并且要求星星的个数与输出的字符串长度相同。如果字符串是Hello World!,那么星星的个数是12个。
public static void main(String[] args) {
String s = "Hello World!";
int len = s.length();
for(int i = 0; i < len; i++) {
System.out.print("*");
}
System.out.println();
System.out.println(s);
for(int i = 0; i < len; i++) {
System.out.print("*");
}
System.out.println();
}
上面的代码可以完成任务,但是如果我再要你输出一个Hello Java!也要求用星星装饰。你还需要把上面的代码再打一次。这会很麻烦!这时我们可以创建一个方法,然后重复调用这个方法就可以了。也就是创建一个功能,然后重复使用这个功能!
public static void printStr(String s) {
int len = s.length();
printXing(len);
System.out.println(s);
printXing(len);
}
public static void printXing(int n) {
for(int i = 0; i < n; i++) {
System.out.print("*");
}
System.out.println();
}
public static void main(String[] args) {
printStr("Hello World!");
printStr("Hello Java!");
}
===============
方法可以重用,也就是功能一旦创建用可以多次使用!
在生活中功能是不能独立存在的,它必须属于某个物体,也就是对象。例如车有行驶,停止等功能,车就是对象!在Java中方法也需要指定属于哪个对象,这样的方法就是实例方法。
功能有时还需要有参数,例如你想使用电脑的功能,那你需要给电脑的开机方法提供电。你想使用汽车的行驶方法,你需要给车提供汽油。上面方法中printStr方法需要的参数是要输出的字符串。
方法分类:
有参、无参
有返回值、无返回值
实例方法、静态方法
=====
相对而言,方法还有主调与被调关系!
同一类中是否可以有两个名称、参数列表一样方法呢?
编译器如何区分方法,JVM又是如何区分方法!
Java中的getter桥方法区别在哪里?
方法的递归调用!
无返回值方法如何使用return
方法的覆盖、方法的重载
方法的修饰:abstract、final、static、native、strictfp、synchronized
===============
学习Java,理解它很重要。但理解不等于会,想学会一定要多练习!!!
有学生问过我说:“老师,你给我们打的代码我都能看懂,但为什么你让我们自己打时我就打不出来了呢?一点思路都没有了!”
理解了方法是什么,你就会在你的程序中定义方法,调用方法了吗?不是!你认识汉字吗?你认识为什么写不出来诗呢?你能看懂李白的“将进酒”吗?看懂了为什么你写不出来呢?想写诗怎么办,答案是多看别人的诗,注意别人的诗在哪些地方用了哪些字!然后自己写一些简单的,来模仿别人的,模仿的时间长了,也就会了。
java中的函数调用:
函数调用方法分为“方法签名”跟“方法实例”两块。
方法书签:public static void main(String [] args)
方法签名又分为访问修饰符:public,可选修饰符static,返回值void,方法名main,形式参数列表(String[] args)。
一个方法签名包括一个形式参数列表,它声明传递到方法中的数据的类型(实际上声明了一个变量),注意一个方法可以有多个形式参数用“,”隔开,调用的时候
实际参数(传递给方法的参数)必须顺序、个数相同,但是只能有一个返回值。
在JAVA方法调用的时候,是把实际参数的数据复制给形式参数,这种过程叫做按值调用,也是唯一的,因为JAVA中不能按引用调用或者按指针调用,这种情况下实际参数不是复制给形式参数的。
方法的重载,JAVA中允许方法的重载,当一个类有两个或者多个同名但是有不同参数列表的方法时,就是方法的重载。不同参数列表有三种情况:
参数个数
参数类型
参数顺序。
方法具有相同名字,听起来不是那么重要的,但是方法重载在JAVA以及其他编程语言中使用是比较频繁的。
构造器,构造器就是构造方法,作用是为了创建对象,构造方法有两大特点1.无返回类型,无返回值2.构造方法必须与类名相同。构造可以写也可以不写,不写
的话编译器会为我们默认一个构造方法,如果写了就按照我们所写的构造方法来,注意构造方法也是方法,可以实现方法的重载,可以对属性赋值。我们知道内存分
为4个部分,堆,栈,数据段和代码段。而构造方法对属性初始化可以分为4个步骤:
1)在堆中划分空间
2)在此空间划分属性
3)对属性初始化
4)然后再执行在构造方法所写的代码。
你想去买一样东西,这时,可能会叫你的秘书去帮你买它。
您的秘书可能不熟悉市场,这时她委任采购部门去帮她购买你需要的东西。
不好意思,昨天有事匆忙留下一段,还有一段没有完成……在JAVA中怎么使用 什么时候能用到?
我就大致的回答一下吧。如果不合心意,还请谅解!
OOP强调低耦合,高内聚。单一职责原则。还有许多模式以及原则,使你的系统富有弹性,易于扩展,修改,维护。
内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 对于低耦合,粗浅的理解是:
一个完整的系统,模块与模块之间,尽可能的使其独立存在。
也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
模块与模块之间的接口,尽量的少而简单。
如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。
这样有利于修改和组合。[1]
求和函数sum(需要整型x、y参数,返回整型结果):
public int sum(int x, int y){
return x+y;
}
调用方法:
public void test(){
//定义函数返回结果变量,并且初始化
int result =0;
//求和函数调用
result=sum(3,5);
}
上面只是简单的例子,希望能帮到你。