您的位置:首页 > 编程语言 > Java开发

JAVASE课程 第一章 第四讲方法,数组,java新特性

2014-12-11 10:34 281 查看
作用:

1、可以了解方法的申明和使用

2、可以了解数组的引用传递

3、可以了解java新特性对数组的支持

一 方法的申明和使用

1 方法的定义

方法就是一段可重复调用的代码块.

2 方法的定义格式

a public static 返回值类型 方法名称(类型参数1,类型参数2...){

方法主体:

程序语句

[return 表达式;]

}

b 在本节定义的方法,因为其可以直接使用主方法调用,所以将方法声明处加上public static两个关键字

c 注意

1/ 如果返回值类型上写的是void,则说明此方法没有返回值,则就不能使用return返回内容

2/ 方法的命名规范: 第一个单词首字母小写,之后每个单词的首字母大写.

3 方法重载

定义: 方法的重载就是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数和类型不同以完成不同功能的方法调用.

提示: System.out.println() 方法也属于重载方法

注意: 方法重载一定是根据参数的类型或个数来判断的.

************************************

public int addFun(int a,int b){

return a+b;

}

public int addFun(int a,int b,int c){

return a+b+c;

}

************************************

4 使用return结束一个方法

return 除了可以返回一个方法的结果,返回内容以外,也可以返回结束方法.

5 方法的递归调用

定义: 递归调用是一种特殊的调用形式,是方法的自己调用自己.

注意: 在递归操作中,一定要明确的写出方法的借宿判断,否则会出现内存溢出bug.

************************************

//1+..+100 递归调用

public static int fun(int temp){

if(temp==1){

return 1;

}else{

return temp+fun(temp-1);

}

}

************************************

二 数组的引用传递

1 接收和返回数组

定义: 一个方法可以接收一个数组,可以返回一个数组.如果方法接收一个数组的话.则此方法对数组所做的修改将全部保留下来[因为数组使用了内存,所以保留修改].

************************************

//修改数组,数组所做修改就会保存

public static void updateArr(int[] array){

array[0]=12;

}

public static void main(String[] args) {

int[] array = {1,2,3};

updateArr(array);

System.out.println(array[0]);

}

************************************

注意: 方法除了可以接收数组之外还可以通过方法返回一个数组,只需要在返回值类型上,明确的声明处返回的数组即可.

2 范例讲解,数组排序 (讲述了java api的强大)

a 数组排序引用方法 => 自己开发 (可以使用冒泡排序)

//冒泡排序 从小到大

************************************

public static void mpSorts(int[] arrsys){ //{10,9,8,7}

int temp=0;

for (int i = 0; i < arrsys.length; i++) {

//i=0 ,10 需要与9 8 7 比较

//temp=10 arrsys[0]=9 arrsys[1]=10 说明把10排到后面了 理解第一

for (int j = i; j < arrsys.length; j++) {

if(arrsys[i]>arrsys[j]){

temp = arrsys[i];

arrsys[i] = arrsys[j]; //修改内存中 将小的移到前面去

arrsys[j] = temp; //修改内存中 将大的移到后面去

}

}

}

}

************************************

b java为了数组排序操作方法,提供了一个方法 java.util.Arrays.sort(数组名)

3 范例讲解,数组拷贝(讲述了java api的强大)

a 数组拷贝,方法传递的参数,源数组,目标数组,拷贝的长度 => 自己开发

b java提供支持 System.arrayCopy(源数组,源数组的开始点,目标数组,目标数组的开始点,拷贝长度)

4 总结

数组的引用传递就是堆内存的使用权,可以将一个数组传递到方法当中,传递对的时候不需要写上[],直接写上名字即可.

三 java新特性对数组的支持

1 可变参数 (一个方法可传一个参数,或n个参数)

a 定义格式

b 例子

c 注意: 所有的可变参数接手之后,都是以数组的形式保存下来的,所以直接安数组的方式接受即可.

******************************

//可变参数

public static void nCanshu(Object ... array){

//foreach循环

for(Object obj:array){

System.out.print(obj+" ** ");

}

//for循环

for (int i = 0; i < array.length; i++) {

if(i==0){

System.out.println(array[i]);

}

}

}

******************************

2 foreach输出

数组输出: 一般都会使用for循环输出,在jdk1.5之后提供的方法.

3 随机取数,把字符变量B数组中的字符随机赋给二维字符数组A(4为B数组的长度)

A[i][j] = B[(int)Math.floor(Math.random()*4)]

方法: this关键字调用构造方法

一个构造方法里调用其他重载方法,不适用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法.

1) 一个方法用this,重新再调用此方法 (用于形式否则不符合要求,再重新输入)

2) 二个方法中this,一个方法调用另一个

******************************

// this调用

public int fun1(int a , int b){

return a+b;

}

public int fun2(int a,int b){

return this.fun1(a,b); //不用this也可以

}

******************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: