Java基础---函数

来源:互联网 发布:福利软件下载 编辑:程序博客网 时间:2024/05/20 20:57
/*


函数(方法):


函数的作用:提高功能代码的复用性。
需求:做两个数的加法功能


目前存在的问题:以下的代码都是在做一个加法功能,而
这里加法功能的代码目前是没有任何的复用性的。


解决方案:如果一个功能的代码被复用起来,那么这时候可以把这里的功能代码封装起来,
在java中把功能代码封装起来的是以函数的形式体现的。




函数定义的格式:
   修饰符 返回值类型 函数名(形参列表){
   需要被封装的功能代码;
   return;
   }




分析函数:
   public static int add(){
int a = 2;
int b = 3;
        return a+b;
}
修饰符:public static
返回值类型:int。  返回值类型就是指函数运行完毕后,返回的结果的数据类型。
注意:某些函数是没有结果返回给调用者的,那么这个时候返回值类型是void


函数名:add  函数名的作用:如果需要调用该函数,就需要使用该函数名


函数名的命名规范:首单词全部小写,其他单词的首字母大写,其他小写.


形式参数:如果一个函数在运行的时候,存在着数据是要调用者确定的,那么这时候就应该定义形式参数。


return: 把一个结果返回给调用者。


函数的特点:
  1.函数定义好之后,是需要被调用才会被执行的。main函数是有jvm调用的,不需要我们手动调用。


在现实生活中,以前去银行取钱的时候,银行都会有专门的工作人员负责的,
但是银行发生取钱的步骤都是一致的,后来银行为了解决这个问题,就把取钱的功能封装到一个柜员机中,以后我们再取钱的时候
我们只需要调用柜员机的取钱功能即可。


*/


class Demo1 
{
public static void main(String[] args) 
{

/*int sum = add();//调用了函数
System.out.println("结果:"+sum);

int sum = add(1,2);//调用了函数
System.out.println("结果:"+sum);
*/


//int sum =add(1,2);//不兼容的类型: void无法转换为int


add(1,2);
                



}
//做加法功能的函数
/*
public static int add(){
int a = 2;
int b = 3;
        System.out.println("函数执行了.....");
return a+b;
}



//加法功能的函数
public static int add(int a,int b){//int a,int b形式参数:形式参数的值是交给调用者确定的
return a+b;
}


需求:定义一个函数做加法功能,不需要返回结果给调用者,直接输出结果即可
*/


public static void add(int a,int b){
int sum=a+b;
System.out.println("结果:" + sum);
}


}


/*


函数定义的格式:
   修饰符 返回值类型 函数名(形参列表){
   需要被封装的功能代码;
   return;
   }




如何定义一个函数:
   1.返回值类型,
   2.是否存在未知参数(是否存在要由调用者确定的参数)。--->形式参数


  需求1:定义一个函数判断一个分数的等级,把分数的等级返回给调用者。
  需求2:定义一个函数打印一个乘法表,不需要返回任何数据




*/


class Demo2 
{
public static void main(String[] args) 
{

/*int max = getMax(14,5);//调用了函数  实际参数
System.out.println("最大值:" + max);
*/
getMax(3,7);
}


//需求2:定义一个函数比较两个int类型的数据大小,不需要把最大值返回给调用者。
public static void getMax(int a,int b){
int max=0;//定义一个变量用于保存最大值的
if (a>b){
max=a;
}else {
max=b;
}
System.out.println("最大值:"+ max);
}




// 需求1:定义一个函数比较两个int类型的数据大小,把最大值返回给调用者。
/*public static int getMax(int a,int b){
int max=0;//定义一个变量用于保存最大值的
if (a>b){
max=a;
}else {
max=b;
}
return max;//把结果返回给调用者
}
*/
}



/*
需求1:定义一个函数判断一个分数的等级,把分数的等级返回给调用者。
“A等级” “B等级”


如何定义一个函数:


    1.返回值类型。String
2.未知的参数---->形式参数。 分数




需求2:定义一个函数打印一个乘法表,不需要返回任何数据。
1.返回值类型, void
2.未知参数----->  形式参数  到底什么是乘法表




函数的特点:
1.函数的作用就是把一个功能代码块给封装起来,已达到提高功能代码的复用性。
2.函数定义好了之后是需要被调用者调用才会执行的。
3.如果一个函数没有返回值返回给调用者,那么返回值类型必须使用void 表示


*/


class Demo3 
{
public static void main(String[] args) 
{
/*
String result=getGrade(89);
System.out.println(result);
*/
print(3);
}


//需求2:定义一个函数打印一个乘法表,不需要返回任何数据。
    public static void print(int row){
for (int i=1;i<=row ;i++ )
{
for (int j=1;j<=i ;j++ ){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println("");
}

}


//需求1:定义一个函数判断一个分数的等级,把分数的等级返回给调用者。
/*public static String getGrade(int score){
String grade="";//定义一个变量存储等级
if (score>=90&&score<=100){
grade="A等级";
}else if (score>=80&&score<=90){
grade="B等级";
}else if (score>=70&&score<=80){
grade="C等级";
}else if (score>=60&&score<=70){
grade="E等级";
}else if (score>=0&&score<=59){
grade="补考等级";
}
return grade;//把等级返回给调用者


}
*/
}


/*
函数:


函数的作用:为了提高功能代码的复用。


函数的定义格式:
  修饰符 返回值类型 变量名(形式参数){
 函数体
  }




函数特点:
1.函数是把一个功能的代码封装起来已达到提高功能代码的复用性。
2.函数定义好之后,需要调用才能执行的。
3.如果一个函数没有返回值类型,那么就使用void关键字表示。


需求:定义一个函数判断分数对应的等级,然后返回分数对应的等级。


*/


class Demo1 
{
public static void main(String[] args) 
{
String result=getGrade(89);
System.out.println("对应的等级是:"+result);
}

public static String getGrade(int score){//未知的参数定义在形参中,由函数调用者确定
String grade="";//定义一个变量存储等级
if (score>=90&&score<=100){
grade="A等级";
}else if (score>=80&&score<=90){
grade="B等级";
}else if (score>=70&&score<=80){
grade="C等级";
}else if (score>=60&&score<=70){
grade="E等级";
}else if (score>=0&&score<=59){
grade="补考等级";
}
return grade;//把等级返回给调用者


}

}



/*
注意:如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意情况下都有返回值。(除了返回值类型是void以外的)


return关键字的作用:
   1.返回数据给调用者。
   2.函数一旦执行到了return关键字,那么函数马上结束。(能结束一个函数)
break关键字与return关键字的区别:
1.break关键字是结束一个循环
2.结束当前函数
*/


class Demo2 
{
public static void main(String[] args) 
{
//String result=getGrade(-10);
//System.out.println("对应的等级是:"+result);
//add(0,2);
print();
}


public static void print(){
for (int i = 0;i<5 ;i++ ){
System.out.println("hello word");
//break;结束了当前循环
return;//结束当前的函数
}
System.out.println("哈哈哈我能执行吗??");
}


//目前该函数的返回值类型是void,那么是否可以存在return关键字呢?
public static void add(int a,int b){
if (a==0)
{
return;//结束一个函数
}
System.out.println("总和:"+(a+b));



public static String getGrade(int score){//未知的参数定义在形参中,由函数调用者确定
if (score>=90&&score<=100){
return"A等级";
}else if (score>=80&&score<=90){
return"B等级";
}else if (score>=70&&score<=80){
return"C等级";
}else if (score>=60&&score<=70){
return"D等级";
}else if (score>=0&&score<=59){
return"E等级";
}else{
return"补考等级";
}
}
}



/*
需求:定义一个函数做加法功能。
函数的重载:在一个类中出现两个或两个以上的同名函数,这个称作为函数的重载。
函数的重载的作用,同一个函数名可以出现了不同的函数,以应对不同个数或者不同数据类型的参数


函数重载的要求:
    1.函数名一致。
2.形参列表不一致(形式参数的个数或者是对应的数据类型不一致)
3.与函数的返回值类型是无关的。
*/


class Demo3 
{
public static void main(String[] args) 
{
add(1,2);
}
//这些函数都是在做加法运算。
public static void add(int a,int b){
System.out.println("两个参数的总和:"+(a+b));
}


//与函数的返回值类型无关。所以属于重复定义函数,不是函数重载
public static int add(int a,int b){
System.out.println("两个参数的总和:"+(a+b));
return a+b;
}






/*
//函数的重复定义


public static void add(int a,int b){
System.out.println("两个参数的总和:"+(a+b));
}




public static void add(int a,int b,int c){
System.out.println("三个参数的总和:"+(a+b+c));
    }


    public static void add(int a,int b,int c,int d){
System.out.println("四个参数的总和:"+(a+b+c+d));
}
*/


}