Java基础中的方法和数组


活动地址:CSDN21天学习挑战赛


在这里插入图片描述

一.方法

1.方法
  • 在Java中,使用{}代码块,将我们的业务逻辑进行实现,给{}起一个名字,就是方法.
2.方法的格式
  • 在Java中,定义方法的格式(有两种)

    • 第一种:

      •      有具体返回值的方法定义
        
    • 格式

       public static 返回值类型  方法名(形式参数类型1 参数名1,形式参数类型2 参数名3....){
      
      	//业务逻辑进行实现
      
      	return 具体的结果;
      
      }
      
    • 解释说明

      •      public:权限修饰符:公共的公开的/访问权限足够大
        
      •      static:静态修饰符(面向对象中)
        
      •      返回值类型:就是数据类型,现在只学习了基本数据类型,
        
      •      方法名:满足标识符的规范 :方法名和变量名, "小驼峰命名法"
        
      •      一个单词:字母小写
        
      •      多个单词:第一个单词字母全部小写,从第二个单词开始,每一个单词首字母大写,其余小写
        
    • 调用方法

      • 赋值调用 接收的结果类型 变量名 = 方法名(实际参数1,实际参数2,…) ;(推荐)
    public class FunctionDemo {
        public static void main(String[] args) {    
    
            //赋值调用
            int c = add(10,20) ;
            //中间有其他逻辑,再次使用c变量
            System.out.println("两个数据求和结果是:"+c);    
        }
        //定义一个方法:求和的方法,  两个数据
        /*心中两个明确:
          a)明确方法返回值类型  int
          b)明确形式参数类型以及参数个数
                两个参数:都是int */
            public static int  add(int a,int b){
                //方法的业务逻辑:求和的方法,  两个数据
                //return  a +b ; //直接返回a+b的结果
                //将a和b的结果赋值给一个变量
                int result = a +b ;
    
                return result  ;
            }
    
    }
    

定义方法的注意事项

  • 方法和方法是平级关系,不能够在一个方法中定义另一个方法,只能在一个方法中调用另一个方法
  • 在定义方法的时候,方法中的形式参数必须带上数据类型,因为Java是一个强类型语言
  • 调用方法的时候,实际参数不需要带数据类型
  • 在定义方法的时候,有{的地方不能分号;,有分号;的地方不能{
  • 有具体返回值类型的方法,必须要携带return,否则会报错
public class FunctionDemo2 {

    //main方法
    public static void main(String[] args) {

        //调用sum方法
        double a = 12.0 ;
        double b = 13.5 ;
       // double result = sum(double a, double b);//实际参数不能带数据类型了
        double result = sum( a,  b);//实际参数   它就是调用者
        System.out.println("result:"+result);
    }

    //两个数据求和的功能
    //返回值double
    //两个参数,都是double

    public static double sum( double x ,double y){
        double result = x+ y ; //求和
        return result ;
    }
}

  • 在Java中,定义方法的格式(有两种)

    • 第二种

      • 没有具体返回值类型的方法定义和调用
    • 格式

      public static void  方法名(形式参数类型1 参数名称1,形式参数类型2 参数名2,....){
      				//业务逻辑进行实现
          
      }
      
  • 调用方法

    • 单独调用
    • 举例NN乘法表
public class FunctionDemo {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in) ;

        //提示并录入数据
        System.out.println("请输入一个数据(1-9):");
        int num = sc.nextInt() ;

        //单独调用
        printNN(num); //8      
    }
    /**
     * 定义 方法两个明确
     *  1)明确返回值类型: java提供关键字 void
     *  2)明确参数类型以及参数个数
     *          int类型  1个参数
     */
    public static void printNN(int n){//8
        for(int x = 1 ;x<=n;x++)  { //外层控制行数
            for(int y =1 ; y <=x ;y++){              //内层循环控制列数,列数随着行数的变化  第一行,1列,第二行,2列....
                System.out.print(x+"×"+y+"="+(y*x) +"\t"); //不换行
            }
            System.out.println(); //换行
        }
    }
}
3.方法重载(补充)
  • 为了某个功能扩展性,多个方法方法名可以相同(完全相同),参数列表不同,与返回值无关

    • 参数列表不同
    • 参数个数不同
    • 参数类型不同
    • 参数类型的顺序
  • 举例

    /**
     * 需求:比较两个数据是否相等
     *
     * 满足2个类型,
     *      两个int类型进行比较
     *      两个double进行比较
     */
    public class OverLoadTest {
        public static void main(String[] args) {
            //定义两个变量
            int a = 10 ;
            int b = 20 ;
            double x = 12.56 ;
            double y = 12.56 ;
            //重载方法
            boolean flag = compare(a, b);
            boolean flag2 = compare(x, y);
            System.out.println(flag) ;
            System.out.println(flag2) ;
        }
        //两个int类型进行比较
        public static boolean compare(int a,int b){
            return  a==b ;
        }
        //两个double类型进行比较
        public static boolean compare(double a,double b){
            return  a==b;
        }
    }
    

二.数组

数组
  • Java中数组就是容器,这个容器 “只能存储同一种类型的元素”

  • 在数组中定义格式

  • 动态初始化

    • 动态初始化:自己定义数组的长度,数组的元素有系统(jvm)默认分配

    • 格式

      •              数据类型[] 数组名称  = new 数据类型[数组长度] ; (推荐第一种)
        
      •              数据类型 数组名称[]  = new 数据类型[数组长度] ; 
        
    • 举例

                           int[] arr      = new  int[7] ;
                           int arr[]      = new  int[7] ;
      
  • 静态初始化

    • 静态初始化:直接我们自己给定的了元素内容,数组的长度由系统默认分配

    • 格式

      • 原生的格式写法:

        •      数据类型[] 数组对象名 = new 数据类型[]{元素1,元素2,元素3.....} ;
          
        •      数据类型 数组对象名[] = new 数据类型[]{元素1,元素2,元素3.....} ;
          
      • 举例

         int[] arr = new int[]{1,2,3} ;
         int arr[] = new int[]{1,2,3} ;
        
      • 静态初始化的简写格式

        •       数据类型[] 数组对象名 = {元素1,元素2,元素3.....} ; (推荐的写法)
          
        •       数据类型 数组对象名[] = {元素1,元素2,元素3.....} ;
          
      • 举例

          int[] arr = {1,2,3} ;
          int arr[] = {1,2,3} ;
        
  • 补充:

    • jvm的内存分配
      •      栈内存 :存储的就是局部变量
        
      •      堆内存 :以后 new出来的东西都在堆中  (new :创建对象)
        
      •      方法区 :
             *          xxx.class :字节码文件区域
             *          static区域
             *          常量池区域.
        
      •      寄存器  --  cpu和系统相关的    
        
      •      本地方法区  --  cpu和系统相关的
        
  • 举例

    • 已知一个数组:静态初始化,现在需要把数组的元素遍历出来
    • 遍历:将数组的元素一一打印出来
    • int[] arr = {24,87,56,17,13.35,78,86} ;
public class ArrayTest {
    public static void main(String[] args) {
        int[] arr = {24,87,56,17,13,35,78,86} ;
        //调用方法遍历
        printArray(arr);
    }
      public static void printArray(int[] array){ //形式参数
        System.out.print("[");  //[元素1, 元素2,,,
        //遍历array数组
        for(int x =0 ; x < array.length ; x ++){ //x角标
            //这个角标如果取到了最大角标----  最后一个元素 ,直接输出这个元素内容同时拼接 右]
            if(x== array.length-1){
                System.out.println(array[x]+"]");
                            // 最后一个元素]
            }else{
                //如果不是最后一个角标----  取到的中间的元素,直接输出元素的内容 同时拼接 ", "
                System.out.print(array[x]+", ");
            }

        }

    }
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

In-Deep

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值