java学习06---方法

news2024/9/25 9:31:34

一 方法

方法(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---》堆

总结

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

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

相关文章

搭建macOS开发环境-1:准备工作

请记住&#xff1a; 最重要的准备工作永远是&#xff1a;备份数据 !!! 通过图形界面检查 Mac 的 CPU 类型&#xff1a; 在搭载 Apple 芯片的 Mac 电脑上&#xff0c;“关于本机”会显示一个标有“芯片”的项目并跟有相应芯片的名称&#xff1a; 通过命令行检查Mac的CPU类型 …

【Linux开发工具】yum命令详解

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.概念2.yum的配置信…

Spring Cloud使用ZooKeeper作为注册中心的示例

简单的Spring Cloud应用程序使用ZooKeeper作为注册中心的示例&#xff1a; 1.新建模块&#xff1a; 2.勾选依赖&#xff1a; 3.在pom.xml文件中做出部分修改及添加Spring Cloud Zookeeper 依赖版本&#xff1a; 完整pom文件 <?xml version"1.0" encoding&q…

FlinkSql通用调优策略

历史文章迁移&#xff0c;稍后整理 使用DataGenerator 提前进行压测&#xff0c;了解数据的处理瓶颈、性能测试和消费能力 开启minibatch&#xff1a;"table.exec.mini-batch.enabled", "true" 开启LocalGlobal 两阶段聚合&#xff1a;"table.exec.m…

如何修复Mac的“ kernel_task” CPU使用率过高的Bug?

当计算机开始缓慢运行时&#xff0c;这从来都不是一件有趣的事情&#xff0c;但是当您弄不清它为何如此缓慢时&#xff0c;甚至会变得更糟。如果您已经关闭了所有程序&#xff0c;并且Mac上的所有内容仍然感觉像是在糖蜜中移动&#xff0c;这可能是令人讨厌的kernel_task导致高…

HTTP2: springboot启用http2

springboot http2应用条件 使用servlet 4.0jdk 9tomcat 9 springboot 开启h2 创建证书 创建脚本&#xff1a; keytool -genkey -keyalg RSA -alias wisely -keystore keystore.jks -storepass pass1234 -validity 4000 -keysize 2048添加springboot配置 server:port: 808…

假虚Telegram网站传播远控窃密木马

前言 今天下午朋友突然微信找到我说使用Telegram之后电脑卡的不行&#xff0c;让我看看&#xff1a; 电脑变卡&#xff0c;如果不是软件或系统问题&#xff0c;要么就是中了挖矿&#xff0c;要么就是中了远控木马&#xff0c;拿到样本分析之后&#xff0c;可以确认&#xff0c…

电子电器架构 —— 网关测试脚本分析

电子电器架构 —— 网关测试 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何 消耗你的人和事,多看一眼都是你的不对。非…

vue3-内置组件-KeepAlive

KeepAlive <KeepAlive> 是一个内置组件&#xff0c;它的功能是在多个组件间动态切换时缓存被移除的组件实例。 基本使用 默认情况下&#xff0c;一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时&#xff0c;会创建…

猫头虎分享已解决Bug ‍ || TypeError: Cannot interpret ‘float‘ value as integer

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【第二届 Runway短视频创作大赛】——截至日期2024年03月01日

短视频创作大赛 关于AI Fil&#xff4d; Festival竞赛概况参加资格报名期间报名方法 提交要求奖品附录 关于AI Fil&#xff4d; Festival 2022年成立的AIFF是一个融合了最新AI技术于电影制作中的艺术和艺术家节日&#xff0c;让我们得以一窥新创意时代的风采。从众多参赛作品中…

【人工智能】横扫市场的巨星大模型:探秘当今最热门的AI力量

今年&#xff0c;ChatGPT成了大家的明星&#xff0c;简直是个神奇的助手&#xff01;问什么问题&#xff0c;都秒回&#xff0c;写各种文字、甚至代码&#xff0c;简直是工作利器。而国内这半年AI领域热度不减&#xff0c;涌现了一批新公司和产品&#xff0c;大厂也在风头上。A…

第十个知识点:继承

在ES6之后&#xff0c;javascript引入了类的概念&#xff0c;也就是说与java相同&#xff0c;我们可以在js文件中创建类与对象&#xff0c;然后通过extend继承 <script>class Father {constructor(name) {//父类构造器this.name name;}speak(){//父类方法console.log(我…

【Spring】Tomcat服务器部署

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Spring⛺️稳中求进&#xff0c;晒太阳 单体项目部署 本地工作 项目在本地开发完毕之后进行一些必要参数的修改。 比如&#xff1a; 数据库的JDBC的配置文件&#xff0c;还有前端页面的…

(2024,低比特模型量化,模型微调,QuEST,TAQuant)QuEST:通过高效选择性微调进行低比特扩散模型量化

QuEST: Low-bit Diffusion Model Quantization via Efficient Selective Finetuning 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 相关工作 3. 方法 3.1. 预备知识 3…

创建一个VUE项目(vue2和vue3)

背景&#xff1a;电脑已经安装完vue2和vue3环境 一台Mac同时安装vue2和vue3 https://blog.csdn.net/c103363/article/details/136059783 创建vue2项目 vue init webpack "项目名称"创建vue3项目 vue create "项目名称"

防静电地板行业研究:市场需求不断的扩大

防静电地板又叫做耗散静电地板&#xff0c;是一种地板&#xff0c;当它接地或连接到任何较低电位点时&#xff0c;使电荷能够耗散&#xff0c;以电阻在10的5次方到10的9次方欧姆之间为特征。 目前防静电地板产业还没有集中完成规模化&#xff0c;标准化&#xff0c;规范化&…

leetCode二叉树的堂兄弟节点

题目描述 在二叉树中&#xff0c;根节点位于深度 0 处&#xff0c;每个深度为 k 的节点的子节点位于深度 k1 处。 如果二叉树的两个节点深度相同&#xff0c;但 父节点不同 &#xff0c;则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root &#xff0c;以…

(十七)springboot实战——spring securtity的授权流程源码解析

前言 本节内容是关于spring security安全框架授权流程的源码分析&#xff0c;spring security的授权流程主要是在FilterSecurityInterceptor过滤器中实现的。我们会通过源码层级的分析&#xff0c;了解清楚spring security的底层是如何实现用户授权的。 正文 1.配置一个请求…

AdaBoost算法

Boosting是一种集成学习方法&#xff0c;AdaBoost是Boosting算法中的一种具体实现。 Boosting方法的核心思想在于将多个弱分类器组合成一个强分类器。这些弱分类器通常是简单的模型&#xff0c;比如决策树&#xff0c;它们在训练过程中的错误会被后续的弱分类器所修正。Boosti…