首页 > 编程语言 >5.Java方法

5.Java方法

时间:2024-04-21 15:55:46浏览次数:15  
标签:Java num1 num2 int result 方法 public

Java方法

方法

  • 方法是语句的集合,它们在一块执行一个功能

  • 命名规则:首字母小写的驼峰命名规则

  • 方法包含于类或对象中

  • 方法在程序中被创建,在其他地方被引用

方法的定义

一段用来完成特定功能的代码片段

方法包含一个方法头和一个方法体:

  1. 修饰符
  2. 返回值类型
  3. 方法名
  4. 参数类型:形式参数,实参,无参数
  5. 方法体 :(return)
public class Demo01 {
    //main方法
    public static void main(String[] args) {
        //实际参数:实际调用传递给他的参数
        int sum = add(1,2);
        System.out.println(sum);
        //test();
    }
    //加法
    //形式参数,用来定义作用的
    public static int add(int a,int b)
    {
        return a+b;
    }
    public static void test()
    {
        for (int i = 1; i <= 100; i++) {
            if(i%5==0)
            {
                System.out.print(i+"\t");
            }
            if(i%(5*3)==0){
                System.out.println();
            }
        }
    }
}

方法调用

Java是值传递

方法重载

重载就是在一个类中,有相同的函数名称,但是参数不同

规则:

  1. 方法名相同
  2. 参数列表必须不同
  3. 方法的返回类型可以相同也可以不相同
  4. 仅仅返回类型不同不足以成为方法的重载

public class Demo02 {
    public static void main(String[] args) {
        double res=max(10,20);
        System.out.println(res);
    }
    //比大小 //方法重载--参数类型不同
    public static double max(double num1,double num2)
    {
        double result=-1;
        if(num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if(num1>num2){
            result=num1;
        }else{
            result=num2;
        }
        return result;
    }
    //比大小 //方法重载--参数数量不同
    public static int max(int num1,int num2,int num3)
    {
        int result=-1;
        if(num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if(num1>num2){
            result=num1;
        }else{
            result=num2;
        }
        return result;
    }
    //比大小
    public static int max(int num1,int num2)
    {
        int result=-1;
        if(num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if(num1>num2){
            result=num1;
        }else{
            result=num2;
        }
        return result;
    }

}

命令行传参

public class Demo03 {
    public static void main(String[] args) {
        //args.length 数组长度
        //命令行传参
        for (int i = 0; i < args.length; i++) {
            System.out.println("args["+i+"]:"+args[i]);
        }
    }
}

可变参数

也叫 不定项参数

  1. 在方法声明中,在指定参数类型后加一个省略号(...)。

  2. 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在他之前声明

public class Demo04 {
    public static void main(String[] args) {
        //可变参数
        Demo04 demo04 = new Demo04();
        demo04.test(1,2,3,4);
    }
    public void test(int x,int... i)
    {
        System.out.println(x);
        System.out.println(i[0]);
        System.out.println(i[1]);
        System.out.println(i[2]);
    }
}

递归

自己调用自己

递归头:什么时候不调用自身方法。如果没有头,则会死循环

递归体:什么时候需要调用自身方法。

public class Demo06 {
    //递归思想
    //阶乘体现递归
    public static void main(String[] args) {
        System.out.println(f(3));
    }

    public static int f(int n)
    {
        if(n==1){
            return 1;
        }
        return n*f(n-1);
    }
}

标签:Java,num1,num2,int,result,方法,public
From: https://www.cnblogs.com/zuojiawang/p/18149029

相关文章

  • JAVA学习第一次Blog
    前段时间老师在PTA上发布了三次大作业,这几次大作业的难度都比较高,对我来说除了前面的题目,最后的大分数压轴题我每次都做不出来。这与上个学期学的C语言作业难度简直不是一个等级的,不过JAVA老师也在上课期间一直强调,“我们JAVA课程一定要做出改变,不能说怕学生挂科就把难度设置的很......
  • Java安全基础之Java序列化与反序列化
    目录ObjectInputStream和ObjectOutputStreamjava.io.Serializable自定义序列化和反序列化Java的序列化(Serialization)是指将对象转换为字节序列的过程,而反序列化(Deserialization)则是将字节序列转换回对象的过程。序列化和反序列化通常用于在网络上传输对象或者将对象持久化到......
  • Java基础
    基础语法注释、标识符、关键字注释:单行、多行、文档注释///*注释*//***/标识符字母$_关键字数据类型强类型语言:先定义后使用弱类型语言基本类型(primitive)数字类型整数类型byteshortintlong浮点类型floatdouble......
  • 三次答题判题程序练习让你入门Java。
    (1)前言本阶段三次题目集涵盖了从基础编程概念到较复杂算法设计等多个知识点。题量适中,难度呈梯度上升,从简单的数据结构与算法实现到复杂的问题求解,逐步挑战学生的编程能力。第一次题目集主要考察基本语法、数据类型和简单的控制结构;第二次题目集则增加了数组、链表等数据结构的应......
  • js 实现可缓存方法
    1.概述有些场景下,如果一些函数需要大量的运算,但是他们的传入的参数是一样的,这个时候,我们可以将这些运算缓存下来,之后的运算就可以不用重复计算了。2.实现方法<script>//可以缓存的函数functioncacheFunc(fn){ //缓存处理 letcache=newMap(); returnfunction(...args)......
  • 实现类的注册方法
    1.抽象类@Qualifier指定绑定的注册类@Autowired@Qualifier("professionOrderSendEmailImpl")privateSendBiDataService<ProfessionOrderEntity>sendBiDataService;2.实现类@AutowiredProfessionOrderSendEmailImplprofessionOrderSendEmai......
  • Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算
    Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算1.定义请求和返回对象的上下文对象packagecom.example.core.mydemo.java.filter;importjava.time.LocalDateTime;publicclassOrderReqContext{/***租客会员号*/StringmemNo;......
  • Java面试题:请谈谈对ThreadLocal的理解?
    ThreadLocal是一种特殊的变量存储机制,它提供了一种方式,可以在每个线程中保存数据,而不会受到其他线程的影响。这种机制在多线程编程中非常有用,因为它允许每个线程拥有自己的数据副本,从而避免了数据竞争和线程之间的干扰,以空间换时间。在Java中,ThreadLocal的实现主要涉及到三个类:Th......
  • [转帖]十年拉锯战终结束,Google 赢得 Java API 版权诉讼
    https://www.oschina.net/news/136073/googles-wins-lawsuit Google和Oracle(甲骨文)在法庭上就Android操作系统中Java编程语言的使用问题争吵了十年。美国最高法院在周一以6比2的投票结果裁定,Google对Java代码的使用被归为"合理使用",没有违反联邦版权法......
  • [转帖]Oracle 败了、谷歌赢了:Java API 版权案最终裁决
    https://zhuanlan.zhihu.com/p/362496136 周一,最高法院在Oracle围绕移动操作系统Android中所用软件的一起旷日持久的版权诉讼中判谷歌胜诉。法院的判决为6比2。大法官AmyConeyBarrett没有参与此案。该案涉及谷歌用于构建Android的12000行代码,这些代码是从SunMicrosy......