数组与方法

本文探讨了Java编程中的关键概念,包括数组的动态和静态初始化,元素访问,索引越界和空指针异常处理;接着深入讲解了二维数组的定义、动态初始化及杨辉三角示例;最后介绍了方法的定义、调用,参数传递,以及方法重载的应用。适合初学者快速上手。
摘要由CSDN通过智能技术生成


前言

基于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)方法重载的运用:

多个方法在同一个类中。 
多个方法具有相同的方法名。 
多个方法的参数不相同,类型不同或者数量不同。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了数组和方法的一些基本概念和用法,更多的内容需要结合教材学习。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值