首页 > 编程语言 >JavaSE--方法

JavaSE--方法

时间:2023-08-09 09:22:53浏览次数:53  
标签:return -- void int static JavaSE 方法 public

一、方法

1、方法的定义

/*
    [修饰符列表] 返回值类型 方法名(形式参数列表){
        方法体;
        // return;终止当前方法
    }
    方法写完之后需要调用去使用,不调用没法用
    1、修饰符列表:不是必选的
    2、返回值类型:可以是任何数据类型(基本数据类型和引用数据类型)
        返回值:一般是指一个方法执行结束之后的结果,通常返回一个数据,返回值实际给的是调用者
        当一个方法执行结束不返回任何值时,需要写void关键字,表示无返回值,但是也可以写return
    3、注意:如果返回值类型不是void,那么在方法执行结束后必须使用  return 值;  ,来完成值的返回
            如果没有return中编译器会报错
            只要return执行,当前方法必然结束
    4、方法名
        方法名要见名知意,规则首字母消息,后面每个单词首字母大写
    5、形式参数列表:
        每一个参数都是局部变量,方法结束后内存释放
        个数:0-n个,使用逗号隔开  (int x,int y,double z,String s)
    6、方法体
        方法体中编写业务逻辑代码,遵循自上而下的顺序执行,
        需要数据,数据来源就是形参
*/

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

2、方法的调用

压栈:方法只有在调用的时候才会在栈中分配空间,并且调用时就压栈

弹栈:方法执行结束之后,该方法所在的空间就会释放,此时会发生弹栈

方法调用叫做压栈,方法结束叫做弹栈

/*
    方法必须调用才能使用
    1、调用:
        类名.方法名(实际参数列表);
    2、实参和形参的数据类型必须一一对应
*/
public class MethodTest02{
    public static void main(String[] args){
        // 调用方法
        // (10,2)叫做实际参数列表 实参
        // 接收方法的返回值:使用变量来接收,
        // 也可以不接收,但是不接收没有意义啊
        int result = MethodTest02.divide(10,2);
        System.out.println(result);
        // 自动类型转换  可以
        double jieguo = MethodTest02.divide(10,2);
        // 注意::对于没有返回值的方法,变量不可以接收
    }
    public static int divide(int x,int y){
        T.print();// 调用方法不一定非要在main方法中,不要把main方法特殊化
        return x / y;
    }
}
class T{
    public static void print(){
        System.out.println("hello");
    }
}
/*
    调用方法时,什么时候类名可以省略
    a方法调用b方法,a和b方法在同一个类的时候,“类名.”可以省略
    不在同一个类中的时候,不可以省略
*/
public class MethodTest04{
    public static void main(String[] args){
        MethodTest04.print();
        // “类名.”可以省略不写,因为在同一个类中
        print();
        // 跨类调用的时候不可以省略
        MyClass.print1();
    }
    public static void print(){
        System.out.println("hello");
    }
}
// 类2
class MyClass{
    public static void print1(){
        System.out.println("hello");
    }
    public static void print2(){
        System.out.println("hello");
    }
}

3、实际参数列表

/*
    实际参数列表
*/
public class MethodTest03{
    public static void main(String[] args){
        // 使用小容量
        byte b1 = 10;
        byte b2 = 20;
        // 把小容量传进去是可以的
        int result = MethodTest03.divide(10,20);
    }
    public static int divide(int x,int y){
        return x / y;
    }
}

 4、break;和return;语句的区别

/*
    break终止最近的循环
    return终止当前方法
*/

public class MethodTest05{
    public static void main(String[] args){
        for(int i = 0;i < 10;i++){
            if(i == 5){
                // break;// 终止for循环
                return;// 终止当前方法,不是一个级别  也就是hello不会输出
            }
            System.out.println(i);
        }
        System.out.println("hello");
    }
}

 

二、方法的重载overload

  1、方法重载机制:

  功能相似的,可以让方法名相同,更加易于代码的编写

  注意:重载不能随便用,如果两个功能压根不相干,之间根本没有关系,此时使用重载机制,会导致编码更麻烦。无法进行功能的区分

  2、java语言中,怎么进行方法区分:

  首先java编译器会通过方法名进行区分,方法名相同下,会通过方法的参数类型区分

  注意:方法重载和方法的返回值类型以及修饰符无关

public calss OverloadTest01{
    public static void main(String[] args){
        System.out.println(sum(10,20));
        System.out.println(sum(10L,20L));
        System.out.println(sum(10.0,20.0));
    }
    // 计算int类型数据求和
    public static int sum(int a,int b){
        return a + b;
    }
    // 计算long类型数据求和
    public static long sum(long a,long b){
        return a + b;
    }
    // 计算double类型数据求和
    public static double sum(double a,double b){
        return a + b;
    }
}

  3、什么时候代码发生重载

  条件1:在同一个类中

  条件2:方法名相同

  条件3:参数列表不同:参数的个数、类型、顺序不同都算不同

 

三、方法的递归

  1、方法递归

  方法自己调用自己,就是方法递归

  当递归时,程序没有结束条件,一定会发生栈内存溢出错误

  所以 :递归必须要有结束条件

public class RecursionTest01{
    public static void main(String[] args){
        doSome();
    }
    public static void doSome(){
        System.out.println("doSome");
    }
}

 

标签:return,--,void,int,static,JavaSE,方法,public
From: https://www.cnblogs.com/hyy-0/p/17607273.html

相关文章

  • 【Hystrix技术指南】(5)Command创建和执行实现
    推荐超值课程:点击获取创建流程构建HystrixCommand或者HystrixObservableCommand对象*使用Hystrix的第一步是创建一个HystrixCommand或者HystrixObservableCommand对象来表示你需要发给依赖服务的请求。若只期望依赖服务每次返回单一的回应,按如下方式构造一个HystrixCommand......
  • 【Hystrix技术指南】(6)请求合并机制原理分析
    推荐超值课程:点击获取[每日一句]也许你度过了很糟糕的一天,但这并不代表你会因此度过糟糕的一生。[背景介绍]分布式系统的规模和复杂度不断增加,随着而来的是对分布式系统可用性的要求越来越高。在各种高可用设计模式中,【熔断、隔离、降级、限流】是经常被使用的。而相关的技......
  • Java 中的 7 种重试机制,还有谁不会?!
    随着互联网的发展项目中的业务功能越来越复杂,有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务,但是远程服务的健壮性和网络稳定性都是不可控因素。在测试阶段可能没有什么异常情况,但上线后可能会出现调用的接口因为内部错误或者网络波动而出......
  • 言语理解
             ......
  • 视频监控—在LCD上显示摄像头图像
    一、框架1、程序框架仿照之前数码相册的框架来进行改造,完成在开发板上动态显示摄像头的数据信息: 对于上述完成主要功能的5个部分:display显示部分、debug调试信息输出部分、render渲染部分、video视频设备部分、convert格式转换部分 video视频设备部分:负责获得摄像头的原......
  • [Python爬虫]selenium4新版本使用指南
    From:码同学测试公众号------------------------------------Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaFirefox,Safari,GoogleChrome,Opera,Edge等。这个工具的主要功能包括......
  • JWT授权
     jwt:头部(Header)、载荷(Payload)和标记(Signature)头部:主要是规定生成token加密方式的类型和算法,载荷:可以存储一些用户身份信息标记:主要作用防篡改,验证令牌的真实性和完整性 引用jwt包appsettings里: //jwt秘钥  "Jwt": {    "SecretKey": "jiangjianhaotest12......
  • 【pandas小技巧】--字符串转数值
    字符串转数字的用途和场景很多,其中主要包括以下几个方面:数据清洗:在进行数据处理时,经常会遇到一些数据类型不匹配的问题,比如某些列中的字符串类型被误认为是数字类型,此时需要将这些字符串类型转换为数字类型,才能进行后续的数值计算或统计分析。数据整理:有时候输入的原始数据可能......
  • 《CUDA编程:基础与实践》读书笔记(2):CUDA内存
    1.全局内存核函数中的所有线程都能够访问全局内存(globalmemory)。全局内存的容量是所有设备内存中最大的,但由于它没有放在GPU芯片内部,因此具有相对较高的延迟和较低的访问速度,cudaMalloc分配的就是全局内存。此外,当处理逻辑上的二维或者三维问题时,还可以使用cudaMallocPitch和......
  • serilog日志
      1安装包   第一个是基础的配置,第二个包是集成Serilog日志记录器的扩展包,简化在.NET应用程序中集成和配置Serilog的过程。第三个是保存在文档中 2 配置文件   public static void AddSerilog(this WebApplicationBuilder builder)    ......