函数(方法)讲解的内容
1.函数的定义
2.函数的特点
3.函数的应用
4.函数的重载
函数-定义
什么是函数
函数就是定义在类中的具有特定功能的一段独立小程序.
函数也称为方法
public static int add(int i,int j){
return i+j;
}
}
函数-格式
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,..)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后得到的结果的数据类型.
参数类型 : 是形式参数的数据类型
形式参数 : 是一个变量,用于存储调用函数时传递给函数的实际参数(参加运算的数据)
实际参数 :传递给形式参数的具体数值
return :用于结束函数.
返回值 :该函数运算后的结果,该结果会返回给调用者.
- public class methodDemo {
- public static void main(String[] args) {
- int x = 3;
- int z = 5;
- int c = add(x,z);
- System.out.println(c);
- }
- public static int add(int i,int j){
- return i+j;
- }
- }
函数-细节
/**
* 特殊情况:
* 功能没有具体的返回值.
*
* 这时return的后面直接用分号结束.
* 返回值类型怎么体现呢?因为没有具体值,所以不可以写具体的数据类型.
* 在java中只能用意个关键字来表示这种情况,关键字是:void
*
* 总结:没有具体返回值时,返回值类型用void来表示
*/
public void testmethod(){
return ;
}
函数-特点
定义函数可以将功能代码进行封装
便于对该功能进行服用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
注意:
函数中只能调用函数,不可以再函数内部定义函数
定义函数时,函数的结果应该返回给调用者,交由调用者处理
函数-两个明确
明确一:这个功能的结果是什么?
是和(加法运算)是功能的结果,所以该功能的返回类型是int
其实就是在明确函数的返回值类型.
明确二:这个功能实现过程中是否需要未知内容参与运算?
有,加数和被加数,这就是函数的参数列表(参数的个数,参数的类型)
其实就是在明确参数列表
注意: 返回值类型和参数类型没有直接关系
public static void int add(int i,int y){
int number=i+y;
return number
}
/*两个参数比较*/
public static boolean equals(int a ,int b){
return a==b;
}
函数-内存加载过程
public class FunctionDemo2 {
/*
* javac:命令是启动java编程器程序 对给定的java程序进行编译和检查
* 如果编译没有错误的情况下会生成java运行程序.class文件
*"/> javac FunctionDemo2.java--->FunctionDemo2.class
*
*java:启动虚拟机 运行java应用程序 在运行该java类的时候会去找该类中的main方法参数为(String[] str)方法
*"/> java FunctionDemo2
*/
public static void main(String[] args) {
int x = add(3,5);
System.out.println("x="+x);
}
public static int add(int a,int b){
return a+b;
}
}
内存 栈的变化先进后出 原理与弹夹类似
函数-重载
重载的概念:
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或参数类型不同即可
重载的特点:
与返回值类型无关,只看参数列表
重载的好处:
方便与阅读,优化了程序设计.
重载示例:
//返回两个参数的和
int add(int x,inty ){return x+y}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z}
//返回两个小数的和
double add(double x,double y){return x+y};
public class OverLoad {
/*函数的重载
* 1.同一个类
* 2.同名
* 3.参数个数不同 或 参数类型不同
* 4.函数重载和返回值类型无关
* 5.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败
*/
public static void main(String[] args) {
printCFB(5);
}
public static int add(int a,int b){
return a+b;
}
public static double add(double a,double b){
return a+b;
}
public static int add(int a,int b,int c){
return add(a,b)+c;
}
/*打印指定的乘法表*/
public static void printCFB(int num){
for(int x = 1;x<num;x++){
for(int y = 1;y<=x;y++){
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
/*打印99乘法表*/
public static void printCFB(){
/*着块的代码一样所以还可以重载
* for(int x = 1;x<num;x++){
for(int y = 1;y<=x;y++){
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}*/
//重载后写法
printCFB(9);
}
}