黑马程序员——Java基础(四)之方法、数组

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------

方法

概述:方法就是完成特定功能的代码块。相当于其他语言中的函数。

格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {

函数体;

return 返回值;

}

写方法时,要有两个明确:

返回值类型(明确功能结果的数据类型)

参数列表(明确有几个参数,以及参数的类型)

有明确返回值的方法调用:(三种)

   1:单独调用;(没有意义)

   2:输出调用;

   3:赋值调用;(常用方式)

方法使用中的注意事项:

   方法不调用不执行;

   方法与方法是平级关系,不能嵌套调用;

   方法在调用的时候,不用再传递数据类型;

   如果方法有明确的返回值,一定要有return带回一个值;

没有明确返回值的方法调用:

   返回值类型为void的方法只能单独调用。


方法重载

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

在调用时,虚拟机通过参数列表的不同来区分同名方法


数组

概念:数组是存储同一种数据类型多个元素的集合。

数组既可以存储基本数据类型,也可以存储引用数据类型。

定义格式:

格式1:数据类型[] 数组名;

格式2:数据类型 数组名[];

Java中的数组必须先初始化,然后才可以使用。

数组的初始化方式
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

格式:

数据类型[] 数组名 = new 数据类型[数组长度];

       Java 程序在运行时,需要在内存中的分配空间。而空间有不同的区域划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈:存储局部变量

堆:存储new出来的东西

方法区 (面向对象部分讲)

本地方法区 (和系统相关)

寄存器 (给CPU使用)

栈内存中的数据用完就释放,而堆内存中的数据是new出来的,它有如下特点:

A:每一个new出来的东西都有地址值;

B:每个变量都有默认值;

    byte,short,int,long默认值是0

    float,double默认值是0.0

    char默认值是'\u0000'

    boolean默认值是false

    引用类型默认值是null

C:数据使用完毕就变成了垃圾,它会在垃圾回收器空闲的时候被回收。

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。

格式:

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};

简化写法:数据类型[] 数组名 ={元素1,元素2,...};

数组操作中常见的问题

ArrayIndexOutOfBoundsException:数组索引越界异常

出现原因:数组索引为负或大于等于数组大小。

nullPointerException:空指针异常

出现原因:数组已经不再指向堆内存,而程序中数组名还在访问元素。


二维数组

概述:二维数组是一个元素为一维数组的数组。

格式1:

   数据类型[][] 变量名 = new 数据类型[m][n];

其中m表示这个二维数组有多少个一维数组,n表示每一个一维数组的元素个数。

以下格式也表示二维数组,但是一般不使用:

   数据类型 变量名 [][] = new 数据类型[m][n];

   数据类型 []变量名[] = new 数据类型[m][n];

格式2:

   数据类型[][] 变量名 = new 数据类型[m][];

格式2中没有直接给出每一个一维数组的元素个数,可以在后续动态给出。

例如:

int[][] arr = new int[2][];

arr[0] = new int[3];

arr[1] = new int[2];

格式3:

   数据类型[][] 变量名 = new 数据类型[][]{{元素1,元素2,…},{元素1,元素2,…},{元素1,元素2,…}};

简化版格式:数据类型[][] 变量名 = {{元素1,元素2,…},{元素1,元素2,…},{元素1,元素2,…}};

二维数组的遍历:

//二维数组的遍历
public class ArrayDemo {
	public static void main(String[] args) {
		int[][] arr = {{1,2,3},{4,5},{6}};
		printArray(arr);
	}
	
	public static void printArray(int[][] arr) {
		for(int x = 0;x<arr.length;x++) {
			for(int y = 0;y<arr[x].length;y++) {
				System.out.print(arr[x][y]+" ");
			}
			System.out.println();
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值