------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
根据【阳哥笔记】学习Java语言基础知识
目录:一、函数的定义 二、函数的特点 三、函数的应用 四、函数的重载
一、函数的定义
函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该函数运算后的结果,该结果会返回给调用者。
如下:
package com.itheima;
class Test{
//定义一个加法函数
//返回值类型:int参数类型:int形式参数:a,b
public static int add(inta, intb){
//return:用于结束函数 返回值:a+b
return a + b;
}
public static void main(String[] args){
//实际参数:3,4
int c = add(3,4);
System.out.println("c = " +c);
}
}
二、函数的特点
1、定义函数可以将功能代码进行封装。
2、便于对该功能进行复用。
3、函数只有被调用才会被执行。
4、函数的出现提高了代码的复用性。
P.S.
1、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写,或者写上return;。
package com.itheima;
class Test{
//定义一个myPrint()函数
public static void myPrint(){
System.out.println("hello world");
//函数没有具体返回值,可省略不写或写上return;
return;
}
public static void main(String[] args){
//对该功能复用
myPrint();
myPrint();
}
}
2、函数中只能调用函数,不可以在函数内部定义函数。否则,编译时期就会报错。
3、定义函数时,函数的结果应该返回给调用者,交由调用者处理。
三、函数的应用
两个明确:
明确要定义的功能最后的结果是什么?
明确在定义该功能的过程中,是否需要未知内容参与运算。
问题1:
需求:定义一个功能,画一个矩形在控制台。
思路:既然定义功能,就可以用函数来体现。
明确一:这个功能结果是什么?没有结果,因为直接打印到了控制台,并未返回给调用者。用void表示。
明确二:这个功能实现过程中是否需要未知内容参与运算?有,行和列不确定,两个,整数int类型。
package com.itheima;
class Test{
//定义一个myPrint()函数
public static void draw(intm,intn){
for(inti = 0;i < m;i++){
for(intj = 0;j < n;j++ ){
System.out.print("*");
}
System.out.println();
}
}
//打印一个长为3宽为4的矩形
public static void main(String[] args){
draw(3,4);
}
}
问题2:
需求:定义功能,打印99乘法表。
思路:既然定义功能,就可以用函数来体现。
明确一:这个功能结果是什么?没有结果,因为直接打印到了控制台,并未返回给调用者。用void表示。
明确二:这个功能实现过程中是否需要未知内容参与运算?不需要
package com.itheima;
class Test{
//定义一个myPrint()函数,实现99乘法表的功能
public static void myPrint(){
for(inti = 1;i <10 ;i++){
for(intj = 1;j <= i;j++ ){
//"\t"转义字符,也就是制表符
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
public static void main(String[] args){
myPrint();
}
}
P.S.
返回值类型和参数类型没有直接关系。
四、函数的重载
重载的概念:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
重载的好处:
方便于阅读,优化了程序设计。
如下:
package com.itheima;
class Test{
//实现打印指定数字的乘法表
public static void myPrint(intm){
for(inti = 1;i <= m ;i++){
for(intj = 1;j <= i;j++ ){
//"\t"转义字符,也就是制表符
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
//定义一个myPrint()函数,实现99乘法表的功能
public static void myPrint(){
for(inti = 1;i <10 ;i++){
for(intj = 1;j <= i;j++ ){
//"\t"转义字符,也就是制表符
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
public static void main(String[] args){
myPrint();
myPrint(6);
}
}
总结:
函数的功能一样,仅仅是参与运算的未知内容不同时,可以定义多函数,却使用统一函数名称,这样方便阅读。在调用时,虚拟机通过参数列表的不同来区分同名函数。
P.S.
1、重载与返回值类型无关,只看参数列表。
2、java是严谨性语言,如果函数调用出现不确定性,会编译失败。
//本章小技巧:eclipse中返回上一步操作使用 Ctrl+z 撤销操作。