首页 > 编程语言 >java基础Day6 java方法

java基础Day6 java方法

时间:2025-01-23 12:12:16浏览次数:1  
标签:java Day6 System int static println 方法 public

一、什么是方法?

System.out.println()//System是一个类,out是一个对象,println()就是一个方法

方法是语句的集合

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

Ex. 加法

Demo01

//加法
    public int add(int a, int b) {
        return a + b;
    }

此时在main方法里直接调用不了,改为:

public class Demo01 {
    //main方法
    public static void main(String[] args) {
        int sum = add(1, 2);
        System.out.println(sum);
    }

    //加法
    public static int add(int a, int b) {
        return a + b;
    }
}

设计方法的原则:一个方法只完成一个功能(原子性)

二、方法的定义

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;//return还用来终止方法
}

方法名中的参数是形参,用来定义,等同于占位符

三、方法的调用

对象名.方法名(实参列表)

java都是值传递

四、方法的重载

Demo01

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

public class Demo01 {
    public static void main(String[] args) {
        int sum1 = add(1, 2);
        System.out.println(sum1);
        double sum2 = add(1.1, 2.2);
        System.out.println(sum2);
    }

    public static int add(int a, int b) {
        return a + b;
    }

    public static double add(double a, double b) {
        return a + b;
    }
    
    public static int add(int a, int b, int c) {}
    ...
}

方法的重载的规则:

  • 方法名称必须相同;
  • 参数列表必须不同(个数不同、类型不同或参数排列顺序不同等);
  • 方法的返回类型可以相同也可以不相同;
  • 仅仅返回类型不同不足以成为方法的重载。

实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法;如果匹配失败,则编译器报错。

五、命令行传递参数

CommandLine

在cmd中
C:\Users\xieyueting\Desktop\javaSE\code\JavaSE\Method\src>javac -encoding UTF-8 CommandLine.java

C:\Users\xieyueting\Desktop\javaSE\code\JavaSE\Method\src>java CommandLine

C:\Users\xieyueting\Desktop\javaSE\code\JavaSE\Method\src>java CommandLine this is
args[0]: this
args[1]: is

六、可变参数

也可以叫作不定项参数

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

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

public class Demo03 {
    public static void main(String[] args) {
        Demo03 demo03 = new Demo03();
        demo03.test(1,2,3,4,5);
    }
    
    public void test(int x,int... i){
        System.out.println(i[0]);//输出2
    }
}

Ex. 排序

Demo03

public class Demo03 {
    public static void main(String[] args) {

        printMax(5.2,4,9,6.3,12.2,7.0);
        printMax(new double[]{1,2,3});
    }

    //排序
    public static void printMax(double... numbers){
        if(numbers.length == 0){
            System.out.println("No argument passed!");
            return;
        }
        double result = numbers[0];
        for(int i = 1; i < numbers.length; i++){
            if(result < numbers[i]){
                result = numbers[i];
            }
        }
        System.out.println(result);
    }

}

七、递归

方法自己调用自己

递归结构包含两个部分:

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

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

Demo04

public class Demo04 {
    public static void main(String[] args) {
        Demo04 test = new Demo04();
        test.test();
    }

    public void test(){
        test();
    }
}
/*会报错死循环:
Exception in thread "main" java.lang.StackOverflowError*/

Ex. 阶乘

Demo05

public class Demo05 {
    public static void main(String[] args) {
        int result1 = f(1);
        int result2 = f(2);
        int result3 = f(5);
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);
    }

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

java都是使用栈机制

能不用递归就不用递归,占大量空间内存

标签:java,Day6,System,int,static,println,方法,public
From: https://www.cnblogs.com/tse121/p/18687477

相关文章

  • Web-Chains:Web 版 Java Payload 生成与利用工具
    免责声明本文所提供的文字和信息仅供学习和研究使用,请读者自觉遵守法律法规,不得利用本公众号所提供的信息从事任何违法活动。本文不对读者的任何违法行为承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。工具介绍Web-Chains项目,又名Java-Chains项目,我们站在巨人......
  • (附源码)基于Java的工艺品展示系统的设计与实现-计算机毕设 37411
    基于Java的工艺品展示系统的设计与实现摘要本论文主要论述了如何使用Java语言开发一个工艺品展示系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述工艺品展示系统的当前背景以及系统开发的目的,后续章......
  • Cookies,Session,Storage 封装方法,包含过期时间
    importCookiesfrom'js-cookie'importrouterfrom'@/router'constTokenKey='token'exportfunctiongetToken(){returnCookies.get(TokenKey)??''}exportfunctionsetToken(token:string){returnCoo......
  • 16 个 JavaScript 简写神技,提效 60%!
    今天看到一片文章觉得很适合在工作中常常用得到1.三元运算符简化条件判断//传统写法letresult;if(someCondition){result='yes';}else{result='no';}//简写方式constresult=someCondition?'yes':'no';2.空值合并运算符//传统写法cons......
  • 【Java开发】magic-api:一个Java接口快速开发框架
    今天给小伙伴们介绍一个Java接口快速开发框架-magic-api简介magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTPAPI接口开......
  • 织梦网站的修改方法
    织梦网站的修改方法主要包括以下几个方面:模板修改:通过织梦后台管理系统,找到“模板”或“模板管理”等相关菜单,选择需要修改的模板文件,点击“编辑”按钮,进入模板编辑界面,修改模板代码。内容修改:在织梦后台管理系统中,可以添加、编辑和删除网站的各种内容,如文章、产品、图片等。......
  • 初创团队如何实现高效率管理任务和人员?4种方法和工具学起来
    在当今竞争激烈、节奏快速的商业环境中,团队高效管理成为企业脱颖而出、持续发展的核心要素。高效管理的团队犹如一部精密运转的机器,各部分协同配合,能够显著提升工作效率,增强团队协作能力,保障项目顺利推进,为企业创造更大的价值。接下来,我们将深入剖析实现团队高效管理的关键策略,以......
  • 记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法
    大语言模型(LLM)通过其参数储存了大量信息,这些信息主要以密集层中线性矩阵变换的权重形式存在。然而,参数规模的扩大必然导致计算成本和能源消耗的显著增加。这种参数存储方式是否可以通过更高效的键值查找机制来优化?尽管此前已有多项相关研究,但在当前AI架构规模下的实践尚属首次......
  • 最新毕设-Django-新能源汽车推荐系统-30063(免费领项目)可做计算机毕业设计JAVA、PHP、
    摘要本论文主要论述了如何基于Django框架开发一个新能源汽车推荐系统,本系统将严格按照软件开发流程进行各个阶段的工作,爬取懂车帝的汽车信息,面向对象编程思想进行项目开发。在引言中,作者将论述新能源汽车推荐系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,......
  • js 数组 push() pop() shift() unshift() splice() sort() reverse() 的这些方法的用
    JavaScript的数组对象提供了多种方法来操作数组内容。以下是您提到的方法的简要说明和用法:1.`push()`-用途:向数组的末尾添加一个或多个元素,并返回新的长度。-语法:`array.push(element1,...,elementN)`-示例:`letarr=[1,2,3];arr.push(4);//arrisnow[1,......