当前位置: 首页 > 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;}
}

相关文章:

JAVA基础8:方法

1.方法概念 方法&#xff08;method)&#xff1a;将具有独立功能的代码块组织成为一个整体&#xff0c;使其具有特殊功能的代码集。 注意事项&#xff1a; 方法必须先创建才可以使用&#xff0c;该过程称为方法定义方法创建后并不是直接运行的&#xff0c;需要手动使用后才执…...

域名反查Api接口——让您轻松查询域名相关信息

在互联网发展的今天&#xff0c;域名作为网站的唯一标识符&#xff0c;已经成为了企业和个人网络营销中不可或缺的一部分。为了方便用户查询所需的域名信息&#xff0c;API接口应运而生。本文将介绍如何使用挖数据平台《域名反查Api接口——让您轻松查询域名相关信息》进行域名…...

果儿科技:打造无代码开发的电商平台、CRM和用户运营系统

连接业务系统&#xff1a;果儿科技与集简云的无代码开发 北京果儿科技有限公司&#xff0c;自2015年成立以来&#xff0c;始终专注于研发创新的企业服务解决方案。其中&#xff0c;集简云无代码集成平台是我们的一项杰出成果&#xff0c;它实现了与近千款软件系统的连接&#…...

C++ 并发编程中condition_variable和future的区别

std::condition_variable 和 std::future 的区别&#xff1a; 用途不同&#xff1a; std::condition_variable&#xff1a; 就好比是一把魔法门&#xff0c;有两个小朋友&#xff0c;一个在门这边&#xff0c;一个在门那边。门上贴了一张纸&#xff0c;写着“开心时可以进来…...

【保姆级教程】Linux安装JDK8

本文以centos7为例&#xff0c;一步一步进行jdk1.8的安装。 1. 下载安装 官网下载链接&#xff1a; https://www.oracle.com/cn/java/technologies/downloads/#java8 上传jdk的压缩包到服务器的/usr/local目录下 在当前目录解压jdk压缩包&#xff0c;如果是其它版本&#xf…...

【备忘】ChromeDriver 官方下载地址 Selenium,pyppetter依赖

https://googlechromelabs.github.io/chrome-for-testing/#stable windows系统选择win64版本下载即可...

day08_osi各层协议,子网掩码,ip地址组成与分类

osi各层协议&#xff0c;子网掩码,ip地址组成与分类 一、上节课复习二 今日内容&#xff1a;1、子网划分 来源于http://egonlin.com/。林海峰老师课件 一、上节课复习 1、osi七层与数据传输 2、socketsocket是对传输层以下的封装ipport标识唯一一个基于网络通讯的软件3、tcp与…...

微信小程序:tabbar、事件绑定、数据绑定、模块化、模板语法、尺寸单位

目录 1. tabbar 1.1 什么是tabbar 1.2 配置tabbar 2. 事件绑定 2.1 准备表单 2.2 事件绑定 2.3 冒泡事件及非冒泡事件 3. 数据绑定 3.1 官方文档 4. 关于模块化 5. 模板语法 6. 尺寸单位 1. tabbar 1.1 什么是tabbar 下图中标记出来的部分即为tabbar&#xff1a…...

AR工业眼镜:智能化生产新时代的引领者!!

科技飞速发展&#xff0c;人工智能与增强现实&#xff08;AR&#xff09;技术结合正在改变生活工作方式。AR工业眼镜在生产领域应用广泛&#xff0c;具有实时信息展示、智能导航定位、远程协作培训、智能安全监测等功能&#xff0c;提高生产效率、降低操作风险&#xff0c;为企…...

从0到0.01入门React | 008.精选 React 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…...

PP-YOLO: An Effective and Efficient Implementation of Object Detector(2020.8)

文章目录 Abstract1. Introduction先介绍了一堆前人的work自己的workexpect 2. Related Work先介绍别人的work与我们的区别 3.Method3.1. ArchitectureBackboneDetection NeckDetection Head 3.2. Selection of TricksLarger Batch SizeEMADropBlockIoULossIoU AwareGrid Sensi…...

4、创建第一个鸿蒙应用

一、创建项目 此处以空模板为例来创建一个鸿蒙应用。在创建项目前请保持网页的畅通。 1、在欢迎页面点击“Create Project”。 2、左侧默认为“Application”&#xff0c;在“Template Market”中选择空模板&#xff08;Empty Ability&#xff09;&#xff0c;点击“Next” 3…...

Docker - DockerFile

Docker - DockerFile DockerFile 描述 dockerfile 是用来构建docker镜像的文件&#xff01;命令参数脚本&#xff01; 构建步骤&#xff1a; 编写一个dockerfile 文件docker build 构建成为一个镜像docker run 运行脚本docker push 发布镜像&#xff08;dockerhub&#xff0…...

2311rust模式匹配

原文 在Rust中混合匹配,改变和移动 结构模式匹配:极大的改进了C或Java风格的switch语句. Match包含命令式和函数式编程风格:可继续使用break语句,赋值等,不必面向表达式. 按需匹配"借用"或"移动",:Rust鼓励开发者仔细考虑所有权和借用.设计匹配时仅支持…...

Linux系统软件安装方式

Linux系统软件安装方式 1. 绿色安装2. yum安装3. rpm安装3.1 rpm常用命令 4. 源码安装4.1 安装依赖包4.2 执行configure脚本4.3 编译、安装4.4 安装4.5 操作nginx4.6 创建服务器 1. 绿色安装 Compressed Archive压缩文档包&#xff0c;如Java软件的压缩文档包&#xff0c;只需…...

React + Antd 自定义Select选择框 全选、清空功能

实现代码 import React, { useState, useEffect } from react; import { Select, Space, Divider, Button } from antd;export default function AllSelect (props) {const {fieldNames, // 自定义节点labbel、value、options、grouLabeloptions, // 数据化配置选项内容&#…...

阿里云国际站:应用实时监控服务

文章目录 一、阿里云应用实时监控服务的概念 二、阿里云应用实时监控服务的优势 三、阿里云应用实时监控服务的功能 四、写在最后 一、阿里云应用实时监控服务的概念 应用实时监控服务 (Application Real-Time Monitoring Service) 作为一款云原生可观测产品平台&#xff…...

专题知识点-二叉树-(非常有意义的一篇文章)

这里写目录标题 二叉树的基础知识知识点一(二叉树性质 )树与二叉树的相互转换二叉树的遍历层次优先遍历树的深度和广度优先遍历中序线索二叉树二叉树相关遍历代码顺序存储和链式存储二叉树的遍历二叉树的相关例题左右两边表达式求值求树的深度找数找第k个数二叉树非递归遍历代码…...

多路数据写入DDR3/DDR4的两种方法

1.官方IP实现&#xff1b; 2.手写Axi 仲裁器。...

3 分钟看完 NVIDIA GPU 架构及演进

近期随着 AI 市场的爆发式增长&#xff0c;作为 AI 背后技术的核心之一 GPU&#xff08;图形处理器&#xff09;的价格也水涨船高。GPU 在人工智能中发挥着巨大的重要&#xff0c;特别是在计算和数据处理方面。目前生产 GPU 主流厂商其实并不多&#xff0c;主要就是 NVIDIA、AM…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...