循环结构加强
for(初始化语句;条件表达式;初始化语句的改变){
for(初始化语句;条件表达式;初始化语句的改变){
循环体语句;
}
}
//外层for执行的较慢,内层for执行的较快。外层执行一次,内层for就会全部执行完毕
- \t 八个字符
方法
将实现某个功能的代码封装在一个大括号中,并且给这个大括号起一个名字,以后使用的时候,只需要同过一个特殊的符号调用即可。
格式
修饰符 返回值类型 方法名(参数列表){
方法内容;
return 返回的内容;
}
/*
格式的解释:
1. 修饰符:目前来说,修饰符默认为public static
2. 返回值类型:方法在完成某个功能之后,应该会有相应的数据返回,这个返回值类型就是返回的数据类型
3.方法名:相当于之前的变量名,要做到见名知意。命名的时候尽量符合命名规范。[第一个单词全部小写,从第二个单词开始,首字母大写(getMax())]
4.参数列表:方法在完成功能之前,所需要的原料,这个原料的种类、个数、次序都有可能不一样。参数列表就是用来限定他们的(总结:参数列表就是用来接收外部传过来的数据)
5.方法内容:实现相应功能的代码
6.return:一个关键字,用来返回方法完成功能后,结果就是用return来返回的。执行return后方法结束。无返回值的return可以省略,有返回值的return中数据类型要与返回值类型一致。
*/
调用
方法不调用就不会执行
形式参数:声明在方法上小括号中的参数,用于告诉方法调用者,我需要什么参数,什么类型的,有多少个参数。(总结:只声明好变量,但是自己本身并不产生数据)
实际参数:方法在调用的时候,传入的实际的值,这个值是最后会被方法上的形式参数所接收并且被方法使用。
public static int sum(int a,int b){
int result = a + b;
return result;
}
//直接调用
sum();
//输出调用
System.Out.Println(sum());
//赋值调用
int a = sum();
注意事项
- 方法之间顺序没有影响,平级的存在
- 如果有明确的返回值,那么return一定要被执行到
没有返回值方法的调用
没有明确返回值的方法就是返回值类型为void的方法
- 直接调用
通过方法调用,输入指定的参数,实现某种功能
方法重载
定义:在同一个类中,方法名相同,参数列表不同,与返回值类型无关
@overload
参数列表不同的几种情况
- 参数的个数不同
- 参数的类型不同
- 参数的个数和类型不同,但是他们的前后顺序不同
数组
存储相同数据类型的多个元素的容器
声明
数据类型[] 数组名 = {数据,数据1};
数据类型[] 数组名 = new 数据类型 [数组的长度]
数据类型:就是前面讲过的数据类型,可以是基本的数据类型,也可以是引用的数据类型
[]:表明了这是一个一维数组
数组名:就是一个名字
=:将等号右边创建出来的内容的地址赋值给了左边的数组名
new:关键字,用来在堆上开辟一个新的空间
数据类型:同上
数组的长度:就是数组中装的元素的个数
数组名打印出来的内容
[I@5ebec15
[ : 表明了这是一个一维数组
I : 表明了这是一个int类型
@ : 一个固定的符号'@'
2d363fb3 : 是一个16进制的数,是数组的地址值的hashcode值的16进制的表示形式。(所以可以认为是地址值)
数组的初始化
数组元素的获取
格式:数组名[索引]
索引也被称为下标、角标:一般都是从0开始,数组中就是从0开始,每一个索引都对应一个数据
动态初始化
动态初始化就是先声明好一个数组,然后再通过 数组名[索引] 方式给数组赋值。
数据类型[] 数组名 = new 数据类型[数组的长度]
静态初始化
//方式一
数据类型[] 数组名 = {数据,数据1};
//方式二
数据类型[] 数组名 = new 数据类型[] {数据,数据1};
数组常见的两种异常
- 数组索引越界异常[ArrayIndexOutOfBoundsException]
访问的时候,超过了原有元素索的界限。
- 空指针异常[NullPointerException]
平常数组访问其中内容的时候,都是通过一个地址来进行访问的,但是要是数组名的值为null的话,那就访问不到这个数组了,所以就报了空指针异常。

评论 0
还没有评论,来说点什么吧。