方法

浪尽此生 提交于 2020-01-07 16:35:24

1.方法定义的完整格式:

修饰符  返回值类型  方法名称(参数类型 参数名称 ,...){

  方法体;

  return 返回值;

}

练习1.输出矩形

package cn.day1.demo02;

public class Demo01Method {
    public static void main(String[] args) {
       printMethod();
    }

    public static void printMethod() {
        for (int j = 0; j < 5; j++) {
            for(int i=1;i<=20;i++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

 

 

 

【注意事项】:

1.方法定义的先后顺序无关;

2.方法定义必须是挨着的,不能在一个方法内部定义另一个方法;

3.方法定义之后,自己不会执行,如果希望执行,一定要进行方法调用。

 

方法的三种调用:

1.单独调用:方法名称(参数)【但返回值为void的,只能进行单独调用,不能赋值或打印调用】;

2.打印调用:System.out.println(方法名称(参数));

3.赋值调用:数据类型 变量名称 = 方法名称(参数);

package cn.day1.demo02;

public class Demo01MethodDefine {
    public static void main(String[] args) {
        sum(10,20);                     //单独调用

        System.out.println(sum(10,20)); //打印调用

        int number=sum(10,20);          //赋值调用
        System.out.println(number);
    }
    public static int sum(int a , int b){
        int result =a+b;
        System.out.println("方法执行啦!");
        return result;
    }
}

 练习2 :求出1-100之间所有数字的和

package cn.day1.demo03;

public class Demo2Sum {
    public static void main(String[] args) {
        System.out.println("1+2+...+100=:"+sum());
    }
    public static int sum(){
        int sum=0;
        for (int i = 0; i <= 100; i++) {
            sum+=i;
        }
        return sum;
    }
}

练习3:打印指定次数的HelloWorld

package cn.day1.demo03;

public class Demo3Print {
    public static void main(String[] args) {
        printCount(20);
    }
    public static void printCount(int num){
        for (int i = 0; i < num; i++) {
            System.out.println("Hello World!"+(i+1));
        }
    }
}

【注意事项】

1.方法应该定义在类中,但不能在方法中再定义方法,不能嵌套;

2.方法定义的前后顺序无所谓;

3.方法定义之后不会执行,如果希望执行,一定要调用;单独调用,打印调用,赋值调用;

4.如果方法有返回值,那么必须写上“return  返回值” ,不能没有;

5.return后面的返回值数据,必须和方法的返回值类型对应起来;

6.对于一个void 没有返回值的方法,就不能写return后面的返回值,只能写return自己。

7.对于方法中最后一行的return可以省略不写;

8.一个方法中可以有多个return语句,但必须保证同时只有一个会被执行到

 

2.方法重载

多个方法的名称一样,但是参数列表不一样

好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能

public class Demo01Overload {
    public static void main(String[] args) {
        System.out.println(sum(10,20));
        System.out.println(sum(20,10,30));
        System.out.println(sum(20,10,90,40));
    }
    public static int sum(int a ,int b){
        System.out.println("有2个参数的方法在执行!");
        return a+b;
    }
    public static int sum(int a ,int b,int c){
        System.out.println("有2个参数的方法在执行!");
        return a+b+c;
    }
    public static int sum(int a ,int b,int c,int d){
        System.out.println("有4个参数的方法在执行!");
        return a+b+c+d;
    }
}

方法重载与下列因素有关:

1.参数个数不同;

2.参数类型不同;

3.参数的多类型顺序不同。

方法重载与下列因素无关:

1.与参数名称无关;

2.与方法的返回值类型无关

练习1

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

public class Demo02OverloadSame {
    public static void main(String[] args) {
        byte a = 10;
        byte b = 20;
        System.out.println(isSame(a,b));
        System.out.println(isSame((short)10,(short)20));
        System.out.println(isSame(20,11));
        System.out.println(isSame(10L,10L));
    }
    public static boolean isSame(byte a,byte b){
        System.out.println("两个byte的方法执行");
        boolean same;
        if(a==b){
            same=true;
        }
        else{
            same=false;
        }
        return same;
    }
    public static boolean isSame(short a,short b){
        System.out.println("两个short的方法执行");
        boolean same=a==b?true:false;
        return same;
    }
    public static boolean isSame(int a,int b){
        System.out.println("两个int的方法执行");
        return a==b;
    }
    public static boolean isSame(long a ,long b){
        System.out.println("两个long的方法执行");
        if (a==b){
            return true;
        }
        else {
            return false;
        }
    }
}

练习2

在调用输出语句的时候,println方法其实就是进行了多种数据类型的重载形式。

public class Demo04OverloadPrint {
    public static void main(String[] args) {
        myPrint(100);
        myPrint("Hello");
    }
    public static void myPrint(byte num){
        System.out.println(num);
    }
    public static void myPrint(short num){
        System.out.println(num);
    }
    public static void myPrint(int num){
        System.out.println(num);
    }
    public static void myPrint(long num){
        System.out.println(num);
    }
    public static void myPrint(float num){
        System.out.println(num);
    }
    public static void myPrint(double num){
        System.out.println(num);
    }
    public static void myPrint(char num){
        System.out.println(num);
    }
    public static void myPrint(boolean num){
        System.out.println(num);
    }
    public static void myPrint(String str){
        System.out.println(str);
    }
}

 

 

 

 

 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!