黑马程序员——函数
2015-06-12 19:05
232 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一,函数的定义
什么是函数?
1, 函数就是定义在类中具有特定功能的小程序
2, 函数也称为方法
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该函数运算后的结果,该结果会返回给调用者。
例如:定义一个功能完成整数的*3+5的运算。
函数的特点:
定义函数可以将功能代码进行封装,便于对该功能进行复用。
函数只有被调用才会被执行。
函数的出现提高了代码的复用性。
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
注意:
a) 函数中只能调用函数,不可以在函数内部定义函数。
b) 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
示例:执行下列代码:
错误提示如下:
为什么呢?
因为函数式int类型的,说明要返回一个int类型的值,可是函数是直接打印出来的,没有具体返回值,没有具体返回值,
就不能有具体返回值类型,所以会出错。
如何解决呢?
当函数运算后,没有具体返回值时,这时返回值类型用一个特殊的关键字来标识,该关键字就是void,void表示函数没
有具体返回值,当函数返回值是void时,函数中的return语句可以省略不写。
如何定义一个函数?
1,既然函数是一个独立的功能,明确要定义的功能最后的结果是什么。
因为这是明确函数的返回值类型。
2,明确在定义该功能的过程中,是否需要未知内容参与运算。
因为这是明确函数的参数列表。
练习:需求定义一个功能完成3+4的运算,并将结果返回给调用者
1,明确功能的结果,是一个整数的和。
2,在实现功能过程中是否有未知参数参与运算,没有。
其实这两个功能就是在明确函数的定义
1,明确函数的返回值类型。
2,明确函数的参数列表(参数的类型和参数的个数)
以上函数的功能,结果是固定的,毫无扩展性而言为了方便用户需求,由用户指定加数和被加数
这样功能才有意义。
思路:
1,功能结果是一个和,返回值类型是int。
2,有未知内容参与运算,有两个,这两个未知内容的类型都是int。
细节注意:
下列代码会出错:
因为:如果函数的返回值类型是void的类型是不能在主函数的输出语句里
输出get(4,5),可以在主函数里直接调用,这个函数get运行完了后没有具体的值,主函数中
的打印语句不知道要打印什么。而下面的却可以, 因为getSum运算完是有具体的结果。
注意:下面功能定义思想有问题,因为只为完成加法运算,至于是否要对和进行打印操作
那是调用者的事,不要再该功能中完成。
练习:打印一个99乘法表功能的函数。
结果:
二,函数的重载
概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数列表的个数或者参数类型不同即可。
特点:与返回值类型无关,只看参数列表。
好处:方便于阅读,优化了程序设计。
示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){returnx+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
什么时候用到重载?
当定义的功能相同,但参与运算的未知内容不同。那么,这时就定义一个函数名称以表示起功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
注意:重载和返回值类型没有关系。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一,函数的定义
什么是函数?
1, 函数就是定义在类中具有特定功能的小程序
2, 函数也称为方法
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该函数运算后的结果,该结果会返回给调用者。
例如:定义一个功能完成整数的*3+5的运算。
class FunctionDemo { public static void main(String[] args) { int x = getResult(5); System.out.println(x); } public static int getResult(int num) { return num*3+5; } }
函数的特点:
定义函数可以将功能代码进行封装,便于对该功能进行复用。
函数只有被调用才会被执行。
函数的出现提高了代码的复用性。
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
注意:
a) 函数中只能调用函数,不可以在函数内部定义函数。
b) 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
示例:执行下列代码:
错误提示如下:
为什么呢?
因为函数式int类型的,说明要返回一个int类型的值,可是函数是直接打印出来的,没有具体返回值,没有具体返回值,
就不能有具体返回值类型,所以会出错。
如何解决呢?
当函数运算后,没有具体返回值时,这时返回值类型用一个特殊的关键字来标识,该关键字就是void,void表示函数没
有具体返回值,当函数返回值是void时,函数中的return语句可以省略不写。
如何定义一个函数?
1,既然函数是一个独立的功能,明确要定义的功能最后的结果是什么。
因为这是明确函数的返回值类型。
2,明确在定义该功能的过程中,是否需要未知内容参与运算。
因为这是明确函数的参数列表。
练习:需求定义一个功能完成3+4的运算,并将结果返回给调用者
1,明确功能的结果,是一个整数的和。
2,在实现功能过程中是否有未知参数参与运算,没有。
其实这两个功能就是在明确函数的定义
1,明确函数的返回值类型。
2,明确函数的参数列表(参数的类型和参数的个数)
class FunctionDemo2 { public static void main(String[] args) { int num = getSum(); System.out.println("sum"+sum); } public static int getSum() { return 3+4; } }
以上函数的功能,结果是固定的,毫无扩展性而言为了方便用户需求,由用户指定加数和被加数
这样功能才有意义。
思路:
1,功能结果是一个和,返回值类型是int。
2,有未知内容参与运算,有两个,这两个未知内容的类型都是int。
class FunctionDemo2 { public static void main(String[] args) { int num = getSum(4,6); System.out.println("sum"+sum); } public static int getSum(int x,int y) { return x+y; } }
细节注意:
下列代码会出错:
class FunctionDemo2 { public static void main(String[] args) { System.out.println(get(4,5)); } public static int get(int a,int b) { System.out.println(a+b); return ; } }
因为:如果函数的返回值类型是void的类型是不能在主函数的输出语句里
输出get(4,5),可以在主函数里直接调用,这个函数get运行完了后没有具体的值,主函数中
的打印语句不知道要打印什么。而下面的却可以, 因为getSum运算完是有具体的结果。
class FunctionDemo2 { public static void main(String[] args) { System.out.println(getSum(4,5)); } public static int getSum(int x,int y) { return x+y; } }
注意:下面功能定义思想有问题,因为只为完成加法运算,至于是否要对和进行打印操作
那是调用者的事,不要再该功能中完成。
练习:打印一个99乘法表功能的函数。
public static void print99() { for(int x=1;x<=9;x++) { for (iny y=1;y<=x ;y++ ) { System.out.print(y+"*"+x+"="+y*x+"\t"); } System.out.println(); } }
结果:
二,函数的重载
概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数列表的个数或者参数类型不同即可。
特点:与返回值类型无关,只看参数列表。
好处:方便于阅读,优化了程序设计。
示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){returnx+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
什么时候用到重载?
当定义的功能相同,但参与运算的未知内容不同。那么,这时就定义一个函数名称以表示起功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
注意:重载和返回值类型没有关系。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
相关文章推荐
- 【剑指offer】面试题四:替换空格
- 程序员的想法
- Java面试题介绍 - [01]
- 黑马程序员--数组常用排序方法
- 程序员如何写出一份好的文档?(转)
- 新浪微博产品管培生求职之路——方法论归纳与整理
- IT求职经验总结——面试和准备策略
- 黑马程序员——java基础-IO(二)
- JSP和Servlet面试指导
- 黑马程序员—继承、接口
- 给程序员新人的一封信
- 黑马程序员---IOS基础---OC 中对象和方法
- 黑马程序员——Java基础—反射
- 黑马程序员__java基础__面向对象(继承、接口)
- 黑马程序员——java基础-IO(一)
- [置顶] 一份诚恳的互联网找工作总结和感想(附:怎样花两年时间去面试一个人)
- 黑马程序员------面向对象02
- 一个fork的面试题
- 网上收集的一些程序员笑话
- 黑马程序员——java基础-其他的对象