Java之函数概念理解及练习

Java函数概念理解

在C/C++/Python当中 函数的定义必须在函数调用之前在Java当中 随便 之前 之后

                函数格式
访问权限 函数类型 返回值类型 函数名(参数列表){
                 函数体
             return  返回值;
            }
  • 函数名:就是程序员给这一段代码自定义的名称(标识符)
  • 参数列表:参数列表有若干个 参数类型,参数名… 组成 主要用于接收外界传递给函数的一些数据
  • 函数体:就是那些具有独立功能的代码块
  • return:仅仅表示结束当前函数,如果有返回值,则函数结束前将返回值返回给调用者
  • 返回值:指的就是这一具有独立功能的代码块的计算结果,需要传递给外界 配合return
  • 返回值类型:就是返回值的数据类型(可兼容)

下来我们来解读一下Java我们写入的
public static void main(String[] args){
中各个单词所代表的含义

class Test01{
    public static void main(String[] args){
    //public  主函数是公开权限 最大权限
    // static 主函数是静态函数
    //void   该函数没有返回值
    //string[] String[] 表示的是一个字符串数组(数据类型)
    //args 就是这个数据类型的变量名称
    System.out.println("来了老弟~");
    }
 }

***

注:

发现return不在,而是因为函数没有返回(void), 所以return可以忽略不写, 不代表不存在,return本身代表结束当前函数。
如果函数有返回值 return 返回值; 必须写


**1.函数定义:**函数主要解决的是那些重复的且具有独立功能的代码段,将这些具有独立功能的代码可以进行再次封装 封装出来的东西就成为是函数。
2.函数存在的意义:很明先的优势,降低了代码冗余复用函数即可,降低了主函数的代码量,将主函数进行适当的拆分,以便内存优化。就是将函数模块化。
3.访问权限:指的就是函数的使用范围(内部和外部) :
public 主函数是公开权限 最大权限,
protected ,默认不写,private ,四种从公开的到私有。
**4.函数类型:**指的就是函数类型分类,说的就是函数的具体使用场景和场合.

  1. static 静态函数
  2. 默认不写 成员函数
  3. abstract 抽象函数
  4. native 本地函数
  5. synchronized 同步函数

5.函数的分类
1.有返回值有参数
2.有返回值无参数
3.无返回值有参数
4.无返回值无参数
注:有返回值的函数,参与运算、输出、赋值
无返回值的函数,仅仅调用
6.函数传参
1.实际参数-实参:就是在调用函数的时候,给函数传递的数据(常量,变量)叫做实参
2.形式参数-形参:就是定义函数的时候,参数列表当中的数据,叫做形参。

那到底实参把什么东西传递给了形参----常量在常量池中的地址,常量在常量池中的地址
3.局部变量:但凡是在函数中创建的变量 称之为是局部变量 局部变量的作用域仅仅在当前的函数当中,形式参数一定是局部变量
7.函数栈:函数的运行是基于栈内存的,
栈是一个先进后出的一个容器结构,子弹按顺序123456进栈,按顺序出栈654321。
可以将每一个函数理解为是子弹(函数帧/栈帧),位于栈顶的函数帧优先运行的,主函数绝对是第一个进栈的。
return结束当前函数 -> 当前函数弹栈。

class Demo04_01{   
  public static void main(String[] args){       
    //1.先输入一个数字    
    Scanner scanner=new Scanner(System.in);      
    System.out.print("请输入一个数字:");
    long num=scanner.nextLong();     
   //2.调用函数将num拆分求和       
    int sum=sumDigits(num);      
    System.out.println(sum);  
  }   
  public static int sumDigits(long n){      
     int sum=0;      
     while(true){         
        sum+=n%10;            
        n/=10;      
        if(n==0){          
              return sum;        
        }     
      }
   }
}

import java.util.Scanner;
class Demo04_02{  
   public static void main(String[] args){       
    //1.提示用户输入一个数字       
   Scanner scanner=new Scanner(System.in);        
   System.out.print("请输入一个数字:");        
   int num=scanner.nextInt();        
   //2.判断该数字是否是一个回文        
   if(isPalindrome(num)){  // pause1            
       System.out.println("是回文");        
   }else{            
       System.out.println("不是回文");        }        
   //return ;   
 }    
  public static boolean isPalindrome(int num){        
  //1.先计算该数字的反序        
  //2.对比反序的数字和数字本身                
  //pasue 2        
      return reverse(num)==num;    
   }    
   public static int reverse(int num){        
   int sum=0;        
   while(true){                          
        sum=sum*10+num%10;            
        num/=10;         
        if(num==0){                
        return sum;           
        }        
      }  
   }
}


class Demo04_06{    
public static void main(String[] args){        
    int count=0;    //表示回文素数的个数        
    int num=2;      //表示可能的回文素数的数字 从2开始~?        
    while(true){            //如果num是 回文素数            
       if(isHuiWenAndSuShu(num)){                
           count++;                
           System.out.print(num+" ");                
           if(count%10==0){                    
               System.out.println();         
       }         
   }           
       if(count==100){        
             break;       
       }         
       num++;     
  }   
}    
public static boolean isHuiWenAndSuShu(int num){       
      return isHuiWen(num)&&isSuShu(num);  
 }  
public static boolean isHuiWen(int num){        
      return reverse(num)==num;    
      }    
public static int reverse(int num){  
      int sum=0;       
      while(true){            
           sum=sum*10+num%10;            
           num/=10;           
           if(num==0){                
               return sum;            
           }   
      }
         
  }    
public static boolean isSuShu(int num){       
    for(int i=2;i<=num/2;i++){         
       if(num%i==0){             
          return false;          
        }   
     }    
         return true;  
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值