文章目录
前言
基于Java的编程
以下是本篇文章正文内容,下面案例可供参考
一、数组
1. 定义
数组是存储多个相同类型数据的集合。
2. 格式
数据类型 [ ] 变量名
示例:int [] arr
3. 数组初始化的方式
(1)动态初始化
定义:在初始化数组时只给定数组的长度,不给定具体的数值。
格式:数据类型[] 变量名=new 数据类型[数组长度]
代码如下(示例):
int[] arr=new int[5];
(2)静态初始化
定义:在初始化数组时不给定数组的长度,给定具体的数值,让计算机自己算出长度。通常会用到length,具体用法见下面。
代码如下(示例):
int[] arr={1,2,3,4,5,6};
int a=arr.length;//这个就是求长度的代码
两者初始化的区别:在定义的时候是否写出具体的长度。
4. 数组的元素访问
数组变量访问:数组名
数组內部数据的访问:数组名[索引]
索引是数组中数据的编号方式
作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
特征①:索引从0开始
特征②:索引是连续的
特征③:索引逐一增加,每次加1
5. 内存分配
栈内存:存储局部变量,定义在方法中的变量,例如:arr;使用完毕,立即消失
堆内存:存储new出来的内容(实体,对象)
数组在初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:null
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收
6. 数组操作的两个常见小问题
(1)索引越界
代码中访问的索引超出范围;
代码如下(示例):
int[] arr={1,2,3,4,5,6};
int a=arr[6];错误
int b=arr[1];//0~5都可以
(2)空指针异常
访问的数组已经不指向之前的堆内存的数据
代码如下(示例):
int[] arr = new int[3];
System.out.println(arr[2]);//把 null赋值给数组
arr = null;//输出元素
System.out.println(arr[0]);
二、二维数组
1. 定义
存储多个一维数组。
2. 格式
数据类型 [ ][ ] 变量名
示例:int[][] arr
二维数组的声明有多种;例如,int[][] y;int[] y[]; int y[][]
3. 输出二维数组
代码如下(示例):
int[][] arr={{1,2,3},{4,5,6}};
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();//换行
}
4. 二数组的动态初始化
格式:数据类型 [ ][ ] 变量名=new 数据类型[ ][ ]
代码如下(示例):
int[][] arr=new int[5][5];
注意:每次都要判断(int[ x ][ y])中x是否存在。判空的操作。
5. 实例:杨辉三角
代码如下(示例):
public class project1 {
public static void main(String[] args) {
int yanghui[][]=new int[10][];
for (int i=0;i<yanghui.length;i++){
yanghui[i]=new int[i+1];
for (int j=0;j<yanghui[i].length;j++){
if (j==0||j==yanghui[i].length-1){
yanghui[i][j]=1;
}else {
yanghui[i][j]=yanghui[i-1][j]+yanghui[i-1][j-1];
}
}
}
for (int i=0;i<yanghui.length;i++){
for (int j=0;j<yanghui[i].length;j++){
System.out.print(yanghui[i][j]+" ");
}
System.out.println();
}
}
}
三、方法
1. 定义
将具有独立功能的代码组织成为一个整体,使其具有特殊功能的代码集。
2. 格式
public static void 方法名(){
//方法体
}
3. 方法的调用
格式:方法名();
例如:arr();
方法必须是先定义后调用,否则程序报错。
(1)带参数的方法
格式:
public static void 方法名(参数){…}
单个参数:public static void 方法名(数据类型 变量名){…}
多个参数:public static void 方法名(数据类型 变量名1,数据类型 变量名2,…){…}
调用:方法名(参数)
(2)带返回值的方法
格式:
public static 数据类型 方法名(参数){
return 数据;
}
调用:数据类型 变量=方法名(参数);
3. 方法重载
(1)定义
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
(2)方法重载的运用:
多个方法在同一个类中。
多个方法具有相同的方法名。
多个方法的参数不相同,类型不同或者数量不同。