当前位置: 首页 > news >正文

JAVA基础8:方法

1.方法概念

方法(method):将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集

注意事项:

  • 方法必须先创建才可以使用,该过程称为方法定义
  • 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用

2.方法定义格式

格式:public static void 方法名(){

        //方法体

}

范例:public static void isEvenNumber(){

        //方法体

}

3.方法调用格式

格式:方法名();

范例:isEvenNumber();

注意事项:

方法必须先定义后调用,否则程序将报错

package com.maicangfenxiang;public class MethodDemo {public static void main(String[] args) {//调用方法isEvenNumber();}//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数public static void isEvenNumber(){//定义变量int number = 9;//判断该数据是否是偶数if(number % 2 == 0){System.out.println(true);}else{System.out.println(false);}}
}
package com.maicangfenxiang;public class MethodDemo {public static void main(String[] args) {//调用方法getMax();}//需求:设计一个方法用于打印两个数中的较大数public static void getMax(){//定义两个变量,用于保存两个数字int a = 10;int b = 20;//使用分支语句分两种情况对两个数字的大小关系进行处理if(a>b){System.out.println(a);}else{System.out.println(b);}}
}

4.带参数方法

1)定义格式

格式:public static void 方法名(参数){......}

格式(单个参数):public static void 方法名(数据类型 变量名){......}

范例(单个参数):public static void isEvenNumber(int number){......}

格式(多个参数):public static void 方法名(数据类型 变量名,数据类型 变量名,......){......}

范例(多个参数):public static void 方法名(int number1, int number2,......){......}

注意事项:

方法定义时,参数中的数据类型变量名都不能缺少,缺少任意一个程序将报错

方法定义时,多个参数之间使用逗号)分隔

2)带参数方法调用格式

格式:方法名(参数);

格式(单个参数):方法名(变量名/常量值);

范例(单个参数):isEvenNumber(5);

格式(多个参数):方法名(变量名1/常量值1,变量名2/常量值2);

范例(多个参数):getMax(5,6);

注意事项:

方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错。 

package com.maicangfenxiang;public class MethodDemo {public static void main(String[] args) {//常量值的调用isEvenNumber(10);//变量的调用int number = 10;isEvenNumber(number);}//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数public static void isEvenNumber(int number){//判断该数据是否是偶数if(number % 2 == 0){System.out.println(true);}else{System.out.println(false);}}
}

3)形参和实参

形参:方法定义中的参数

        等同于变量定义格式,例如:int number

实参:方法调用中的参数

        等同于使用变量或常量,例如:10 或者 number

package com.maicangfenxiang;public class MethodDemo {public static void main(String[] args) {//常量值的调用getMax(10,20);//变量的调用int a = 10;int b = 20;getMax(a,b);}//需求:设计一个方法用于打印两个数中的较大数public static void getMax(int a, int b){//使用分支语句分两种情况对两个数字的大小关系进行处理if(a>b){System.out.println(a);}else{System.out.println(b);}}
}

5.带返回值方法

1)定义格式

格式:public static 数据类型 方法名(参数){

                return 数据;

}

范例1:public static boolean isEvenNumber(int number){

                return true;

}

范例2:

public static int  getMax(int a,int b){

                return 100;

}

2)带返回值方法调用

格式1:方法名(参数);

范例:isEvenNumber(5);

格式2:数据类型 变量名 = 方法名(参数);

范例:boolean flag = isEvenNumber(5);

注意事项:

  • 方法的返回值通常会使用变量接收,否则该返回值将无意义。
package com.maicangfenxiang;public class MethodDemo {public static void main(String[] args) {//1:方法名(参数)isEvenNumber(10);System.out.println(isEvenNumber(10));//2:数据类型 变量名 = 方法名(参数);boolean flag = isEvenNumber(10);System.out.println(flag);}//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数public static boolean isEvenNumber(int number){//判断该数据是否是偶数if(number % 2 == 0){return true;}else{return false;}}
}

3)带返回值方法练习

package com.maicangfenxiang;public class MethodDemo {public static void main(String[] args) {//1:方法名(参数)getMax(10,20);System.out.println(getMax(10,20));//2:数据类型 变量名 = 方法名(参数);int result = getMax(10,20);System.out.println(result);}//需求:设计一个方法用于打印两个数中的较大数public static int getMax(int a, int b){//使用分支语句分两种情况对两个数字的大小关系进行处理if(a>b){return a;}else{return b;}}
}

6.方法注意事项

1)方法不能嵌套定义

2)void 表示无返回值,可以省略return,也可以单独的书写return,后面不加数据

3)方法的通用格式

格式: public static 返回值类型 方法名(参数){

        方法体;

        return 数据;

}

  • public staic 修饰符,目前先记住这个格式
  • 返回值类型 方法操作完毕之后返回的数据的数据类型
  •                         如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return
  • 方法名        调用方法时候使用的标识
  • 参数        由数据类型和变量名组成,多个参数之间用逗号隔开
  • 方法体        完成功能的代码块
  • return        如果方法操作完毕,由数据返回,用于把数据返回给调用者
  • 定义方法时,要做到两个明确
    • 明确返回值类型:主要是明确方法操作完毕之后是否由数据返回,如果没有,写void;如果有,写对应的数据类型
    • 明确参数:主要是明确参数的类型和数量
  • 调用方法时
    • void类型的方法,直接调用即可
    • 非void类型的方法,推荐用变量接收调用

7.方法重载

1)方法重载概述

方法重载是同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

  • 多个方法在同一个类中
  • 多个方法具有相同的方法名
  • 多个方法的参数不相同,类型不同或者数量不同

2)方法重载特点

  • 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
  • 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相同构成重载
package com.maicangfenxiang;
/*方法重载与返回值无关在调用的时候,Java虚拟机会通过参数的不同来区分同名的方法*/
public class MethodDemo {public static void main(String[] args) {//调用方法int result1 = sum(10,20);System.out.println(result1);double result2 = sum(10.0,20.0);System.out.println(result2);int result3 = sum(10,20,30);System.out.println(result3);}//需求1:求两个int类型数据和方法public static int sum(int a,int b){return a + b;}//需求2:求两个double类型数据和方法public static double sum(double a,double b){return a + b;}//需求1:求三个int类型数据和方法public static int sum(int a,int b,int c){return a + b + c;}
}

8.方法的参数传递

1)方法参数传递(基本类型)

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

2)方法参数传递(引用类型)

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

package com.maicangfenxiang;/*需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11,22,33,44,55]*/
public class MethodDemo {public static void main(String[] args) {//定义一个数组int[] arr = {11, 22, 33, 44, 55};//调用方法printArray(arr);}//定义一个方法:/*两个明确:返回值类型:void参数:int[] arr*/public static void printArray(int[] arr) {System.out.print("[");for (int x = 0; x < arr.length; x++) {if (x == arr.length - 1) {System.out.print(arr[x]);} else {System.out.print(arr[x] + ",");}}System.out.println("]");}
}
package com.maicangfenxiang;/*需求:设计一个方法用于获取数组中元素的最大值,调用方法并输出结果*/
public class MethodDemo {public static void main(String[] args) {//定义一个数组int[] arr = {12, 45, 98, 73, 60};//调用方法System.out.println(getMax(arr));}//定义一个方法:/*两个明确:返回值类型:int参数:int[] arr*/public static int getMax(int[] arr) {int max = arr[0];for (int x = 0; x < arr.length; x++) {if (max<arr[x]) {max = arr[x];}}return max;}
}

http://www.lryc.cn/news/229821.html

相关文章:

  • 域名反查Api接口——让您轻松查询域名相关信息
  • 果儿科技:打造无代码开发的电商平台、CRM和用户运营系统
  • C++ 并发编程中condition_variable和future的区别
  • 【保姆级教程】Linux安装JDK8
  • 【备忘】ChromeDriver 官方下载地址 Selenium,pyppetter依赖
  • day08_osi各层协议,子网掩码,ip地址组成与分类
  • 微信小程序:tabbar、事件绑定、数据绑定、模块化、模板语法、尺寸单位
  • AR工业眼镜:智能化生产新时代的引领者!!
  • 从0到0.01入门React | 008.精选 React 面试题
  • PP-YOLO: An Effective and Efficient Implementation of Object Detector(2020.8)
  • 4、创建第一个鸿蒙应用
  • Docker - DockerFile
  • 2311rust模式匹配
  • Linux系统软件安装方式
  • React + Antd 自定义Select选择框 全选、清空功能
  • 阿里云国际站:应用实时监控服务
  • 专题知识点-二叉树-(非常有意义的一篇文章)
  • 多路数据写入DDR3/DDR4的两种方法
  • 3 分钟看完 NVIDIA GPU 架构及演进
  • SMART PLC 和S7-1200PLC MODBUSTCP通信速度测试
  • C++文件操作知识点总结
  • 开发vue3 UI组件库,并且发布到NPM
  • 雷达测角原理、测角精度、测角分辨率以及3DFFT角度估计算法汇总
  • 金财数科无代码开发平台:轻松实现电商、CRM、广告推广系统的集成连接
  • JavaWeb篇_09——Tomcat运行过程以及Servlet继承结构
  • Python中的异常与错误处理
  • sqli-labs关卡16(基于post提交的双引号加括号闭合的布尔盲注)通关思路
  • 2.5k的ChatGPT-Java版SDK升级1.1.2-beta0支持GPT-4V、Dall-e-3模型、ToolCalls、微调Job、TTS...
  • k8s二进制(ETCD的部署安装)
  • 【rl-agents代码学习】02——DQN算法