zoukankan      html  css  js  c++  java
  • Java全栈第三篇-方法初探

    一、定义方法的基本格式

    修饰符 返回值类型 方法名(参数列表){
        方法体;
        return 结果;
    }

    1、 修饰符: public static 固定写法 (初期仅当记忆)

    2、返回值类型: 表示方法运行的结果的数据类型 (即return后的返回值所属的类型),方法执行后将结果返回到调用处 (通常为main所调用的位置)

    3、 参数列表:法在运算过程中的未知数据,由参数类型和参数名称两部分组成(即创建方法中括号中的数据,只定义不赋值,参数如果有多个,使用逗号进行分隔),调用处调用方法时传递(调用处在调用方法时,会往括号中赋值)

    4、return:将方法执行后的结果带给调处,方法执行到return ,整体方法运行结束(在没有返回值数据时可以省略不写)

    //要求:调用方法打印一个五行十列的星形矩阵
    public class JuZhen {
        public static void main(String[] args) {
            method1();
        }
    
        public static void method1() {
            for (int i = 0; i < 5; i++) {
                for (int j = 0; j < 10; j++) {
                    System.out.print("*");
                }
                System.out.println();
            }
        }
    }
    
    //测试结果:
    **********
    **********
    **********
    **********
    **********

    二、定义方法两个明确及注意事项

    1、两个明确:

    (1)明确返回值类型:知道自己调用方法需要返回的结果是什么类型。(通过计算的值的类型可以推出返回值类型)

    (2)明确参数列表:调用方法计算时参与计算的值的数据类型和数据个数。

    2、方法调用的流程图解:

    3、定义方法的注意事项:

    (1)方法定义的先后顺序无所谓。
    (2)方法定义必须是挨着的,不能在一个方法的内部定义另外一个方法。
    (3)方法定义之后,自己不会执行的;如果希望执行,一定要进行方法的调用。

     

    三、三种调用方法格式

    1、单独调用:方法名称(参数);

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

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

    4、注意事项:若返回值类型为void,这种方法只能单独调用,不能进行打印调用和赋值调用。

    public class Method2 {
    
        public static void main(String[] args) {
            // 单独调用
            sum(15, 25);//40
    
            // 打印调用
            System.out.println(sum(15, 25)); // 40
           
            // 赋值调用
            int number = sum(15, 25);
            number =number+100;
            System.out.println("变量的值:" + number); // 140
        }
    
        public static int sum(int a, int b) {
            
            return (a+b);
        }
    
    }

     

    四、有参数和无参数方法的比较

    1、含参数方法:一个方法需要数据进行对比、运算时,通常采用含参数的方法(即小括号内参数列表内含有参数)。

    2、不含参数方法:一个方法不需要数据进行对比、运算时,通常采用不含参数的方法(即小括号内参数列表内不含有参数)。

    源代码:
    public class MethodCan { public static void main(String[] args) { System.out.println("两个数大小是否相等" + method1(3, 4)); method2(); } //定义一个方法能够对两个数的大小是否相等 public static boolean method1(int a, int b) { return (a == b); } //定义一个方法能够连续输出十次I am a bird public static void method2() { for (int i = 0; i < 10; i++) { System.out.println("I am a bird" + (i + 1)); } } } 运行结果:
    两个数大小是否相等false I am a bird1 I am a bird2 I am a bird3 I am a bird4 I am a bird5 I am a bird6 I am a bird7 I am a bird8 I am a bird9 I am a bird10

    五、有返回值和无返回值的比较

    1、有返回值:通过一系列的运算或者判断得到的结果,调用处需要调用它的值,此时需要采用(return  + 返回值)向调用处发送返回值。

    2、无返回值:通过一系列的运算或者判断得到的结果,调用处不需要调用它的值,此时返回值类型采用void且不需要(return+返回值)向调用处发送返回值。(通常表现为直接采用输出语句输出数据)

     3、注意事项:

    (1)对于有返回值的方法,可以使用单独调用、打印调用或者赋值调用。但是对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用。

    (2)返回值与参数无关,有参数可能有返回值,也可能没有返回值。

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

    (4)一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。(如if-else语句中针对不同情况可能使用不同的return)

    源代码(同上,仅加上分析):
    public class MethodCan { public static void main(String[] args) { System.out.println("两个数大小是否相等" + method1(3, 4)); method2(); } //定义一个方法能够对两个数的大小是否相等,需要返回一个boolean值 public static boolean method1(int a, int b) { return (a == b); } //定义一个方法能够连续输出十次I am a bird,不需要返回值,只需要输出即可 public static void method2() { for (int i = 0; i < 10; i++) { System.out.println("I am a bird" + (i + 1)); } } } 运行结果:
    两个数大小是否相等false I am a bird1 I am a bird2 I am a bird3 I am a bird4 I am a bird5 I am a bird6 I am a bird7 I am a bird8 I am a bird9 I am a bird10

    六、关于定义方法的三个小练习

    1、题目:定义一个方法,用来判断两个数字是否相同。

    源代码:
    
    public class MethodTest1 {
        public static void main(String[] args) {
            System.out.println("这两个数字是否相等:"+mathod1(25,25));
        }
        public static boolean mathod1(int a,int b){
            boolean result = (a==b);
            return result;
    
        }
    }
    
    运行结果:
    这两个数字是否相等:
    true

    2、题目:求出1到100之间的所有的和

    源代码:
    
    public class MethodTest2 {
        public static void main(String[] args) {
            System.out.println("结果是:"+getSum());
        }
        public static int getSum(){
            int sum= 0;
            for (int i = 1; i <= 100; i++) {
                sum=sum+i;
            }
            return sum;
        }
    }
    
    运行结果:
    结果是:
    5050

    3、题目:实现不定次数打印

    源代码:
    public class MethodTest3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); getNumber(sc.nextInt()); } public static void getNumber(int num){ for (int i = 0; i < num; i++) { System.out.println("Hello World!"+(i+1)); } } } 测试数据:8

    运行结果:
    Hello World
    !1 Hello World!2 Hello World!3 Hello World!4 Hello World!5 Hello World!6 Hello World!7 Hello World!8

    七、方法的重载(Overload)

    1、背景:为什么会想到采用重载

             答:重复的进行相同形式的运算时,会用到很多的方法名称,而这一系列方法的作用又近乎相同,所以采用方法的重载。

    2、定义:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。(只需要记住唯一一个方法名称,就可以实现类似的多个功能。)

    3、因素:

    (1)相关因素:参数列表:个数不同,数据类型不同,多类型顺序不同。

    (2)无关因素:与参数名称无关,与方法返回值类型无关

    4、重载方法的调用:根据参数列表中参数的个数、类型、多类型顺序的不同,调用不同的方法。

    源代码:
    public class MethodTest4 { public static void main(String[] args) { System.out.println("结果是:" + method(3)); System.out.println("结果是:" + method(3, 4)); System.out.println("结果是:" + method(3, 4, 5)); } //定义一个只有一个参数的method方法 public static int method(int a) { return a; } //定义一个有两个参数的method方法 public static int method(int a, int b) { return (a + b); } //定义一个有三个参数的method方法 public static int method(int a, int b, int c) { return (a + b + c); } } 运行结果:
    结果是:
    3 结果是:7 结果是:12

    八、方法的重载两个练习

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

    
    源代码:
    public class MethodSum { public static void main(String[] args) { byte a = 10; byte b = 20; System.out.println(isSame(a, b)); System.out.println(isSame((short) 20, (short) 20)); System.out.println(isSame(11, 12)); System.out.println(isSame(10L, 10L)); } public static boolean same(byte a, byte b) { boolean same; if (a == b) { same = true; } else { same = false; } return same; } public static boolean same(short a, short b) { boolean same = a == b ? true : false; return same; } public static boolean same(int a, int b) { return a == b; } public static boolean same(long a, long b) { if (a == b) { return true; } else { return false; } } } 运行结果:
    false true false true

    2、题目:模拟输出语句中的println方法效果,传递什么类型的数据就输出什么类型的数据,只允许定义一个方法名println。

    源代码:
    public class MethodTest5 { public static void main(String[] args) { println(10); } public static void println(byte a) { System.out.println(a); } public static void println(short a) { System.out.println(a); } public static void println(int a) { System.out.println(a); } public static void println(long a) { System.out.println(a); } public static void println(float a) { System.out.println(a); } public static void println(double a) { System.out.println(a); } public static void println(char a) { System.out.println(a); } public static void println(boolean a) { System.out.println(a); } } 运行结果:
    10
  • 相关阅读:
    设计模式之解释器模式
    设计模式之中介者模式
    设计模式之职责链模式
    设计模式之命令模式
    设计模式之迭代器模式
    设计模式之备忘录模式
    设计模式之状态模式
    【转】CSS中position属性( absolute | relative | static | fixed )详解
    【转】fiddler-http协议调试代理工具
    TCP/IP、Http、Socket的区别
  • 原文地址:https://www.cnblogs.com/MurasameLory-chenyulong/p/12634005.html
Copyright © 2011-2022 走看看