首页 > 编程语言 >【Java学习笔记】方法的使用

【Java学习笔记】方法的使用

时间:2024-07-02 21:28:51浏览次数:22  
标签:调用 Java System 笔记 学习 返回值 方法 public out

【Java学习笔记】方法的使用

一、一个例子

在这里插入图片描述
把茶泡好喝有上图六个步骤,不同的人来学习泡茶的方法,每个人都要说一次会很烦。但是如果我们把它制作成上图所示的步骤图,让他们自己看,既清楚又节约时间。而且有什么改进工艺,可以直接修改步骤图,如何再让每个人看即可,不必费力和每个人再说一次。Java中的类就是起一个这样的作用——直接复用,利于维护。

二、方法的概念及使用

(一)什么是方法

Java中的“方法”类似于C语言中的“函数”,它是一个可以独立完成某种功能的代码片段。
存在的意义:(多体会,不用记)

  1. 模块化
  2. 复用
  3. 易理解
  4. 调用现有方法,省力

(二)方法的定义

方法语法格式:
修饰符 返回值类型 方法名称(参数类型 形参名,…){
方法体代码;
return 返回值(与返回值类型对应);//void返回值类型不需要返回值
}

public class Test003 {
    //main方法是最常见的方法了。
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

注意:

  1. 方法名称采用小驼峰命名(第一个单词首字母小写,其他单词首字母大写)。
  2. 参数列表可以什么都不写。
  3. 方法必须定义在类当中,且方法不能嵌套定义,不用声明,也没有声明一说。。
  4. 修饰符暂时使用public static搭配,后面学类与对象可以再改其他。

(三)方法调用的执行过程

方法调用过程:
调用方法–传递参数–找到方法地址–执行被调用方法的方法体–被调方法结束返回–回到主调方法继续往下执行

注意事项:

  1. 只有调用才执行。
  2. 方法可多次调用。

(四)实参和形参的关系(重要)

方法的形参相当于数学函数中的自变量,用来接受方法被调用时传递的值。
形参是方法被定义时借助的一个变量,并在方法被调用时接收传递过来的值。
可以理解形参是被实参赋值的一个变量,它们在物理空间属于不同的两个存储位置。(传值调用)

(五)没有返回值的方法

方法的返回值类型是void,就可以没有返回值。

三、方法重载

public class Test012 {
    public static int add(int a,int b){
        return a+b;
    }
    public static double add(double a,double b,double c){
        return a+b+c;
    }
    public static void main(String[] args) {
        int a=1,b=3;
        System.out.println(add(a,b));
        double x=1.2,y=1.4,z=1.5;
        System.out.println(add(x, y, z));
    }
}

(一)为什么需要方法重载

起名困难,且同类型的方法使用一个名称,可以使使用者易用。

(二)方法重载概念

相当于人交流的一词多义。
在Java中,如果多个方法的名字相同,参数列表不同(,返回值可以不同也可以相同),则称该几种方法被重载了。

(三)方法签名

解释了为什么类中可以定义方法名相同的方法。
具体方式是:方法全路径名称+参数列表+返回值类型,构成了方法完整的名字。
java -v指令(反汇编)可以查看。

四、递归

(一)生活中的故事

经典故事:老和尚和小和尚讲老和尚和小和尚讲故事如何讲个没完没了的事。

(二)递归的概念

一个方法在执行过程中调用自身。
必要条件:

  1. 将原问题划分成子问题(解法相同)。
  2. 递归出口(要能结束)。

(三)递归执行过程分析

先执行完递归方法执行到最后一项,再依次回归返回值,并且逐次销毁。

(四)举例

汉诺塔问题

public class Test014 {
    public static int count=0;
    public static void hanoi(char a,char b,char c,int n){
        if(n==1){
            System.out.println(a+"->"+c);
            count++;
        }else if(n==2){
            System.out.print(a+"->"+b+" ");
            count++;
            System.out.print(a+"->"+c+" ");
            count++;
            System.out.print(b+"->"+c+" ");
            count++;
        }else{
            hanoi(a,c,b,n-1);
            System.out.println(a+"->"+c);
            count++;
            hanoi(b,a,c,n-1);
        }
    }
    public static void main(String[] args) {
        int n=4;
        hanoi('A','B','C',n);
        System.out.println(count);
    }
}

五、结束语

我是小邓,一个励志写好代码挣大钱的男人。希望通过博客在记录自己的学习历程的同时,认识更多志同道合的朋友。如果您觉得我的文章对您有帮助的话,请不要吝惜您的一键三连(点赞关注加收藏),这对我很重要,谢谢!

标签:调用,Java,System,笔记,学习,返回值,方法,public,out
From: https://blog.csdn.net/2401_82883308/article/details/140064713

相关文章

  • 【esp32 学习笔记】将lvgl融入esp-idf项目中
    lvgl科普lvgl 主要特点:Github库整体了解版本号编排原则屏幕兼容性LVGL 问题处理: lvgl与 FreeRTOS由于esp-idf本身带了FreeRTOS系统,因此需要关注一下操作系统相关的内容:voidlvgl_thread(void){while(1){uint32_ttime_till_next;......
  • Java学习笔记
      Linux系统-部署-运维系列导航  maven多环境配置,根据激活环境,只打包对应的配置文件1.多环境配置<profiles><profile><id>dev</id><properties><!--环境标识,需要与配置文件的名称相对应--><......
  • 李沐动手学深度学习V2-chap_preliminaries
    李沐动手学深度学习V2文章内容说明本文主要是自己学习过程中的随手笔记,需要自取课程参考B站:https://space.bilibili.com/1567748478?spm_id_from=333.788.0.0课件等信息原视频简介中有CSV文件修改读取成张量tensor数据预处理首先(创建一个人工数据集,并存储在CSV(逗号分隔值......
  • Java基础(十一):抽象类、接口、内部类
    目录一、抽象类1、语法格式2、abstract修饰类3、abstract修饰方法二、接口1、定义格式2、接口的说明3、接口的使用规则3.1、类实现接口3.2、接口的多实现3.3、接口的多继承3.4、接口与实现类对象构成多态引用3.5、使用接口的静态成员3.5、使用接口的静态方法4、JDK8中......
  • Transformer模型学习
    Transformer模型是深度学习领域的一种创新架构,尤其在自然语言处理(NLP)任务中表现出色。它是由Vaswani等人在2017年的论文《AttentionisAllYouNeed》中首次提出的。以下是对Transformer模型的详细介绍:Transformer的起源和重要性Transformer模型的提出是为了解决传统循环......
  • opencascade AIS_InteractiveContext源码学习7 debug visualization
    AIS_InteractiveContext前言交互上下文(InteractiveContext)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才......
  • Perl 学习笔记
    Perl是一种高效、功能强大且灵活的编程语言,广泛用于文本处理、系统管理、网络编程、Web开发等领域。它由LarryWall在1987年首次发布,名字来源于“PracticalExtractionandReportLanguage”。Perl的特点强大的文本处理能力:Perl有着强大的正则表达式和字符串处理功能,......
  • 【基于星火大模型的群聊对话分角色要素提取BaseLine学习笔记】
    @目录项目背景项目任务我的思路Baseline详解数据抽取完整代码星火认知大模型Spark3.5Max的URL值,其他版本大模型URL值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看星火认知大模型调用秘钥信息,请前往讯飞开放平台控制台(https://console.xfyun.cn/services/bm35)查看星火......
  • 现代机器学习技术导论-清华大学王东
    本书的主体内容是基于该研讨班形成的总结性资料,从2016年8月开始整理,历经数次大规模修正,直到2019年1月定稿。全书共分十一章,内容如下:目录第一章:介绍机器学习研究的总体思路,发展历史与关键问题:第二章:介绍线性模型,包括线性预测模型,线性分类模型和线性高斯概率模型;第三章......
  • 【JavaSE】基础篇(六)类型转换与进制书写
    隐式转换:把一个取值范围小的数值或者变量,赋值给另一个取值范围大的变量。并转换类型。取值范围小的数据,和取值范围大的数据进行运算时,小的会先提升为大的之后,再进行运算。(byte、short、char三种数据在运算时,都会提升为int,然后再进行运算)而Java中数据类型不一致无法进行......