学习笔记-基础知识3-函数与数组

1.函数(方法)
函数是一组为了实现特定功能的可重复使用的代码块的集合。
函数的功能主要有以下两个:
a.结构化代码
b.减少代码重复
函数在书写时需要注意两点:逻辑严谨,通用性强(可重复利用)

2.函数的格式:
[修饰符] 返回值类型方法名([参数类型形式参数1,参数类型形式参数2,……])
{
执行语句; [return 返回值;]
}
参数列表(参数的类型,参数的个数,参数的顺序)
只要上述有一个不一样,那么这个参数列表就不一样。

3.函数里的属性
访问控制符:访问控制符限定方法被调用的范围。
按范围从大到小依次是:public、protected,无访问控制符,private。
形式参数:在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。
返回值:方法在执行完毕后返还给调用它的环境的数据。
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回类型void。
方法签名:方法名和方法的参数列表(能区别方法);
java语言中调用方法:对象名.方法名(实参列表)。

4、函数特点
可以实现独立的功能;
必须定义在类里面;
只有被调用才会执行;
可以被重复使用;
函数结束后函数里的对象失去引用;
!!如何定义一个功能,并通过方法体现出来:
明确该功能运算后的结果.明确返回值类型;
明确在实现该功能过程中是否有未知内容参与运算,确定参数列表;

5.方法的重载(Overload)
重载:在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同(参数个数或参数类型或参数顺序)。
存在的原因:屏蔽了一个对象的同一类方法由于参数不同所造成的差异。
特点:与返回值类型无关,只看参数列表。
注意:方法重载和方法覆写不同:方法覆写的方法名和参数列表都必须一样

6.可变参数
从java5开始出现了可变参数
可变参数:方法中可以接受的参数是随着具体需求传递的多少来决定。
定义格式: 返回值类型方法名(参数类型… 形式参数){ }
可变参数的特点:只能出现在参数列表的最后;

7.数组
数组(Array)就是一组数的集合,目的是用来一次存储多个数据。
数组的好处:数组里的每个元素都有编号,编号从0 开始,并且依次递增,方便操作这些元素;
使用Java数组:必须先声明数组,再给该数组分配内存;
数组对应在内存中一段连续空间。
数组元素必须是相同数据类型,也可以是引用数据类型,但是同一个数组中的元素必须是同一类数据类型。

8.一维数组
一维数组:可以理解为一列多行、类型相同的数据;
声明方式:type arr[]; type[] arr;(推荐)
数组的长度一旦确定,就不能改变,也就数组是定长的;
声明数组的时候不能指定其长度(元素的个数)
初始化:数组必先初始化才可以使用。
初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;
数组初始化的两种方式:
静态初始化:初始化时指定每个数组元素的初始值,由系统决定需要的数组长度;
格式:数组名= new 数组类型[]{元素1,元素2,元素3…元素n};
简化:数组名= {元素1,元素2,元素3…元素n};
动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;
格式:数组名= new 数组类型[数组长度];
注意:
不能静态和动态初始化同时使用,也就是说不能同时指定数组的长度和元素;

数组的使用:
    数组索引是从0 开始的,也就是说数组里的第一个元素的索引是0,第二个元素的索引是1,依次可以类推。
    常见操作:
        给数组元素赋值:数组名[索引] = 数组类型的值;
        访问数组元素:数组类型变量= 数组名[索引];
        得到数组的长度:int len = 数组名.length; 
        遍历数组:length属性和循环语句
        数组元素的索引范围:0,长度—1
    例题:判断数组是否重复
        求最大值
            经典用法:冒泡法排序

9.二维数组:
二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组),
初始化:
动态初始化
int[ ][ ] arr = new int[3][2];
定义了一个二维数组,其中有3个一维数组,每一个一维数组中有2个元素
静态初始化
int[ ][ ] arr = new int[][]{{1,2},{3,4},{5,6}};
int[ ][ ] arr = {{1,2},{3,4},{5,6}};

10.操作数组的工具类-Arrays
static int binarySearch(type[] a, type key)
搜索key元素在数组中的索引;若a数组不包括key,返回负数。(该方法必须已按升序排列后调用)。
static int binarySearch(type[] a, int fromIndex, int toIndex, type key)
搜索key元素在数组中从fromIndex 到toIndex 的索引;若a数组不包括key,返回负数。(该方法必须已按升序排列后调用)。
static boolean[] copyOf(type[] original, int newLength)复制指定的数组见下面备注
static byte[] copyOfRange(type[] original, int from, int to)将数组的指定范围复制到一个新数组。
static boolean equals(type[] a, type[] a2) 如果两个数组长度相等和元素一一相等,则返回true
static void fill(type[] a, type val) 将a数组所有元素都赋为val。
static void fill(type[] a, int fromIndex, int toIndex, type val) 将a数组从formIndex 到tiondex 索引之间的元素都赋为val。
static void sort(type[] a) 对指定的数组按数字升序进行排序。
static void sort(type[] a, int fromIndex, int toIndex)对指定数组的从formIndex 到tiondex 索引之间的元素按数字升序进行排序。
static String toString(type[] a) 返回指定数组内容的字符串表示形式。多个数组元素之间用英文逗号或空格隔开。

11.Java5 新特性对数组的支持:
增强for循环→ for-each
for (参数类型 参数名: 数组名) {
代码块
}
for-each用于数组和Iterable对象!在集合学习中会经常用到for-each循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值