黑马程序员——java基础——方法、数组、二维数组、参数传递

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

传智基础班第5天重点学习内容:Java基础——方法、数组;

 方法:

方法就是完成特定功能的代码块
在很多语言里面都有函数的定义
函数在Java中被称为方法

格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
    }

方法格式解释
修饰符 比较多,后面会详细介绍。目前public static
返回值类型 用于限定返回值的数据类型
方法名 一个名称,为了方便我们调用方法
参数类型 限定调用方法时传入参数的数据类型
参数名 是一个变量,接收调用方法时传入的参数
方法体 完成功能的代码
return 结束方法以及返回方法指定类型的值 
返回值 程序被return带回的结果,返回给调用者
       注意:
1:方法不调用,不执行
2:方法与方法是平级关系,不能嵌套定义
3:方法定义的时候参数之间用逗号隔开
4: 方法调用的时候不用在传递数据类型
5: 如果方法有明确的返回值,一定要有return带回一个值
6: 如果方法没有明确返回值,请使用void来表示方法返回类型
void空类型
定义一个变量的时候,不能定义void类型变量
7: 如果方法的返回值是void类型,那么该方法的return语句可以省略
要是想加的话, 请使用 return ;

如何写一个方法   

                     两个明确
          返回值类型 明确功能结果的数据类型
          参数列表 明确有几个参数,以及参数的类型
  方法重载
概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可

对某一个特定功能实现代码的封装 案例

class MethodDemo {

                    public static void main(String[] args) {

                                  /*//99乘法表

                           for (int i=1; i<=9; i++){

                            for (int j=1; j<=i; j++){

                           System.out.print(i+"*"+j+"="+i*j+"\t");

                           }

                           System.out.println();

                           }

                              //55乘法表

                          for (int i=1; i<=5; i++){

                          for (int j=1; j<=i; j++){

                           System.out.print(i+"*"+j+"="+i*j+"\t");

                          }

                           System.out.println();

                          }

                                //33乘法表

                          for (int i=1; i<=3; i++){ 

                          for (int j=1; j<=i; j++){

                             System.out.print(i+"*"+j+"="+i*j+"\t");

                         }

                             System.out.println();

                         }*/

                                  printNN(9);

                                  printNN(7);

                                  printNN(3);

}

           public static void printNN(int n){

                                      for (int i=1; i<=n; i++){

                                       for (int j=1; j<=i; j++){

                                            System.out.print(i+"*"+j+"="+i*j+"\t");

                                      } 

                                  System.out.println();

                                     }

 }

}

方法重载特点
与返回值类型无关,与参数名无关,只看方法名和参数列表
在调用时,JVM虚拟机通过参数列表的不同来区分同名方法

方法重载概述
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。


注意:
与返回值类型无关,只看方法名和参数列表, 与参数列表的名称无关
在调用时,虚拟机通过参数列表的不同来区分同名方法

   方法重载案例演示

class MethodDemo {

                      public static void main(String[] args) {

                                     System.out.println( getSum(5,6) );

                                     System.out.println( getSum(5.5, 3.3) );

                                     System.out.println( getSum(1,2,3) );

                    }

                              /*两个int整数求和

                                        返回值类型:

                                        int参数列表:

                                           int x, int y*/

                     public static int getSum(int x, int y){

                                     return x+y;

                      } 

                            /* 两个double小数求和

                                               返回值类型:

                                       double参数列表: 

                                      double x , double y*/

                     public static double getSum(double x, double y){

                                    return x+y;

                      } 

                          /*三个Int整数求和

                                    返回值类型:             

                                    int参数列表:  

                                          int x, 

                                           in y,

                                          int z*/

                          public static int getSum(int x, int y, int z){

                                      return x+y+z;

                             }

}


数组:

概念:数组是存储同一种数据类型多个元素的容器
  数组就是一个框,里面可以存储多个相同类型的元素
如何访问数组中的元素呢?
可以通过数组名下标的方式访问
格式: 数组名[索引]

数组的格式1:
数据类型[] 数组名;
数据类型 数组名[];

格式:数据类型[] 数组名 = new 数据类型[数组长度];


数组的格式2:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};


数组常见问题:
数组索引越界
ArrayIndexOutOfBoundsException
访问到了数组中的不存在的索引时发生。
空指针异常
NullPointerException
数组引用没有指向实体,却在操作实体中的元素时。




(重点) Java中的参数传递
实际参数:调用方法时,使用的参数就是实际参数,如下面的a,b
getMax(a,b);

int[] arr = {1,2,3};
change(arr);
形式参数:定义方法时,参数列表中的参数

                             public static int getMax(int x, int y){

                                             x = 200;

                                             y = 100;

                             }

                            public static void change(int[] arr){

                                    for (int i=0; i<arr.length; i++ ) {

                                                 arr[i] *= 2;

                                         }

                             }


结论:
如果调用方法时,使用的参数是基本数据类型的值
那么,形式参数(x,y)的改变 对 实际参数(a,b)没有影响

如果调用方法时,使用的参数是引用数据类型的值
那么,形式参数的改变 对 实际参数有影响

二维数组
概念:其实就是一个元素为一维数组的数组。
大框里 存放着多个小框,每个小框中存放着多个苹果

格式1:
数据类型[][] 变量名 = new 数据类型[m][n];

m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
int[][] arr = new int[3][2];


格式2:
数据类型[][] 变量名 = new 数据类型[m][];

m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3]
arr[2] = new int[1];

格式3:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

简化版格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
int[][] arr =  {{1,2,3},{4,6},{6}};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值