Java基础——方法

方法

一、方法的定义

1、方法就是完成特定功能的代码块(在某些其他语言中,也被称为函数)

2、方法定义的格式

修饰符	方法返回值类型	方法名(参数类型1 参数1,参数类型2 参数2,……){
	方法体语句;
	return 返回值;
}

3、方法定义的格式说明:

修饰符:现在先认为是固定的public static

返回值类型:方法体中的代码执行结果的数据类型

方法名:标识符

参数:类比数学中函数的自变量z = f(x,y)

return:跳转控制关键字

返回值:方法执行得到的最终结果

二、如何写一个函数——两个明确

1、返回值类型 明确功能结果的数据类型

2、参数列表 明确有几个参数,以及参数的数据类型

对于方法的调用,又分为两种情况:

(1)、有返回值的方法调用

(2)、无返回值的方法调用

3、方法调用的注意事项

(1)、方法不调用不执行

(2)、方法与方法是平级关系,可以嵌套调用,但不能嵌套定义

(3)、方法定义的时候参数之间用逗号隔开

(4)、方法调用的时候不用传递数据类型

(5)、如果方法有明确的返回值,一定要有return带回一个值

/**
*定义方法:两数求和
*
*/
public class MethodDemo1 {

  public static void main(String[] args) {
    //用变量接收有返回值的方法调用
    int result = add(3, 4);
    System.out.println(result);

    //输出调用
    System.out.println(add(3,4));

    //直接调用 有返回值的方法调用没有意义
    add( 3, 4);

    //调用方法没有返回值的方法, 只能使用直接调用
    print("void 你好");
  }

  //定义方法 执行 3 + 4
  //public static int add1 () {
  //  int result = 3 + 4;
  //  return result;
  //}

  // 定义实现两数求和的加法运算
  public static int add (int x, int y) {
    int result = x + y;
    return result;
  }

  //定义没有返回值的方法  void表示方法没有返回值
  public static void print (String s) {
    System.out.println("我自己来输出" + s);
    //return; //可以有可以没有
  }


}

三、方法重载(overload)

1、方法重载

在同一个类中,允许存在多个的同名方法,只需满足:

(1)、参数个数不同

(2)、参数类型不同

(3)、参数顺序不同(不是指形式参数的变量名顺序不同,而是指形式参数类型顺序)

2、编译器如何区分方法——通过方法签名

方法签名:方法名 + 参数列表 比如add(int, int) 、add(double, double)

public class OverLoadDemo {

  public static void main(String[] args) {

    int a = 1;
    int b = 2;
    //int add = add(a, b, 10);
    //double c = 1.1;
    //double d = 2.2;
    //double doubleAdd = add(c, d);
    //
    //add(1,2);

    //int call = add(a, b);
    //add(a, b);
  }

  //两数相加
  public static int add(int x, int y) {
    System.out.println("int add");
    return x + y;
  }

  //public static double add(int x, int y) {
  //  return x + y;
  //}


  //实现3数相加
  public static int add(int x, int y, int z) {
    return add(x, y) + z;
  }

  //参数类型不同
  public static double add(double x, double y) {
    System.out.println("double add");
    return x + y;
  }

  //参数顺序不同
  public static int add(int y, byte x) {
    return x + y;
  }

  public static int add(byte y, int x) {
    return x + y;
  }

}

/** 
 * 比较两个数据是否相等。
 * 参数类型分别为 两个byte类型,
 *              两个short类型,
 *              两个int类型
 *              两个long类型
 * 并在main方法中进行测试

 */
public class Exercise {

  public static void main(String[] args) {

    byte b = 1;
    short c = 2;
    long a  = 1L;
    long d = 100L;
    equals(b,c);
    equals(a,d);
  }


  public static boolean equals(byte a, byte b) {
    System.out.println("byte equals");
    return a == b;
  }


  public static boolean equals(short a, short b) {
    System.out.println("short equals");
    return a == b;
  }


  public static boolean equals(int a, int b) {
    System.out.println("int equals");
    return a == b;
  }

  public static boolean equals(long a, long b) {
    System.out.println("long equals");
    return a == b;
  }
}

posted on 2020-06-09 23:22  lifelicanpeng  阅读(168)  评论(0编辑  收藏  举报

导航