首页 > 编程语言 >Java基础语法(五)| 方法

Java基础语法(五)| 方法

时间:2024-03-28 12:59:19浏览次数:33  
标签:Java void System 语法 static println 方法 public out

1. 方法概述

1.1 什么是方法

方法(method)完成某一个特定功能的代码块。

1.2 方法基本使用

将资料中给大家提供的打怪物发射炮弹重复的代码,把一些重复代码进行抽取(封闭)思想.

  •  调用格式

方法名();

注意:

1. 方法必须先创建才可以使用,该过程成为方法定义。

2. 方法创建后并不是可以直接运行的,需要手动后才执行,该过程称为方法调用。

  • 代码示例:
public static void fire() {
    System.out.println("准备发射5支箭");
    
    System.out.println("发射第1支箭* * * *");
    System.out.println("发射第2支箭* * * *");
    System.out.println("发射第3支箭* * * *");
    System.out.println("发射第4支箭* * * *");
    System.out.println("发射第5支箭* * * *");
    System.out.println("发射5支箭结束");
}

public static void main(String[] args) {
    System.out.println("游戏开始...");
    System.out.println("看到了一个怪物...安琪拉...");
    
    
    //调用方法
    fire();
    
    System.out.println("...安琪拉被打倒...");
}

1.3 定义方法格式

修饰符 返回值类型 方法名(参数列表){
    //代码省略... 
    return 结果; 
}

格式解释: 

  • 修饰符: public static 目前固定写法
  • 返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者

  • 参数列表: 方法在运算过程中的未知数据,调用者调用方法时传递

  • return: 将方法执行后的结果带给调用者,方法执行到 return ,整体方法运行结束

  • 小贴士:return 结束; 这里的结束在开发中,我们正确的叫法成为方法的返回值

2. 方法类型

2.1 定义方法

  • 明确参数列表

该方法在完成一个功能时,需要的参数有几个,参数的类型是什么,需要在我们明确给出的。

  • 明确返回值类型

方法的功能完成之后,是否有结果返回,如果有,使用return 将结果返回给调用者。没有返回值void。

2.2 案例实现 

案例一:在控制台打印10次HelloWorld  

代码实现:

public class MethodDemo01 {
    public static void main(String[] args) {
        //调用方法printHelloWorld打印10次HelloWorld
        printHelloWorld();
    }

    public static void printHelloWorld() {       
        for (int i = 0; i < 10; i++) {
            System.out.println("HelloWorld");
        }
    }
}

案例二: 实现不定次数打印HelloWorld

代码实现:

public class MethodDemo02 {
    public static void main(String[] args) {
        //调用方法printHelloWorld,传递整数
        printHelloWorld(10);
    }

 	/*
        定义打印HelloWorld方法
        返回值类型,计算没有结果 void
        参数:不确定打印几次
    */
    public static void printHelloWorld(int n) {        
        for (int i = 0; i < n; i++) {
            System.out.println("HelloWorld");
        }
    }
}

案例三:定义方法实现两个整数的求和计算  

代码实现:

 public class MethodDemo03 {
    public static void main(String[] args) {
        // 调用方法getSum,传递两个整数,这里传递的实际数据又称为实际参数        
        // 并接收方法计算后的结果,返回值     
        int sum = getSum(5, 6);
        System.out.println(sum);
    }
 
    /*
        定义计算两个整数和的方法
        返回值类型,计算结果是int
        参数:不确定数据求和,定义int参数.参数又称为形式参数
    */
    public static int getSum(int a, int b) {
        return a + b;
    }
}

案例四: 定义方法实现比较两个整数是否相同

代码实现:

 public class MethodDemo04 {
    public static void main(String[] args) {
        //调用方法compare,传递两个整数
        //并接收方法计算后的结果,布尔值
        boolean bool = compare(3, 8);
        System.out.println(bool);
    }
 
    /*
        定义比较两个整数是否相同的方法
        返回值类型,比较的结果布尔类型
        参数:不确定参与比较的两个整数
    */
    public static boolean compare(int a, int b) {       
        if (a == b) {
            return true;
        } else {
            return false;
        }
    }
}

 案例五:定义方法实现:计算1+2+3...+100的和

代码实现:

public class MethodDemo05 {
    public static void main(String[] args) {        
        //调用方法getSum
        //并接收方法计算后的结果,整数
        int sum = getSum();
        System.out.println(sum);
    }

    /*
        定义计算1~100的求和方法
        返回值类型,计算结果整数int
        参数:没有不确定数据
    */
    public static int getSum() {
        //定义变量保存求和
        int sum = 0;
        //从1开始循环,到100结束
        for (int i = 1; i <= 100; i++) {           
            sum = sum + i;
        }
        return sum;
    }
}

3. 方法总结

3.1 注意事项

  • 定义位置:类中方法外,不能嵌套定义

  • 方法必须先定义,再使用

  • void表示无返回值,可以省略return,也可以单独的书写return

  • 不能在return后面写代码,return意味着方法结束,所有后面的代码记永远都不会执行,属于无效代码

3.2 方法调用  

  • 直接调用:直接写方法名调用
public static void main(String[] args) {    
    print();
}
public static void print() {
    System.out.println("方法被调用");
}
  • 赋值调用:调用方法,在方法前面定义变量,接收方法返回值
public static void main(String[] args) {    
    int sum = getSum(5,6);
    System.out.println(sum);
}
public static int getSum(int a,int b) {
    return a + b;
}
  • 输出语句调用:在输出语句中调用方法
public static void main(String[] args) {    
    System.out.println(getSum(5,6));
}
public static int getSum(int a,int b) {
    return a + b;
}

注意:

不能用输出语句调用void无返回值类型的方法。因为方法执行后没有结果,也就打印不出任何内容.

 示例:

public static void main(String[] args) {
    // 错误,不能输出语句调用void类型方法
    System.out.println(printHello());
}
public static void printHello() {
    System.out.println("Hello");
}

 4. 重载overload

4.1 方法重载概述

在同一个类中,具有相同的方法名, 参数列表不同(参数的个数、类型、顺序不同),与返回值无关。

参数列表:个数不同,数据类型不同,顺序不同。

重载方法调用:JVM通过方法的参数列表,调用不同的方法。

 注意:

* 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。
* 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载。

 4.2 重载案例

案例一:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型。

代码实现:

public class MethodTest1 {
    public static void main(String[] args) {
        //调用方法
        System.out.println(compare(10, 20));
        System.out.println(compare((byte) 10, (byte) 20));
        System.out.println(compare((short) 10, (short) 20));
        System.out.println(compare(10L, 20L));
    }

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

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

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

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

}

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

代码实现:

 public class MethodTest2 {
    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);
    }
 
    public static void println(String a) {        
        System.out.println(a);
    }
}

5. 参数传递

5.1 传递基本类型

测试代码:

public class ArgsDemo01 {
    public static void main(String[] args) {
        //实际参数
        int number = 100;
        System.out.println("调用change方法前:" + number);
        //调用方法
        change(number);
        System.out.println("调用change方法后:" + number);
    }

    //形式参数
    public static void change(int x) {
        x = 200;
    }
}

运行结果:

 结论:

基本数据类型的参数,形式参数的改变,不影响实际参数。

 5.2 传递引用类型

测试代码:

public class ArgsDemo02 {
    public static void main(String[] args) {
        int[] arr = {10, 20, 30};
        System.out.println("调用change方法前:" + arr[1]);//20
        
        change(arr);
        System.out.println("调用change方法后:" + arr[1]);//200
    }
    
    public static void change(int[] arr) {
        arr[1] = 200;
    }
}

运行结果:

结论:

 对于引用类型的参数,形式参数的改变,影响实际参数的值。


就一直往前走叭,沿途的花会绽放的~  你很优秀~

 

 

 

标签:Java,void,System,语法,static,println,方法,public,out
From: https://blog.csdn.net/m0_46331650/article/details/137088726

相关文章

  • Docker Gitlab使用方法
    下载dockerpullgitlab/gitlab-ce运行dockerrun\--publish443:443--publish80:80--publish22:22\--namegitlab\-v/data/gitlab/config:/etc/gitlab\-v/data/gitlab/logs:/var/log/gitlab\-v/data/gitlab/data:/var/opt/gitlab\gitla......
  • 安装 allure 时踩到的坑:ERROR: JAVA_HOME is set to an invalid directory
    报错内容是:安装allure时ERROR:JAVA_HOMEissettoaninvaliddirectory:F:\soft\jdkPleasesettheJAVA_HOMEvariableinyourenvironmenttomatchthelocationofyourJavainstallation。这个问题的原因是java环境的环境变量不能运行也就是在cmd中javac这......
  • 计算机java项目|农业电商服务系统
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • 计算机java项目|Springboot基于Hadoop的物品租赁系统的设计与实现
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • springboot/ssm城乡居民基本医疗信息管理系统Java医院挂号问诊系统web
    springboot/ssm城乡居民基本医疗信息管理系统Java医院挂号问诊系统web基于springboot(可改ssm)+vue项目开发语言:Java框架:springboot/可改ssm+vueJDK版本:JDK1.8(或11)服务器:tomcat数据库:mysql5.7(或8.0)数据库工具:Navicat/sqlyog开发软件:eclipse//idea依赖管理包:Mave......
  • ECMAScript与JavaScript:一窥两者之间的微妙差异
    目录引言一、ECMAScript的定义与作用二、JavaScript的定义与作用三、ECMAScript和JavaScript的关系同源关系语法规范兼容性四、ECMAScript和JavaScript的区别概念层面更新频率兼容性五、ECMAScript规范和JavaScript引擎的实现之间是如何保持兼容性的六、ECMAScrip......
  • Java对象转换失败-Long类型转Integer类型
    对象转换工具类/***转换工具类*/publicclassConvertUtils{privatestaticLoggerlogger=LoggerFactory.getLogger(ConvertUtils.class);publicstatic<T>TsourceToTarget(Objectsource,Class<T>target){if(source==null){......
  • Java基础知识
    Java概述什么是Java?Java是SunMicrosystems于1995年首次发布的一种编程语言和计算平台。编程语言还比较好理解,那么什么是 计算平台 呢?计算平台是在电脑中运行应用程序(软件)的环境,包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构、操作系统、运行时库......
  • java多现场读取list
    1.需要一个线程类packagecom.cdncp.testautomation.control.conf;importorg.apache.commons.lang.ArrayUtils;importjava.util.ArrayList;importjava.util.List;publicclassHandleThreadextendsThread{privateStringthreadName;privateList<String&......
  • java毕业设计基于微信小程序的网上书店系统[附源码]
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,电子商务已经渗透到人们日常生活的方方面面。传统实体书店由于空间限制、库存管理、地理位置等因素,面临着巨大的运营压力和挑战......