java学习06---方法

一 方法

方法(method)是程序中最小的执行单元

注意:

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

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

二  方法的定义和调用

1 无参数方法定义和调用

  • 定义格式:

    public static void 方法名 (   ) {// 方法体;
    }
  • 范例:

    public static void playgame(){System.out.println("a");System.out.println("b");System.out.println("c");System.out.println("d");
  • 调用格式:

    方法名();
  • 范例:

    method();
  • 注意:

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

练习

需求:定义一个方法,在方法内部定义两个变量。
求出他们的和并进行打印。

package com.wy.methoddemo;public class MethodDemo1 {public static void main(String[] args) {getsum();}public static void getsum(){int num1=10;int num2=20;int result=num1+num2;System.out.println(result);}
}

 

2.带参数方法定义和调用

  • 定义格式:

    参数:由数据类型和变量名组成 - 数据类型 变量名

  • 参数范例:

    int apublic static void 方法名 (参数1) {方法体;
    }
    ​
    public static void 方法名 (参数1, 参数2, 参数3...) {方法体;
    }
     
  • 范例:

    public static void isEvenNumber(int number){...
    }
    public static void getMax(int num1, int num2){...
    }

注意:

方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
​
方法定义时,多个参数之间使用逗号( ,)分隔方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
  • 调用格式:

    方法名(参数);
    ​
    方法名(参数1,参数2);
     

package com.wy.methoddemo;public class MethodDemo2 {public static void main(String[] args) {getsum(10,20);}public static void getsum(int num1,int num2){int result=num1+num2;System.out.println(result);}
}

练习

需求:定义一个方法,求长方形的周长,将结果在方法中进行打印。

public class MethodDemo3 {public static void main(String[] args) {getlength(5.2,6.7);}public static void getlength(double len,double width){double reslt=(len+width)*2;System.out.println(reslt);}
}

 

3.形参和实参

1.形参:方法定义中的参数

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

2.实参:方法调用中的参数

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

4. 带返回值方法的定义和调用

  • 定义格式

    public static 数据类型 方法名 ( 参数 ) { return 数据 ;
    }
  • 范例

    public static boolean isEvenNumber( int number ) {           return true ;
    }
    public static int getMax( int a, int b ) {return  100 ;
    }

注意:

方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错

  • 调用格式

    方法名 ( 参数 ) ;
    数据类型 变量名 = 方法名 ( 参数 ) ;
  • 范例

    isEvenNumber ( 5 ) ;
    boolean  flag =  isEvenNumber ( 5 ); 

注意:

方法的返回值通常会使用变量接收,否则该返回值将无意义

练习

需求:

定义一个方法,求一家商场每个季度的营业额。根据方法结果再计算出全年营业额。

package com.wy.methoddemo;public class MethodDemo4 {public static void main(String[] args) {
//        //直接调用
//        getSum(10,20,30);
//        //赋值调用
//        int sum=getSum(10,20,30);
//        System.out.println(sum);
//        //输出调用
//        System.out.println(getSum(10,20,30));//第一季度int sum1=getSum(10,20,30);//2int sum2=getSum(10,20,30);//3int sum3=getSum(10,20,30);//4int sum4=getSum(10,20,30);int sum=sum1+sum2+sum3+sum4;System.out.println(sum);}public static int getSum(int num1,int num2,int num3){int result=num1+num2+num3;return result;}
}

 

需求:

定义方法,比较两个长方形的面积。

package com.wy.methoddemo;public class MethodDemo5 {public static void main(String[] args) {double area1=getArea(5.3,1.7);double area2=getArea(2.4,2.7);if(area1>area2){System.out.println("第一个大");}else{System.out.println("第二个大");}}public static double getArea(double len,double width){double area=len*width;return area;}
}

5.注意

三 方法的重载

  • 方法重载概念

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

    • 多个方法在同一个类中

    • 多个方法具有相同的方法名

    • 多个方法的参数不相同,类型不同或者数量不同

 

练习

  • 需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)

package com.wy.methoddemo;public class MethodDemo6 {public static void main(String[] args) {compare((byte) 10,(byte) 20);compare(10,20);}public static void compare(byte b1,byte b2){System.out.println(b1==b2);System.out.println("byte");}public static void compare(short s1,short s2){System.out.println(s1==s2);System.out.println("short");}public static void compare(int i1,int i2){System.out.println(i1==i2);System.out.println("int");}public static void compare(long n1,long n2){System.out.println(n1==n2);System.out.println("long");}
}

 

四 练习

1.数组遍历

  • 需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]

package com.wy.methoddemo.test;public class Test1 {public static void main(String[] args) {int[] arr={11,22,33,44,55};printArr(arr);}public static void printArr(int[] arr){System.out.print("[");for (int i = 0; i < arr.length; i++) {if(i==arr.length-1){System.out.print(arr[i]);}else{System.out.print(arr[i]+", ");}}System.out.println("]");}
}

 

2.

需求:设计一个方法用于获取数组中元素的最大值

package com.wy.methoddemo.test;public class Test2 {public static void main(String[] args) {int[] arr={1,5,7,3,8,10};int max = getMax(arr);System.out.println(max);}public  static int getMax(int[] arr){int max=arr[0];for (int i = 1; i < arr.length; i++) {if(arr[i]>max){max=arr[i];}}return max;}
}

 

3.

需求:定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处 

 

package com.wy.methoddemo.test;public class Test3 {public static void main(String[] args) {int[] arr={1,5,3,6,99,36};boolean flag=contains(arr,99);System.out.println(flag);}public static boolean contains(int[] arr,int number){for (int i = 0; i < arr.length; i++) {if(arr[i]==number){return true;}}return false;}
}

4.

需求:定义一个方法copyOfRange(int[] arr,int from, int to)

功能:将数组arr中从索引from(包含from)开始。到索引to结束(不包含to)的元素复制到新数组中。将新数组返回

 

package com.wy.methoddemo.test;public class Test4 {public static void main(String[] args) {int[] arr={1,2,3,4,5,6,7,8,9};int[] copyArr = copyOfRange(arr, 3, 7);for (int i = 0; i < copyArr.length; i++) {//打印System.out.print(copyArr[i]);}}public  static  int[] copyOfRange(int[] arr,int from, int to){//动态定义数组:不知道元素int[] newArr=new int[to-from];//拷贝int index=0; //伪造索引for (int i = from; i < to; i++) {newArr[index]=arr[i];index++;}return newArr;}
}

 

五 方法的内存

局部变量

 

 数组 new---》堆

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql-数据库压力测试

安装软件 官方软件 安装插件提供了更多的监听器选项 数据库驱动 数据库测试 配置 这里以一个简单的案例进行&#xff0c;进行连接池为10,20,30的梯度压测&#xff1a; select * from tb_order_item where id 1410932957404114945;新建一个线程组 新增一个连接池配置 新建一…

驾驭AI绘画:《AI魔法绘画》带你秒变顶级画手!

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

从零开发短视频电商 Tesseract OCR 的 Java 拓展库 javacpp-presets

文章目录 简介添加依赖识别示例示例一 识别本地图片示例二 识别图像中的各个组件&#xff08;比如文本行&#xff0c;单词&#xff0c;或单个字符&#xff09;示例三 使用迭代器遍历识别结果及其选择项示例四 方向和脚本检测示例五 结果迭代器示例六 设置引擎、页面分割模式、语…

redis之布隆过滤

目录 1、redis之布隆过滤 2、布隆过滤器原理 3、布隆过滤器使用步骤 初始化bitmap 添加占坑位 判断是否存在圜 1、redis之布隆过滤 布隆过滤&#xff1a;有一个初值都为0的bit数组和多个哈希函数构成&#xff0c;用来快速判断集合中是否存在某个元素。目的&#xff1a;减…

Python Paramiko 使用交互方式获取终端输出报错

近期接到一个需求&#xff0c;要批量登录网络设备获取配置。 原计划使用 Paramiko exec即可&#xff0c;但是后来发现&#xff0c;有些设备命令也执行了&#xff0c;但是没有回显。 于是尝试使用 invoke_shell() 方式。 前期调试倒是OK&#xff0c;直到遇见一个输出内容较长的…

python官网下载慢怎么办?这里是一些解决方法

为什么Python官网下载速度慢&#xff1f; Python官网是开源软件的官方网站&#xff0c;提供了Python编程语言的最新版本和相关资源供开发者下载。然而&#xff0c;由于全球用户访问量较大&#xff0c;有时候会导致Python官网的下载速度变慢或不稳定。这对于急需获取Python的开…

Kubernetes基础(十五)-k8s网络通信

1 k8s网络类型 2 Pod网络 2.1 同一pod内不同容器通信 Pod是Kubernetes中最小的可部署单元&#xff0c;它是一个或多个紧密关联的容器的组合&#xff0c;这些容器共享同一个网络命名空间和存储卷&#xff0c;因此Pod中的所有容器都共享相同的网络命名空间和IP地址——PodIP&a…

web 前端实现一个根据域名的判断 来显示不同的logo 和不同的标题

1.需求 有可能我做一个后台 web端 我想实现一套代码的逻辑 显示不同的公司主题logo以及内容&#xff0c;但是实际上 业务逻辑一样 2.实现 建一个store oem.ts 这个名为是 oem系统 oem.ts import { defineStore } from pinia;import { store } from /store;const oemDataLis…

Vue中v-on 可以监听多个方法吗

当然可以&#xff01;Vue.js是一款非常强大的JavaScript库&#xff0c;它提供了很多方便的方法和指令&#xff0c;使我们可以更容易地构建交互式的Web应用程序。其中&#xff0c;v-on指令是Vue.js中一个非常重要也非常常用的指令&#xff0c;它用于监听DOM事件&#xff0c;并在…

质数基础筛法

文章目录 埃氏筛线性筛 埃氏筛 埃氏筛是一种筛素数的方法&#xff0c;埃氏筛的思想很重要&#xff0c;主要是时间复杂度 朴素的埃氏筛的时间复杂度是 O ( n l o g n ) O(nlogn) O(nlogn) 这个复杂度是调和级数 vector<int>p; int vis[N];void solve() {rep(i,2,n){if(…

07-Java桥接模式 ( Bridge Pattern )

Java桥接模式 摘要实现范例 桥接模式&#xff08;Bridge Pattern&#xff09;是用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化 桥接模式涉及到一个作为桥接的接口&#xff0c;使得实体类的功能独立于接口实现类&#xff0c;这两种类型的类可被结构化改变而互不影…

【知识整理】管理即服务,识人、识己

1. 背景 一个人的力量是有限的&#xff0c;如何规模化生产&#xff0c;人员的规模化组织&#xff0c;如何提升合作的规模和效率。 管理的本质&#xff1a; 1、服务他人&#xff1f; 2、激发主动性&#xff1f; 3、氛围宽松&#xff1f; 上面是理念&#xff0c; 1、那如何…

计划任务功能优化,应用商店上架软件超过100款,1Panel开源面板v1.9.6发布

2024年2月7日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.9.6版本。 在v1.9.5和v1.9.6这两个小版本中&#xff0c;1Panel针对计划任务等功能进行了多项优化和Bug修复。此外&#xff0c;1Panel应用商店新增了3款应用&#xff0c;上架精选软件应用超过1…

Python解决SSL不可用问题

参考&#xff1a;https://blog.csdn.net/weixin_44894162/article/details/126342591 一、问题描述&#xff1a; 报错概述&#xff1a; WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ## 警告:pip配…

酷开科技AIGC技术:重塑多媒体内容与交互体验

在当今数字媒体时代&#xff0c;酷开科技以其智能的AIGC技术&#xff0c;正在引领一场多媒体内容与交互体验的革新。AIGC&#xff0c;即人工智能、物联网、云计算和大数据的结合&#xff0c;是酷开科技的核心技术&#xff0c;为各类终端设备提供了强大的智能化支持。 酷开科技…

编码技巧——在项目中使用Alibaba Cloud Toolkit远程部署

背景 在新公司项目开发&#xff0c;当前项目为自建项目&#xff0c;意思是从开发到运维都需要自己负责&#xff0c;远程的服务器也是自己搭建的win操作系统&#xff1b; 之前在大厂工作时&#xff0c;一般提交代码之后&#xff0c;CICD流水线会自动的执行最新代码的拉取、构建打…

【Java多线程案例】单例模式

1. 单例模式概念 设计模式&#xff1a;谈到单例模式&#xff0c;我们首先需要知道什么是设计模式&#xff0c;设计模式是软件工程中的一大重要概念&#xff0c;是被广泛认可并使用于解决特定实际问题的代码设计经验&#xff0c;校招中常考的设计模式有单例模式、工厂模式 等&a…

asp.net core 依赖注入 实例化对象实例

在面向对象编程中&#xff0c;推荐使用面向接口编程&#xff0c;这样我们的代码就依赖于服务接口&#xff0c;而不是依赖于实现类&#xff0c;可以实现代码解耦。 名称解释&#xff1a; 我们把负责提供对象的注册和 获取功能的框架叫作“容器”&#xff0c; 注册到容器中的对象…

CMS 检测神器:CMSeek 保姆级教程(附链接)

一、介绍 CMSeek&#xff08;Content Management System Exploitation and Enumeration Toolkit&#xff09;是一款用于检测和利用网站上可能存在的内容管理系统&#xff08;CMS&#xff09;漏洞的开源工具。它旨在帮助安全研究人员和渗透测试人员识别目标网站所使用的CMS&…

服务器安装Docker (centOS)

1. 卸载旧版本的Docker&#xff08;如果有&#xff09; 首先&#xff0c;如果您的系统上安装了旧版本的Docker&#xff0c;需要将其卸载。Docker的旧版本称为docker或docker-engine。使用以下命令来卸载旧版本&#xff1a; sudo yum remove docker \ docker-client \ docker-…