手记

java复习----Java方法

Java方法
什么是方法
所谓的方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。

主要内容:
方法的重载与调用。

方法的声明:
访问修饰符 返回类型 方法名(参数列表){
方法体
}

Public int add(int I,intj){
return i+j;
}

方法的分类:
根据方法是否带参数,是否返回值,分为四类:
无参无返回值方法
无参带返回值方法
带参无返回值方法
带参带返回值方法

无参无返回值方法
例子:一行打印输出一串*
public class NoNo {
public void out(){
System.out.println("*****");
}

public static void main(String[] args) {
    NoNo noNo=new NoNo();
    noNo.out();
    System.out.println("欢迎来到java");
    noNo.out();
}

}

无参带返回值方法
求长方形面积;
public class NoYes {
public double area(){
double a=12.3;
double b=12.4;
return a*b;
}

public static void main(String[] args) {
    NoYes noYes=new NoYes();
    System.out.println(noYes.area());
}

}

带参无返回值方法
public void out(String value){
System.out.println(value);
}

public static void main(String[] args) {
    YesNo yesNo=new YesNo();
    yesNo.out("sss");
}

有参数有返回值
public class YesYes {
public String out(String a,String b){
return a+b;
}

public static void main(String[] args) {
    YesYes yesYes=new YesYes();
    System.out.println(yesYes.out("a", "b"));
}

}

数组作为方法参数
public class PrintArray {
public void printArray(int[] array){
for (int i : array) {
System.out.println(i);
}
}

public static void main(String[] args) {
    PrintArray array=new PrintArray();
    int[] myArray={1,2,3,4};
    array.printArray(myArray);
}

}
方法重载:
方法名相同,参数类型不同
public void out(String value){}
public void out(String value,String value1){}

数据基本类型的传值
public void swap(int a,int b){
int temp;
System.out.println("交换前:a="+a+" b="+b);

    temp=a;
    a=b;
    b=temp;
    System.out.println("交换后:a="+a+" b="+b);
}

public static void main(String[] args) {
    int m=3,n=4;
    PassValue passValue=new PassValue();
    System.out.println("交换前:m="+m+" n="+n);
    passValue.swap(m, n);
    System.out.println("交换后:m="+m+" n="+n);

}

在这里 a与b的值发生了改变,但是m与n的值没有发生改变。原因是m与n只是把值传递给a与b,不是传递内存空间,所以mn与ab并不关联。

数组作为方法传值问题
public class ChangeArray {
//修改数组值得方法
public void change(int[] array){

    System.out.println("array变化前");
    for (int i : array) {
        System.out.print(i+"  ");
    }
    array[0]=3;
    System.out.println("array变化后");
    for (int i : array) {
        System.out.print(i+"  ");
    }
}

public static void main(String[] args) {
    int[] myArray={1,2,3,4};
    System.out.println("myArray变化前");
    for (int i : myArray) {
        System.out.print(i+"  ");
    }
    ChangeArray changeArray=new ChangeArray();
    changeArray.change(myArray);
    System.out.println("myArray变化后");
    for (int i : myArray) {
        System.out.print(i+"  ");
    }

}

在这里myarray与array都发生了变化,原因是数组是对象,在传递的时候传递的是内存的指向,修改的是同一个内存里面的值,所以myarray与array是由关联的。

可变参数列表
public class Variable {
//求和
public void sum(int... n){
int sum=0;
for (int i : n) {
sum=sum+i;
}
System.out.println(sum);
}

public static void main(String[] args) {
    Variable variable=new Variable();
    variable.sum(1,23,5);
}

}

注意:可变参数列表必须在参数的最后一个(由这句话衍生出一个,可变参数只能有一个,因为如果在参数列表里有两个可变参数的话,那么会与上面的约束相矛盾)

可以将数组的值传递给可变参数
public static void main(String[] args) {
Variable variable=new Variable();
int[] a={1,23,5};
variable.sum(a);
}

且在方法的定义中,可变参数int… n与int[] n是等价的,所以下面的代码会出现警告。
//求和
public void sum(int... n){
int sum=0;
for (int i : n) {
sum=sum+i;
}
System.out.println(sum);
}

public void sum(int[] n){
    int sum=0;
    for (int i : n) {
        sum=sum+i;
    }
    System.out.println(sum);
}

可变参数列表所在的方法是最后被访问的(优先级最低)

案例:微型数组管理系统。
程序传至百度网盘:链接:https://pan.baidu.com/s/1qZyc7bm 密码:r4pq

0人推荐
随时随地看视频
慕课网APP