一、方法的定义
public static 返回值类型 方法名称(类型 参数1,类型 参数2,...){
程序语句;
[return 表达式]
}
方法和函数的关系:
这两者是同样的概念,只是在面向对象的语言中常称为方法,面向过程的语言中常称为函数
方法命名规范要求:
在定义类时,要求全部单词的首字母必须大写,那么在定义方法时也是有命名规范要求,即第一个单词的字母小写,之后每个单词的首字母大写,如 prinInfo() 方法。
示例:
public class ArrayDemo01 {
public static void main(String[] args) {
int one = addOne(10,20);
float two = addTwo(10.3f,13.3f);
System.out.println("The result of addOne: " + one);
System.out.println("The result of addTwo: " + two);
}
public static int addOne(int x,int y){
int temp = 0;
temp = x+y;
return temp;
}
public static float addTwo(float x,float y){
float temp = 0;
temp = x+y;
return temp;
}
}
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
二、方法的重载
方法的重载就是方法名称相同,但参数的类型和参数的个数不同,通过传递参数的个数及类型不同以完成不同功能的方法调用。
方法的重载一定只是参数上的类型或者个数不同
示例:
public class ArrayDemo01 {
public static void main(String[] args) {
int one = add(10,20);
int two = add(10,13,15);
float three = add(10.3f,13.3f);
System.out.println("The result of add(int x,int y): " + one);
System.out.println("The result of add(int x,int y,int z): " + two);
System.out.println("The result of add(float x,float y): " + three);
}
public static int add(int x,int y){
int temp = 0;
temp = x+y;
return temp;
}
public static int add(int x,int y,int z){
int temp = 0;
temp = x+y+z;
return temp;
}
public static float add(float x,float y){
float temp = 0;
temp = x+y;
return temp;
}
}
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
三、数组的引用传递
数组属于引用数据类型。
如果要向方法中传递一个数组,则方法的接收参数处必须是符合其类型的数组
public class Test {
public static void main(String[] args) {
int temp[] = {1,3,5};
fun(temp);
for (int i=0;i<temp.length;i++){
System.out.print(temp[i] + "、");
}
}
public static void fun(int x[]){
x[0] = 6;
}
}
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
因为数组是引用数据类型,所以,即使方法本身没有任何的返回值,修改后的结果也会被保存下来。
既然方法可以接受一个数组,那么方法也可以返回一个数组,只需要在返回值类型声明处明确的写出返回的数组类型即可。
public class Test {
public static void main(String[] args) {
int temp[] = fun();
print(temp);
}
public static void print(int x[]){
for (int i=0;i<x.length;i++){
System.out.print(x[i] + "、");
}
}
public static int[] fun(){
int ss[] = {1,3,5,7};
return ss;
}
}
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
调用 类库完成对数组的排序
public class Test {
public static void main(String[] args) {
int score[] = {67,89,69,88,78};
int age[] = {31,30,18,17,8,9};
java.util.Arrays.sort(score);
print(score);
System.out.println("\n--------------------");
java.util.Arrays.sort(age);
print(age);
}
public static void print(int x[]){
for (int i=0;i<x.length;i++){
System.out.print(x[i] + "\t");
}
}
}
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
四、Java 新特性对数组的支持
- 可变参数
返回值类型 方法名称(类型...参数名称){}
- 1
方法中可以接收的参数不再是固定的,而是随着需要传递的
向方法传递可变参数之后,里面的参数是以数组的形式保存下来
public class Test {
public static void main(String[] args) {
System.out.print("不传递参数 fun(): ");
fun();
System.out.print("\n传递1个参数 fun(1): ");
fun(1);
System.out.print("\n传递5个参数 fun(1,2,3,4,5): ");
fun(1,2,3,4,5);
}
public static void fun(int...arg){
for (int i=0;i<arg.length;i++){
System.out.print(arg[i]+"\t");
}
}
}
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
2. foreach 输出
语法格式:
for(数据类型 变量名称:数组名称){
...
}
- 1
- 2
- 3
public class Test {
public static void main(String[] args) {
System.out.print("不传递参数 fun(): ");
fun();
System.out.print("\n传递1个参数 fun(1): ");
fun(1);
System.out.print("\n传递5个参数 fun(1,2,3,4,5): ");
fun(1,2,3,4,5);
}
public static void fun(int...arg){
for (int x:arg){
System.out.print(x + "\t");
}
}
}
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16