java基础学习笔记——day07(方法、方法的重载、递归、成员变量、局部变量)

Java(基础)day02 输入、输出、数组、重载、递归 (5) (C++11起)std::string to_string(long double value); 阅读详情

java基础学习笔记——day07

1. 方法

1.1 什么是方法

  • 方法就是一个功能米快的集合,将不同用处的代码放置在一组 { } 中,形成一个代码块

  • 方法的好处

    1. ·方法可以提高代码的复用性
    2. 可以提高代码后期的扩展性/延展性
    3. 方面代码后期的维护

1.2 如何使用方法

1.2.1 方法的声明及使用
  • 格式及使用
public class Text{
	[修饰符] [static] {void或数据类型} 方法名(){
    	功能代码;
	}
}
例;
public class Text{
	public static vopid main(String[] args){
	method();//调用方法
	}
	public static void method(){
		Systrm.out.println("这是我的第一个方法");
	}
}
  • 注意:

    • 修饰符和static 可以不写
    • void和数据类型二选一
      • void表示该方法没有返回值
      • 如果有返回值则要选择数据类型
    • 方法要声明在类中,main方法的外
  • **调用:**在main方法中通过方法的名称进行调用

1.3 参数列表

  • 参数列表声明在方法名后面的小括号中,可以声明0~多个,用逗号隔开
public class Text{
    public static void main(String[] args){
        methopd(40,20);//40对应num1  20对应num2
    }
    public tatic void method(int num1,int num2){
        result =num1+num2;
        System.out.println(resulr);
    }
}
  • 注意事项:
    1. 将方法声明是的参数列表称之为形式参数 形参
    2. 对于调用者而言,传入的具体的参数的值称之为实际参数 实参
    3. 方法声明的参数列表只需要声明,不需要初始化就可以使用,因为该方法被调用之后一会将实际参数进行赋默认值
      1. 整数的默认值是 0
      2. 小数的默认值是 0.0
      3. boolean的而默认值是 false
      4. 字符串的默认值是 null
      5. 字符型的默认值是 一个空格
    4. 方法调用者而言,在调用方法的时候不能只看方法的名称,而且还要看方法的参数列表,这样才可以正确的找到需要被调用的方法
    5. 在一个类中,确定方法通过方法签名完场
      • 方法签名: 方法名称+参数列表
    6. 对于参数列表而言,具体的参数类型,个数,顺序都有一定的要求,要求取决于业务逻辑

1.4 变量的分类

  • 变量可以分为成员变量和局部变量
变量的分类声明的位置作用范围注意事项
局部变量声明在方法或代码块中。方法参数列表是属于该方 法的局部变量。在当前方法或代码块中都有效声明后一定要赋值
成员变量声明在类中,方法外当前类中都有效无需初始化调用时需要:要么将当前的成员变量前加 static修饰;要么就是通过创建当前类的所属 对象,通过对象访问。 无需初始化,每个不同类型的变量都存在默认 值。
i 成员变量
  • 声明在类中,方法外的变量称之为成员变量。
public class Text{
    static int num =10;
    int t=20;
    public static void main (String[] args){
        System.out.println("访问1:"+num);   
        int num = 20;        
        System.out.println("访问2:"+num);    
        Test02 t = new Test02();        						System.out.println(t.rt);
    }
     public static void method(){
          System.out.println(num);
     }
}
ii 局部变量
  • 定义在方法中或者是代码块中的变量,称之为局部变量,局部变量的生命周期只能在声明的 {} 中有 效。出了这个位置就没有任何效果。方法的参数列表中的变量属于当前方法的局部变量
public class Test {   
    public static void main(String[] args) {      
        //int num = 10;        
        //System.out.println("main"+num);     
        {            int num = 10;           
         System.out.println("代码块"+num);     
        }        int num = 10;        
        System.out.println("访问代码块"+num);   
    }
}
  • 代码块而言,通过一组大括号括起来 {} 代码块也分为:局部代码块、初始化块、静态代码块。
    局部代码块:声明在方法中的代码块。局部代码块中声明的变量只能在当前局部代码块中有效。
  • 局部代码块的优势:
    1. 缩减了变量的生命周期。
    2. 提高内存的使用率,降低内存开销

1.5 返回值

  • 被调用的方法可以将自己后的计算结果返回给调用处,方便后续的业务逻辑执行。返回值对于某些方 法而言是极其有必要的。
public class Method06 {  
    public static void main(String[] args) { 
        int r = 10;//1:    
        double area = getCircleArea(r);//2 //8  
    }    
    public static double getCircleArea(int r) {//3
        double pi = 3.14;//4     
        double area = pi*r*r;//5
        return area;//7    
    } 
}
  • 注意事项
    1. void 的方法没有返回值
    2. 一个方法可以不存在void,但是一定要有内容去填充void所在的位置
    3. 如果一个方法存在返回值,则该方法最后一行代码一定是return语句,return功能是返回具体的值
    4. main方法中,在调用完成某个具有返回值的方法之后,可以通过变量接收该值

1.6 方法的重载

  • 在同一个类中,同名的两个或者是多个方法,参数列表不同,我们称该多个方法为方法重载。
public class Method08 {  
    public static void main(String[] args) {  
        add(1,2);   
    }       
    //计算10和20的和   
    public static void add() {   
        int num1 = 10;     
        int num2 = 20;   
        System.out.println(num1+num2);  
    }   
    //计算传入的两个参数的和  
    public static void add(int num1,int num2){ 
        System.out.println(num1+num2);  
    }        public static void add(int num1){  
        System.out.println(num1+20); 
    }    
    public static void add(int num1,byte num2){
        System.out.println(num1+num2);   
    }       
    public static void add(byte num1,int num2){    
        System.out.println(num1+num2); 
    }
}
  • 注意事项
    1. 重载在编码过程中是有意义的,针对于不同的参数做相同的功能。
    2. 两同三不同
      • 两同::同类 同名
      • 三不同:参数列表不同(个数、类型、顺序)
    3. 注意返回类型和重载无关
    4. 在jvm中确定一个方法的方式是:返回值类型+方法名称+参数列表。java编程规范和JVM规 范

1.7 递归

  • 递归是一种编程技巧,程序中自己调用自己。在递归程序中重要的问题是:何时出递归程序
  • 在递归程序中存在一个出口–>递归头。
  • 递归程序的大优势在于编写时简单。
i 计算一个数的阶乘和斐波那契数列
import java.util.Scanner;
public class recursion {
    public static void main(String[] args) {
        Scanner input =new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num =input.nextInt();
        long x = System.currentTimeMillis();
        long a =method(num); // 用递归方法计算一个数的阶乘
        System.out.println("计算的阶乘是:"+a);
        long y =System.currentTimeMillis();
        System.out.println("所用的时间是:"+(y-x));

        x= System.currentTimeMillis();
        a=method1(num);//用递归计算斐波那契数列
        System.out.println("计算数列的值是:"+a);
        y =System.currentTimeMillis();
        System.out.println("所用的时间是:"+(y-x));
}
	 // 用递归方法计算一个数的阶乘
    public static int method(int num) {
        if (num==1){
            return 1;
        }
        return method(num-1)*num;
    }
    //用递归计算斐波那契数列
    public  static  int method1(int num){
        if(num==1||num==2){
            return 1;
        }
        return method1(num-1)+method1(num-2);
    }
}
  • 输入50的输出结果
请输入一个数:
50
计算的阶乘是:-3258495067890909184//超过了long的范围
所用的时间是:0
计算数列的值是:12586269025
所用的时间是:43252 // 43秒
  • 结论:
    • 递归虽然简单,但是特别慢!
    • 递归程序不光耗时,而且极其吃内存。

u7Mmh4.png



nRF52811墨水屏时钟DIY:从全刷到局刷的实战改造指南(附完整代码) 本文详细介绍了如何将基于nRF52811的墨水屏时钟从耗电的全屏刷新模式改造为高效的局部刷新模式。通过剖析全刷与局刷的原理差异,提供了从工程架构、驱动层适配到应用层逻辑重构的完整实战指南,并附上关键代码示例。改造后,设备功耗显著降低,续航大幅提升,同时解决了视觉闪烁问题,是DIY低功耗墨水屏应用的实用参考。 阅读详情

相关推荐

LC滤波器设计实战:从理论计算到PCB布局的完整指南

滤波器是信号处理与电路设计中的基础组件,用于从复杂信号中提取特定频率分量或抑制干扰噪声。其核心原理基于电感(L)和电容(C)等无源元件的频率选择特性,通过特定的网络拓扑实现幅频与相频特性的塑造。在工程实践中,LC滤波器因其结构简单、可靠性高、成本可控,成为射频、模拟及电源电路中的关键技术手段。其设计价值在于将理论网络综合转化为可量产、高性能的硬件解决方案,广泛应用于通信系统、音频处理、电源净化和传感器信号调理等场景。本文聚焦于LC滤波器的工程设计全流程,深入剖析了巴特沃斯、切比雪夫等经典类型的选型权衡,并重

weixin_34194829的博客 273

Java---java.math包中Big系列

玩转大数(BigInteger):     1.基本数据类型的值要转换成大数(经常会用到),用下面两种方法        1)构造方法        2)valueOf()方法     2.加、减、乘、除、取模等常用数学运算全部用函数来实现,不能数学用运算符。   并且一般的函数参数都是大数对象,不能用数值,也不能用整数及包装类变量。  还要注意,一般的函数在进行大数运算时,不是原地修改,而是返回...

whale blog 473

别再只看图了!代谢组学OPLS-DA分析,R2Y和Q2Y到底怎么看才不踩坑?

本文深入解析代谢组学OPLS-DA分析中的关键指标R2Y和Q2Y,揭示如何避免过拟合陷阱。通过详细解读模型解释能力(R2Y)和预测能力(Q2Y),结合置换检验方法,提供完整的模型评估流程与实战建议,帮助研究者获得可靠的分析结果。

weixin_42638178的博客 196

day09 java方法重载 方法递归

2.找类型匹配的(找和当前匹配的 没有就向上找) byte->int -> long -> float -> doulbe(也就是当前数据类型自动向表示范围更大的数据类型自动转换)假如栈中最多可以放60000个栈帧 而我们的限制条件在调用70000次方法后终止 仍然会报错。1.在使用方法的递归时一定要有限制条件用来终止自己-不能无限调用自己。2.在使用方法的递归时就算有限制条件也不能调用的太深(太多次)在同一个类中可以出现多个相同名字的方法但是要求形参列表必须不同。不同的形参列表指的是形参的。

oldzhongyi的博客 429

从零开始:如何用Python手绘波特图并分析电路稳定性

本文详细介绍了如何使用Python绘制波特图并分析电路稳定性,涵盖从基础理论到实际应用的完整流程。通过NumPy和Matplotlib实现频域分析,包括RC低通滤波器和RLC带通滤波器的案例,以及相位裕度计算等高级技巧,为电子工程师提供了一套高效的电路分析解决方案。

hhh00的博客 371

加湿器方案-DLT8M04TS-杰力科创

基本组成: 一个触摸按键、一组RGB灯、一个雾化片、一个充电IC。 产品功能: 第一次上电光机状态,RGB红/绿/红灯依次闪烁灭; 2、按键功能:短按开关机和三档喷雾工作模式,第一次短按持续喷雾,短按第二次喷3S,停3S,短按第三次关闭喷雾模式,依次循环; 在喷雾或是不喷雾的状态下长按1.5S RGB灯渐变,一直循环,第二次长按当前灯光闪烁一下常亮,第三次长按关机; 3、持续喷雾定时5小时自动断电,间歇喷雾定时10小时自动断电,若在间歇工作时有切换为持续喷雾,那间歇喷雾的...

JLKCsz的博客 512

初学Java基础Day08 方法,方法的递归,方法的重载

方法里声明的变量叫做局部变量,其作用域就在该方法的内部概念:方法调用方法自身经验:1.找规律 2.找出口。

2401_87491344的博客 711

2021秋-北邮计算机导论期末考试(BUPT)

2021秋-北邮计算机导论期末考试(BUPT) 难度较低适合新手练习

weixin_73985779的博客 1498

java day05 方法(形参实参、重载、递归)

1、方法 1.1 定义规则 访问修饰符 返回值类型 方法名(参数类型1 参数1,参数类型2 参数2…){ 方法体 } 示例: public static int (int num1,int num2){ return; } 具体代码展示: package Day05_method; /** * @author Ran * @since JDK 1.8 */ public class Demo02 { public static void main(String[] args

qq_43642864的博客 179

Open3D 机载点云电力线提取【2025最新版】

传统方法实现的机载点云电力线分割提取。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 4468

第五章 TTM 后备管理:5.6系统内存域

系统内存域由 TTM 内置资源管理器管理,通过 ttm_tt 承载页信息,依赖 ttm_pool 提供物理页。ttm_tt 管理页数组、缓存属性与状态标志,支持外部页与换出机制。初始化分 ttm_tt_init 与 ttm_sg_tt_init,生命周期包括创建、填充、释放与销毁。页池针对 write-combined、uncached 及一致性 DMA 分配的页进行缓存,提升性能并减少 TLB 刷新。分配时高阶优先、批量设置缓存属性,回收时清零后归还池中,确保高效复用。

图形/计算GPU的驱动与虚拟化技术分享园地 2565

Java笔记 Day 10—方法递归调用 以及 重载....

文章目录一、方法递归调用二、方法重载(OverLoad)三、可变参数四、作用域五、构造方法/构造器六、对象创建流程七、this 关键字 一、方法递归调用 基本介绍:递归就是方法自己调用自己,每次调用时传入不同的变量, 例子: public void test(int n){ if(n > 2){ test(n-1); } System.out.println("n=" + n); } 递归重要规则 执行一个方法的时候,就创建一个新的受保护的独立空间(栈

dfsdcvbhjnj的博客 416

【四足机器人项目实战】四足机器人支撑腿反作用力规划之VMC解耦控制方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、基于模型的工作空间控制框图二、原理三、缺点 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对未简化的动力学模型规划反作用力+运动学模型雅可比+虚功原理规划关节扭矩方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、基于模型的工作空间控制框图 . . 二、原理 基于机器人的动力学模

qq_35635374的博客 6597

Java学习笔记day11(方法定义、调用、内存变化、重载、递归/用递归阶乘/斐波那契数列)

递归调用如果没有结束条件的话,会出现栈内存溢出错误(java.long.StackOverflowError),必须有结束条件,即使有结束条件,也可能会出现栈内存溢出错误,可能是因为递归太深,内存不够。1.7当调用一个返回值不是void类型的方法时,方法结束的时候会返回值,这个值可以采用变量接收,注意变量的类型一定要和返回值一致。1.10形式参数一般简称形参,是局部变量,个数·:0~n个,多个的活使用逗号隔开,起决定性作用的是:形参的类型。第二种:return;不管哪种,return语句一执行,方法结束。

m0_62708057的博客 1045

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Day08 方法的重载,递归,万年历

理解:方法与方法之间的关系条件:1.方法必须在同一个类中2.方法名必须一致3.参数列表的个数或者类型不一致4.与返回值无关好处:系统会根据具体实参类型自动匹配到对应的方法中应用场景:一个类的多个方法的功能一致,细节实现不一样,就可以考虑使用重载定义一个方法的步骤:1.考虑方法名 – 见名知意2.参数(参数有几个?名字怎么取?参数是什么类型)3.返回值(返回值是什么类型)需求:创建一个方法,传入两个int值,返回最大值 – getMax。

weixin_69595694的博客 1044

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java-Day05 函数、函数重载、递归函数

1. 函数(function)1.1 什么是函数1.2 为什么使用函数1.3 Java中如何定义函数1.4 函数调用1.5 函数的分类1.6 局部变量1.7 函数调用的本质2. 函数重载3. 函数的递归(recursion):例题1:求1-100之间所有的数之和例题2:编写一个程序,打印斐波那契数列某一项的值.........

weixin_51612062的博客 276

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Java核心面试宝典】Day5、盘点常见基础面试题之“方法与递归”

Hello,你好呀,我是灰小猿!一个超会写bug的程序猿! 用坚持缔造技术、用指尖敲动未来! 和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改变未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣! 在此专栏《Java核心面试宝典》记录我们备战梦想的【day 5】! 每天一个面试技术点,今天来和大家记录在Java面试中在方法和递归上的常见面试题及解答。 一、Java中参数的传递使用值传递还是引用传递? 在Java中只有值传递而没有引用传递,所以J.

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 1508

java_day5学习笔记

类就是自定义的数据类型,包括属性和方法,由类创建的变量称作实例;我不知道我的比喻对不对,欢迎大家指正;感觉这个类像是我们用的那些基础数据类型一样,创建的时候要符合该数据类型的创建规则,比如int,int[]等,使用的时候也只能使用其中规定的方法;只不过这里是我们自设置的规则和相关的方法举例:定义一个猫类,包括名字,年龄,喜好,行为(方法)基本介绍注意访问修饰符属性如果不赋值,会有默认值,具体默认值有记录。

m0_73857800的博客 628

Java基础day3方法

方法包含一个方法头和方法体修饰符:修饰符是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型返回值类型:方法可能会返回值,returnValueType是方法返回值的数据类型,有些方法执行所需的操作,但没有返回值,在这种情况下。returnValue Type是关键字void -- return 除了返回结构,还有终止方法意思方法名:是方法的实际名称。方法名和参数表共同构成方法签名参数类型:参数像是一个占位符。当方法被占用时,传递参数。这个值被称为实参或者变量。实参:调用方法时实际传给方法的数据。

weixin_47095620的博客 1644

[JavaSE] 方法及方法的重载与递归—Day11

一.方法 知识点:静态方法 含义:特点功能的代码块 好处: 解决代码的冗余 增加了代码的可读性 增加了代码的可维护性 分类: 无参数无返回值的方法 带参数的方法 带返回值的方法 无参数无返回值的方法 语法结构: ...

qq_50864729的博客 306

Day07-方法

方法也叫函数,是一组代码语句的封装,从而实现代码重用,从而减少冗余代码,通常它是一个独立功能的定义,方法是一个类中最基本的功能单元。

qq_52807258的博客 476

# Day02-Java基础

Day02-Java 1、方法的基本定义 限制条件:本次所讲解的方法指的是在主类中定义,并且由主方法由主方法直接调用。 方法是指就是一段可以被重复调用的代码块。 在java里面如果想要进行方法的定义,则可以使用如下的方法进行完成。 public static 方法返回值 方法名称([参数类型 变量,....]){ 方法体代码 ; return [返回值]; } 在定义方法的时候对于方法的返回值由以下两类:void没用返回值和数据类型(基本类型、引用类型)。 public class T

Java厂长 7021

day07 java方法

先看一段代码//在程序中写方法return a+b;好,来看代码,之前说了,方法是在程序中被创建的,而在其他地方调用,在以上代码中,我们创建了add()方法,用于返回两个数的加法。然后再在psvm中调用add()方法。修饰符(public) 返回值类型(int、double) 方法名(main、add) (参数类型int、float 参数名a){方法体;return 返回值;而static则是为了方便在没有创建对象的情况下进行调用(方法/变量)。

m0_65376383的博客 668

day22 Java基础——方法(干货)

1. 方法的定义 2. 方法的调用 2.1 方法调用的基本步骤 2.2 方法调用的类型 2.2.1 静态方法调用 2.2.2实例方法调用 2.2.3方法的重载调用 2.3 方法调用的注意事项 3. 方法的重载 3.1 参数列表的区别 3.2 返回类型 3.3 示例 3.4 调用重载方法 3.5 注意事项 4. 命令行传参 4.1 主函数的参数 4.2 传递命令行参数 4.3 访问命令行参数 4.4 注意事项 5. 可变参数 5.1 可变参数的定义 5.2 可变参数的规则 5.3 调用可变参数方法 5.4 注

Qhumaing的博客 1166

Java入门-方法(定义、调用、重载、递归)

Java入门-方法(定义、调用、重载、递归) 什么是方法? 方法如何被定义? 怎么调用方法? 运用方法的练习题 方法的重载 关于重载的练习题 一、什么是方法? 如果把你写的代码比作一个肥宅快乐水工厂,那么方法就是你工厂中的生产线中的一个行为:制作肥宅快乐水的罐子、灌装快乐水、封盖儿、装饰、投入市场…等中的任何一个环节。 我们回想一下,肥宅快乐水瓶罐上面的装饰图案是否基本一致?那么这个行为是否就...

Ther233的博客 396

JAVA基础学习笔记-day05-面向对象基础

面向对象,是软件开发中的一类编程风格、开发范式。除了 面向对象 ,还有 面向过程 、 指令式编程 和函数式编程。面向过程的程序设计思想(Process-Oriented Programming),简称 POP关注的焦点是过程:过程就是操作数据的步骤。如果某个过程的实现代码重复出现,那么就可以把这个过程抽取为一个 函数。这样就可以大大简化冗余代码,便于维护。典型的语言:C语言代码结构:以函数为组织单位。是一种“ 执行者思维 ”,适合解决简单问题。扩展能力差、后期维护难度较大。

天才在左,疯子在右,而我只想做个不折不扣的乐天派 530
上一篇: java基础学习笔记——day06(流程控制,if分支,switch分支,for循环,while循环)
下一篇: java基础学习笔记——day08(面向对象,构造器,this、static)
TTHplus
博客等级 码龄7年 36粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值