day07:二维数组_面向对象

守給你的承諾、 提交于 2020-01-02 23:57:28

今日学习内容罗列:

 

一、二维数组


1、二维数组的概念:
             二维数组的元素就是一个一维数组,以及一维数组对应的长度
2、定义格式:        
         1)动态初始化
               格式1:
                数据类型[][] 数组名称 = new 数据类型[m][n] ; (推荐第一种)
                数据类型 数组名称[][] = new 数据类型[m][n] ;
                      举例:
                          int[][] arr = new int[3][2] ;
                      解释:
                           等号左边:
                                int:表示一个int类型
                                [][]:表示定义二维数组
                                arr :数组名称
                          等号右边:
                                new :在堆内存中创建对象
                                int :创建int类型数组
                                [3] :表示当前二维数组中有3个一维数组
                                [2] :这三个一维数组中每一个都有2个元素
                   格式2:          
                         数据类型[][] 数组名称  =new 数据类型[m][] ;
                              举例:
                                    int[][] arr = new int[3][] ;
                         当前二维数组中有m个一维数组,但是没有给定每一个一维数组的长度,长度可以动态给定!

           2)静态初始化
               基本格式:
                      数据类型[][] 数组名称 = new 数据类型[][]{{元素1,元素2..},{元素1,元素2...},{元素1,元素2...}...} ;
               简写格式
                      数据类型[][] 数组名称 = {{元素1,元素2..},{元素1,元素2...},{元素1,元素2...}...} ;
                      举例: int[][] arr = {{1,2,3},{4,5,6},{7,8,9}} ;

二、面向对象


1、类和事物的关系::


学生事物    (概括)
        有哪些属性:    姓名,年龄,身高,性别,学号...
        有哪些行为: 学习...,打游戏....       
学习编程语言,是为了描述现实世界的事物,
学习的Java语言,是一种面向对象语言, Java中最基本 单元----->类
需要使用编程语言描述当前事物

简言之,类和事物可以对应起来!

2、面向对象的定义:


一句话:万物皆对象
        其特点是:
                   1)更符合生活中的思想行为习惯
                   2)让复杂的事情简单化
                   3)让我们从执行者变成指挥者

          其特征是:

                   封装     继承     多态

三、tips


2.数组中两个常见的异常:

        1)异常:(架构体系:了解)
                Throwable 类 :
                    error: 严重错误,无法直接解决  (内存溢出),可以通过第三方的技术避免!
                    Exception:表示程序异常了
                        RuntimeException:运行时期异常
                        不是RunTimeException异常,编译时期异常

        2)两种异常:

                 a、ArrayIndexOutOfBoundsException:数组角标越界异常 (运行时期异常)
                                出现这个异常的原因:访问了数组中的不存在的角标
                  b、NullPointerException:也属于运行时期异常
                                出现异常的原因:对象都不存在了或者为null,还有通过对象访问数组中的元素值,肯定出现问题
                                如何解决: 针对当前对象进行非空判断

2.形式参数问题:

    方法的形式参数如果是一个基本数据类型,形式参数的改变对实际参数没有影响!    
    方法的形式参数如果是引用数据类型,形式参数的改变会直接影响实际参数!

   举例:
      基本数据类型:
        class ArgsDemo{
            public static void main(String[] args){
                int a = 2 ;
                int b = 3 ;
                System.out.println("调用方法前a的值是:"+a+",b的值是:"+b) ;
                change(a,b) ;
                System.out.println("调用方法后前a的值是:"+a+",b的值是:"+b) ;
            }
            public static void change(int a,int b){    
                a = b ;
                b = a+ b;
            }
        }
        
        运行后,结果是:
            调用方法前a的值是:2,b的值是:3
            调用方法后a的值是:2,b的值是:3
            
       引用数据类型:
         class ArgsDemo{
            public static void main(String[] args){
                int[] arr = {1,2,3,4,5} ;
                System.out.println("调用方法前的值是:"+arr[1]);
                change(arr) ;
                System.out.println("调用方法后的值是:"+arr[1]) ; 
            }
            public static void change(int[] arr){
                for(int x = 0 ; x < arr.length ; x ++){
                    if(arr[x]%2 ==0 ){
                        arr[x]*=2 ;
                    }
                }
            }
        }
        运行后,结果是:
            调用方法前的值是:2
            调用方法后的值是:4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!