A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白衣卿相 中级黑马   /  2015-7-25 21:23  /  181 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

函数:
    针对很多操作相同的代码,我们也是可以提取操作。可以提高代码的复用性和维护性。
    这种东西在Java语言中叫做:函数。(推荐:方法)

    函数:
        定义在类中,具有特定功能的一段小程序。

    格式:
        修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
        {
                执行语句;
                return 返回值;
        }

    解释:
        修饰符:public static
        返回值类型:这段程序最终返回的结果的类型。
        函数名:其实就是函数的名称,方便调用。
        参数:
            参数类型:其实就是数据类型。
            形式参数:就是接受实际参数的变量。(函数定义/声明的时候)
            实际参数:实际参与运算的那个变量。(函数调用的时候)
        实参:
            在主函数中调用一个函数时,函数名后面括弧中的参数。
                实参可以是常量、变量、表达式、函数等,但是它们必须具有确定的值,
            以便把这些值传给形参。
        形参:
            是在声明函数时使用的参数
            目的是用来接收调用该函数时传递的参数
            
            
        执行语句:就是按照正常的逻辑完成的功能代码。
        返回值:就是程序的结果。
        return 返回值:将来在哪里调用这个函数,那么,return就把结果返回到哪里。

    注意:
        A:函数与函数是平级关系,不能嵌套定义。
        B:函数只有被调用才执行。

    函数调用:具有明确返回值的函数的调用。
        A:单独调用。一般是没有意义的。
        B:输出调用。(测试)因为,我可能还需要对结果进行计算。所以,不够好。
        C:赋值调用。推荐方式。
                数据类型 变量名 = 函数名(实际参数);
        
    函数是怎么结束的?
        函数其实是有关键字return让他结束的。
        注意:void类型的函数,其实最后一行。默认有一个return;
        (return后面不能有语句,因为无法访问)
            
    函数重载:   
        定义:   
            在很多时候,我们的功能可能是相同的,但是参数可能不同。
            如果起不同的名字,当然是可以的。
            但是,又由于函数的名字 -- 见名知意。
            所以,很多时候,我们必须用一个有意义的名字。
            在这种情况下,Java就提供了一种机制:函数重载。
        特点:
            函数名相同,参数列表不同。(个数,对应的类型)
            与返回值类型无关。

        注意:
            永远建议,写的什么类型的形式参数,你就应该用什么类型的实际参数调用。
            如果实际类型是小的,形式类型是大的。可以。反之不行。
        
        
        
        
数组:

    数组:就是存储多个同一种数据类型元素的容器。
         (就是存储同一种类型数据的容器。)

    好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
          索引。

    格式:
        元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
        示例:int[] arr = new int[5];
        
        左边:
            int:表示数据的类型。
            []:表示这是一个数组。
            arr:数组的名字。
        右边:
            new:申请内存空间。
            int:表示数据的类型。
            []:表示这是一个数组。
            5:数组的长度。   
        System.out.println(arr);
            [I@7f4ec
        我要获取第一个元素,肿么办?
        通过索引获取。格式:数组名[索引]   
   
    内存结构:
        栈内存:用于存储局部变量,或者方法的执行
                当数据使用完,所占空间会自动释放。
        堆内存:数组和对象,通过new建立的实例都存放在堆内存中。
                每一个实体都有内存地址值
                实体中的变量都有默认初始化值
                    (整数:0;浮点数:0.0;字符型:'\u0000';布尔型:false)
                实体不在被使用,会在不确定的时间内被垃圾回收器回收
        方法区:方法,String常量池,静态区。
        本地方法区:与系统相关的方法
        寄存器:由cpu执行
        【注】:
            局部变量:定义在方法中或者方法声明上的形参都叫局部变量。
            
        
    数组的定义方式:
        方式1:
            数据类型[] 变量名 = new 数据类型[个数或者长度];

            举例:
                int[] arr = new int[5];
        方式2:
            数据类型[] 变量名 = new 数据类型[]{元素1,元素2,元素3...};
            (作为实际参数直接传递,用这种方式)
            举例:
                int[] arr = new int[]{1,2,3,4,5};
        
        【注】:
            针对方式1,其实还有一种类似的情况。(不推荐)
                int arr3[] = new int[5];
            针对方式2,也有一个类似情况。我也喜欢这个。
                int[] arr4 = {1,2,3,4,5};
                右边隐含了 new int[]
        
    数组操作的常见问题:
        A:数组越界异常。你访问了不存在的索引。
            ArrayIndexOutOfBoundsException
        B:空指针异常。一个实例(对象)已经不存在了,你还去访问它的内容。
            NullPointerException

    数组遍历:
        定义:
            把数据存储起来就是为了使用,而要使用数组中的数据,就必须通过索引。
            获取数组中的所有元素--数组遍历。
            
        获取数组的长度:
            Java提供了一个属性:length
            格式:数组名.length    记着。
                System.out.println(arr.length);//5
                System.out.println(arr2.length);//16
    获取最值:
    查找:
   
    一维数组:
        23,65,71,92,46

    二维数组:
        其实就是元素是一个一维数组。
        索引:角标,下标,编号。
        格式:
            方式1:
                int[][] arr = new int[3][2];
            解释:
                定义了名称为arr的二维数组
                二维数组中有3个一维数组
                每一个一维数组中有2个元素
                一维数组的名称分别为arr[0], arr[1], arr[2]
                给第一个一维数组1索引位赋值为78写法是:arr[0][1] = 78;   
            
        二维数组定义格式:
            方式1:
                int[][] arr = new int[3][2];
                标准的二维数组
                规则的矩形。

            方式2:
                int[][] arr = new int[3][];
                    二维数组中有3个一维数组
                    每个一维数组都是默认初始化值null
                    可以对这个三个一维数组分别进行初始化
                    arr[0] = new int[3];
                    arr[1] = new int[1];
                    arr[2] = new int[2];
                非规则的矩形。
            方式3:
                int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};   
            
        二维数组的遍历
        
        思路:
            A:二维数组的每一个元素是一维数组。
                获取到每一个一维数组。
            B:一维数组的遍历我们讲过了。   
            
            arr.length 获取二维数组的长度,其实也就是一维数组的个数
            arr[x].length 获取的是每一个一维数组的长度
            arr[x][y] 获取的是二维数组的元素   

6 个回复

正序浏览
谢谢楼主~
回复 使用道具 举报
赞一个:lol
回复 使用道具 举报
对于我这种小白来说,你就是大神:lol
回复 使用道具 举报
飘过飘过,温故而知新,赞
回复 使用道具 举报
晨曦遇晓 发表于 2015-7-25 21:25
很好很强大 非常不错

谢谢亲,捧场。。。
回复 使用道具 举报
很好很强大 非常不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马