Java方法(函数)数组

方法的概念及作用

1.概念:方法,也叫函数,但是一般在java中都叫方法,可以看成是一个可以完成独立功能的代码块,可以反复使用,每次使用都是独立的!存在于类的结构体

1)X + Y = Z;代入不同的值,可以求到不同的结果
2)函数可以反复使用的!每次使用都是独立的
3)完成了一个独立的功能

2.作用:完成功能,数据的处理!方法可以拿来反复使用。每次使用都是独立的

语法结构:

public static void main(String[] args){
	}
	/*
	返回值类型 方法名字( 形式参数 ){
	}
	*/

1)public static修饰符
a)修饰给与特殊意义
2)void:此处位置返回值类型,void 表示没有返回值
3)main:方法名字
4)(String[] args) : 一个形式参数,String[] 数据类型 args形式参数名字
a)形式参数: 本质没有值的;可以看成是有值的,在方法的内部完成功能的设计
5){}:方法的结构体
a)完成功能的设计
6)存在于类的结构体

1)返回值: 必须有
2)方法名字:必须有
3)小括号: 必须有
4)形式参数:根据需要设定,也可以没有形式参数
5)大括号: 必须有: 但是功能语句可以任意写

Java(函数)方法的使用

1.使用方法的三种方式
1)方法有static修饰:类名.方法名+参数列表[个数,顺序,类型必须一致]
2)方法没有static修饰:对象名.方法名+参数列表[个数,顺序,类型必须一致]
3)方法在同一个类中:方法名+参数列表[个数,顺序,类型必须一致]
a)+参数列表: 传入对应类型的数据
2.注意事项:
1)对于方法的使用者而言,无需关心方法内部的实现
2)同一个类中:静态方法不能调用非静态的方法
同一个类中:非静态方法可以调用静态方法

方法return
① 方式:将方法运算的结果返回给方法调用着,方法内部将运算结果使用语句:
return 值/变量/表达式;
② 方法返回值的位置,必须写与方法内部返回值的数据一致的数据类型
③ 注意:返回的是数据,不是变量或者表达式

示例一:return 不一定执行得到

public static int add(){
if(true){
         return 1;//语法检查只看结构不看值,return语句不一定会执行得到
}
} 

示例二:return 不一定执行得到

public static int add(){
if(true){//语法检查只看结构不看值,return语句一定会执行得到
         return 1;
}else if(false){ 
         return 2;
}
}

示例三:return 一定执行得到

public static int add(){
if(true){//同上语法检查只看结构不看值,return语句不一定会执行得到
          return 1;
}else{
          return 2;
}
}

结论:
①如果一个方法的返回类型不是void,那么要求[不管方法里面做了什么事情]
都必须返回一个和返回值类型匹配的值
②对于结构体语句中写返回值:编译检查语法,只看结构不看值:
结构体中写了返回值不一定执行的到,编译语法会不通过!

方法参数传递数组

概念:数组可以理解成在计算机中的多个连续的存储空间,里面可以按顺序存放多个类型相同的数据。
在这里插入图片描述
1)数组名 : 数组的名字
2)数组元素 :就是存放在数组里面的数据
3)数组索引 :就是数组里面连续存储空间的编号,从0开始
4)length :数组的属性长度 数组名.length拿到数组的长度

数组基本的语法

动态创建之声明的同时赋值

数据类型 [] 数组变量名 = new 数据类型[数组长度];
int[] arr = new int[10];

动态创建之先声明后赋值


数据类型 [] 数组变量名;
int[] arr;
数组变量名 = new 数据类型[数组长度];
arr = new int[10];

静态创建
静态创建简写方式

1)声明的同时赋值
数据类型[] 数组变量名 = {多个以英文逗号分隔的数据};
2)先声明后赋值[编译器不允许,错误写法]
数据类型[] 数组变量名;
数组变量名 = {多个以英文逗号分隔的数据};

如何使用
对于计算机内存存储空间的使用最重要的就是存值取值
1.存值
(1)数组名[索引位置] = 值;
2.取值
(1)数组名[索引位置]
数组遍历

JVM存储数据分析

1.堆:可以理解为凡是new 出来的东西都放在这里面,堆内存可以被虚拟机动态的分配内存大小,无需事先告诉编译器的数据的大小、生命周期等相关信息
2.栈:主要存放一些变量容器名 (例如局部变量名,还可以存放局部变量 基本类型 数据值),栈内存被要求存放在其中的数据的大小、生命周期必须是已经确定的
在这里插入图片描述

数组特点
1)数据类型限定了数组可以存放的数据类型
2)一个数组可以存储多个元素
3)一旦数组对象被创建好,那么其长度就固定不变了
4)动态创建好数组之后,会自动分配默认值,和数组中的元素类型有关(类似之前成员变量的默认值)

方法参数传递

什么是方法参数传递
1)概念:参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程,方法有按值传递参数,按地址传递参数和按数组传递参数。

2)值传递:方法传递的是值
a)形式参数类型是基本数据类型
b)基本类型数据传递的是值

3)值引用:方法传递的是值得引用
a)形式参数类型是引用数据类型
b)引用传递其实传的是地址,形式参数类型是引用数据类型或数组。
c)实际参数(数据)是对象(或数组),这时实际参数与形式参数指向同一个地址
d)在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被 保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

4)值传递示例: 定义一个change 方法 和 int 形参

5)值引用再看一个示例,定义一个change 方法 和 int 数组 的形参,交换数组中前面2个元素

6)注意:方法调用时,实际参数把它的值传递给对应的形式参数,相当于拷贝了一份值给形式参数, 所以方法执行中形式参数值的改变不影响实际参数的值。
a)基本数据不影响原来的值
b)引用数据不影响原来的地址值:
引用地址,引用的值,如果被改变,原来引用的的值所引用的值也会被改变,
因为都是同一个引用

在这里插入图片描述

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

黄家亮

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值