java 函数 数组_JAVA基础--函数和数组03

本文介绍了函数的引入、概念、作用、书写与调用,以及函数重载原理,还详细讲解了数组的定义、操作、内存理解与重载函数实例。掌握这些有助于提升代码组织和数据处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、函数的引入

函数的引入

bd48c34d9a29a50bbff900465081ac0b.png

能把相同的代码都抽出来,放到一个地方,等到要使用的时候再去调用,如果有不同的数据,在使用的时候传递就行了;

fec567164caa4eae4095e3716aef16a0.png

2. 函数的概念:函数又叫方法,一段独立于代码块 直接卸载类中,实现独立的方法

3. 函数的作用:解决的代码的重用性差的问题

4. 函数的书写方式

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

{

功能代码(方法体)

return 返回值的数据

}

8c0f3237b040457c2a16e2d3fa18c726.png

注意

void:

表示函数不需要返回结果时的函数返回值类型;

return:

表示结束当前所在函数,同时如果函数有结果返回,就通过return将结果返回给调用者;

所有函数都是通过return结束运行的;

如果函数返回值类型是void,return可以省略不写,但是编译器会帮我们加上;

二、函数的使用

函数的声明

b86b534c6a7a043b89f3aae9ef0e39b1.png

总结:声明一个函数,需要先明确两个东西:

1、函数的返回值类型;

2、函数的参数列表;

2. 函数的调用

2029eb0c3fb841f464542236e14e3052.png

3. 函数的书写误区

误区:就是在函数定义的功能之外书写额外的功能;

2120a9a3321cc312e1f7cb619dd5ca9c.png

总结:一个函数一个功能,不属于这个函数的功能,就要新建一个函数实现;

一般,一个函数也不要写太长,一般二三十行够了,再多,就要分解功能,写到不同函数中,在调用;

所以以后的开发中,新功能都要新建一个函数实现,main函数中,只是写功能的调用;

4. 函数执行内存图解

7dc2c1718b2047ad3645ebc41391a60a.png

总结:Java中,所有函数都是在栈内存中执行的,都是通过return关键字出栈的;

栈内存的特点是先进后出;正在执行的函数一定是位于栈顶的函数,在栈底的函数一定是main函数;

当main函数出栈,整个程序也将结束运行;

三、函数的重载

为什么函数可以重载

227990b629e2936173088ba4d5d004fd.png

1. 定义

同一类中 可以定义方法名相同而参数列表不同的函数

参数列表不同: a. 参数个数不同

void method(int a);

void method(int a,int b)

b.不同类型的参数的顺序不同

void method(int a,int b)

//void method(int b,int a):不算

void method(int a,char b);

void method(char a,int b);这个参数列表顺序不同

强调:函数的重载,只和函数名以及参数列表有关系,和函数的返回值类型无关!

2. 重载函数的调用

ff66686e4e1e99e081b127feb390afd1.png

总结:调用函数时,是通过函数名和参数列表共同确定的一个函数;

3. 重载的好处 :让开发者需要记忆的函数名大大降低,提高开发效率;

4. 练习

已知函数:

public static int add(int a,char b){}

下列那些函数与之重载?

a:public static void add(int b,char a){}: 不重载

b:public static int add1(int a,char b){}:不重载

c:public static void add(int a){}:重载

d:public static void add(char a,int b){}:重载

e:public static void add(){}:重载

四、数组的引入

定义: 数组就是容器,只能存放相同类型的数据。

格式    数据类型[] 数组名 = new 数据类型[数组的容量]

042c4d25fe3f30e250f6d092b22c0f95.png

3. 数组名,其实就是一个变量名(标识符)

五、数组的使用

数组元素的存取&数组的索引

a. 数组中存放的数据,就是数组的元素;

所有数组中元素都有一个序号(索引、下标、角标……),都是从0开始,连续递增的(0,1,2,3,4……),最大值是数组容量减一;

数组元素的存取,都是通过数组的索引完成的;

b47ba3c939547a9ec7b1fe676940086b.png

数组元素的存放和取出,都是通过数组的索引实现的;

2. 数组的遍历&数组的length属性

数组的遍历:

10a35390e5d76fdeaed7fc012325aaf7.png

b. 数组的length属性:

在生活中,容器的容量都是固定的;

一个数组一旦建立,数组的容量也是确定不变的;

要想知道数组的容量是多少,就要通过数组本身的一个属性获取:length属性;

使用方法:数组名. length;

“.”:可以读作“的”;

表示数组的长度;

c. 数组的内存图解

JAVA的内存组成

d23f2ad86c774cbe4eb9550634f0d849.png

632cd11aff5575e1d2871a1bd6af4f8a.png

d. 引用传递和按值传递

de7008e2f3098ebb5a24bc086cc484ef.png

引用类型的变量进行传参,实际传递的是保存在变量中指向堆中空间的地址,这种传参情况叫做引用传递;

如果一个引用改变了空间中的值,对所有指向这个空间的引用都有影响;

基本类型的变量进行传参,实际传递的保存在变量中的常量值,这种情况叫做值传递;如果改变一个变量的值,对其他的变量没有影响;

七、数组的第二种定义格式

数组的第一种定义格式:

数据类型[]     数组名 = new 数据类型[数组容量];

如果提前已经知道数组中应该存放的数据,就可以使用数组的第二种定义格式,简化数组创建和赋值:

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

简写形式:

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

16db8ed4595483688a8bb8b8d6b92b7c.png

数据类型后面的方括号中不能写数组的容量;

2a5d021d0d73e21bad073f859f06b76c.png

简写形式,只能和数组类型变量的声明写在一行;

be3ea885f441b1de6c5430122bf6b8c5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值