42 函数的定义
函数就是方法一个小程序(特定功能),函数就是方法
修饰符 返回值类型 函数名(参数类型 形式参数,参数类型 形式参数){
执行语句;
return 返回值;
}
static静态
1、)函数只有被调用才会被执行
public static int getResult(int num){
return num*3+5;
}
特点a)功能代码封装 b)提高复用性 c)函数调用才执行 d)函数的出现提高复用性
函数没有返回值,就没有返回值类型;
2、)当函数运算后,没有具体的返回值时,这时返回值类型用特别关键字来标示(void)
public static void getRestult(int num){
System.out.println(num*3+5);
}
3、)当函数返回类型为void,return可以不写
注意:1.只能调用,不能在函数内部定义函数;2.定义函数时,函数的结果应该返回给调用者,交由调用者处理;
43 函数的应用
如何定义函数。 --------(功能是功能,实现时调用者的事情)-----
1.函数是一个独立的功能(明确返回值类型),那么该功能的运算结构是什么先明确;
2.在明确在定义改功能的过程中是否需要未知的内容参与运算,明确函数的参数列表(参数类型和参数个数)
函数书写:
如果返回函数有void,主函数不能直接输出方法,直接调用;(返回语句没有具体的值,打印语句不知道什么)
public static void getSum(int a,int b){system.out.println(a+b);} 错误
public static int getSum(int x,int y){return x+y;} 正确
函数练习
public static void draw(int row,int col){
for(int x=0;x<row;x++){
for(int y=0;y<col;y++){
System.out.print("*");
}
System.out.println();
}
函数要有入口
45 函数(重载)-----跟函数列表有关系;
重载的概念:同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不可即可;
实例 int add
功能一样用重载:
当定义功能相同,但参与运算的未知内容不同,可以调用函数,重载跟返回类型没有关系
46 重载练习(函数)
void show(int a,char b,double c) 函数
void show(int x,char y,double z) 错
int show(int a,double b,char c) 对 参数类型不同
void show(int a,double b,char c) 对 返回值类型没关系
boolean show(int c,int d) 对 参数个数
void show(int c) 对 参数个数
double show(int x,char y,double z) 错 没有这个函数和给定函数存在一个类中;
47 数组的定义(存数据的一种方式)
概念:同一种类型数据的集合,数组就是一个容器;
1.元素类型[] 数组名=new 元素类型[元素个数或数组长度]
int[] arr=new int[5]
2.元素类型[] 数组名 =new 元素类型{元素 1,元素 2、、、}
int[] arr=new int[]{3,5,1,7}
int[] arr={1,2,3,5,7}
数组的好处:自动给数组的元素从0开始编号,方便操作这些元素
栈自动存放 堆是垃圾回收
两个引用指向同一个数组
实例1:
int[] x=new int[3];
int[] y=x;
y[1]=89;
x[1]=????? =====>89
实例2:
int a=5; int b=a; b=8; 则a=??? ====>5
只有数组为new 内存开一个新的空间;
48数组(静态初始化--常见问题)
int[] arr=new int[2]; 建这样写
int[] arr =new int[]{3,1,6,5,4} 用“{}”标示数组的内容;
int[] arr ={3,1,6,5,4} ======>明确
int[] arr=new int[5] =======>不明确
ArrayIndexOutOfBoundsException 数组角标越界
NullPointerException 空指针异常,当引用没有任何指向值为“null”的情况,该引用还在操作实体;
49数组(常见操作-->遍历)
int[] arr =new int[3];
for(int x=0;x<3;x++){S.o.p("arr["+x+"]="+arr[x]+";")};
数组中有一个属性可以直接获取到数组元素个数“数组名称.length”;
数组输出:-->比较规范
有数组的时候通常用for循环
public static void printArry(int[] arr){
System.out.println("[");
for(int 0;x<arr.length;x++){
if(x!=arr.length-1)
System.out.println(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}