Java_方法

什么是方法:解决一类问题的功能模块
  一个类中有两种东西:属性,方法
  属性类似于:身高,体重
  方法类似于:睡觉,吃饭
方法调用
  1.对象名.方法名
  2.类名.方法名
声明
  访问修饰符 返回类型 方法名(参数列表){
  方法体
  }
方法重载:方法名相同 ,参数列表不同(数量,类型)

public class AreaDemo {
    //求长方形面积方法
    public int area(int a,int b) {
        return a * b;
    } 
    public double area(double a,double b) {
        return a * b;
    } 
    //求圆的面积
    public double area(double a ) {
        return  Math.PI * a *a ;
    }
    public double area(int a ) {
        return Math.PI * a *a ;
    }
    public static void main(String[] args) {
        AreaDemo ad = new AreaDemo();
        System.out.println("圆的面积为:" + ad.area(4.5));
        System.out.println("长方形的面积为:" + ad.area(8,5));
    }
}

方法的传值问题:
  基本数据类型:方法中值的改变,并不影响主方法中的值
  引用数据类型:如数组 方法中改变其中一个元素的值,那么主方法中的数组元素也发生改变.

基本数据类型:

public class ChuanDemo {
    //交换位置
    public void change(int a,int b) {
        int temp = a;
        a = b;
        b = temp;
        System.out.println("方法中:a="+ a + "   b=" + b );
    }
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        ChuanDemo cd = new ChuanDemo();
        System.out.println("调用方法前的值:a="+ a + "  b=" + b );
        cd.change(a, b);
        System.out.println("调用方法后的值:a="+ a + "  b=" + b );
    }
}

调用方法前的值:a=10 b=20
方法中:a=20 b=10
调用方法后的值:a=10 b=20

数组传值:

public class ArrayDemo {
    //遍历输出数组元素
        public void arr(int[] b) {
            for(int x:b) {
                System.out.print(x + "  ");
            }
        }
    //改变数组中的第3个元素
    public void change(int[] a) {
        a[2] = 5;
        System.out.print("
方法中数组为:");
        arr(a);
    }
    public static void main(String[] args) {
        int a[] = {1,5,4,6};
        ArrayDemo ad = new ArrayDemo();
        System.out.print("调用方法前数组为:");
        ad.arr(a);
        ad.change(a);
        System.out.print("
调用方法后数组为:");
        ad.arr(a);
    }
    
}
调用方法前数组为:1  5  4  6  
方法中数组为:1  5  5  6  
调用方法后数组为:1  5  5  6  

可变参数列表:参数的数量不确定,是可变的
  public void search(int...n){}
  一个方法中只能有一个可变参数列表,如果有多个参数,可变参数一定要放在最后
  可以将数组传入可变参数列表,反之不行
  可变参数重载:可变参数列表所在的方法是最后被访问的

public class AreaDemo {
    // 求长方形面积方法
    public int area(int a, int b) {
        System.out.println("调用基本数据类型:");
        return a * b;
    }

    public int area(int... b) {
        int pro = 1;
        for (int i = 0; i < b.length; i++) {
            pro *= b[i];
        }
        System.out.println("调用基本数据类型:");
        return pro;
    }
public static void main(String[] args) {
        AreaDemo ad = new AreaDemo();
        int are = ad.area(4,5);
        System.out.println("圆的面积为:" + are);
    }
调用基本数据类型:
圆的面积为:20

文档注释:/**注释内容    */
  运行 CMD 生成文档注释
  F:workspaceStudysrccomfour>javadoc -d doc SearchDemo.java
  正在加载源文件SearchDemo.java...
  正在构造 Javadoc 信息...
  正在创建目标目录: "doc"
  标准 Doclet 版本 1.8.0_162
  正在构建所有程序包和类的树...
  正在生成doccomfourSearchDemo.html...
  正在生成doccomfourpackage-frame.html...
  正在生成doccomfourpackage-summary.html...
  正在生成doccomfourpackage-tree.html...
  正在生成docconstant-values.html...
  正在构建所有程序包和类的索引...
  正在生成docoverview-tree.html...
  正在生成docindex-all.html...
  正在生成docdeprecated-list.html...
  正在构建所有类的索引...
  正在生成docallclasses-frame.html...
  正在生成docallclasses-noframe.html...
  正在生成docindex.html...
  正在生成dochelp-doc.html...

原文地址:https://www.cnblogs.com/conglingkaishi/p/9211716.html