服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java零基础精通方法篇

Java零基础精通方法篇

2022-12-08 15:16知心宝贝 Java教程

方法,也称函数,如果想要重复一段或者多段代码块的使用,可以将这些代码封装成一个方法,方法具体表现为某种行为,使用方法可以提高代码的复用性

一、前言

  • 学习概述:学习四种不同类型的方法应用、方法被调用时的内存图、重载
  • 学习目标:熟练掌握方法的应用以及重载

二、定义与调用

1.概述

  • 定义:方法是一种语法结构,把一段代码封装成一个功能,方便重复调用
  • 分类:一般分为参数(带/不带)、返回值(有/无)
  • 好处:提高代码复用性、逻辑更加清晰

2.格式

修饰符 返回值类型 方法名( 形参列表 )
{
    //方法体
    return 返回值; 
}

范例:

Java零基础精通方法篇

3.调用

方法必须通过程序调用 才能运行,调用格式如下:

方法名(…);

范例:

?
1
2
int sum = add(10, 20);
System.out.println(sum);

4.注意

  • 修饰符:目前暂时使用public static 修饰
  • 形参:可以没有,但有多个需要逗号分隔,调用时需要传入对应类型的变量值
  • 返回值:如果方法定义了返回类型,方法内部的代码段一定要体现。如果方法不需要返回结果,返回值类型必须申明成void(无返回值)

三、范例

1. 例题 1

设计一个方法(无参、无返回值)用于打印两个数字的大小关系

编码实现:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void main(String[] args)
{
    getRelation();//调用方法
}
public static void getRelation()
{
    int a=10;
    int b=20;
    if(a>b)
    {
        System.out.println("a大于b");
    }
    else if(a<b)
    {
        System.out.println("a小于b");
    }
    else
    {
        System.out.println("a等于b");
    }
}

输出结果:

a小于b

2. 例题 2

设计一个方法(有参、无返回值)用于打印两个数字的最大值

编码实现:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void main(String[] args)
{
    getMax(10,20);//调用方法
}
public static void getMax(int a,int b)//带参无返回值
{
    if(a>b)
    {
        System.out.println(a);
    }
    else
    {
        System.out.println(b);
    }
}

输出结果:

20

3. 例题 3

设计一个方法(有参、有返回值 int 型)用于打印两个数字的最大值

编码实现:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void main(String[] args)
{
    System.out.println(getMax(10,20));//调用方法
}
public static int getMax(int a,int b)//带参无返回值
{
    if(a>b)
    {
        return a;
    }
    else
    {
        return b;
    }
}

输出结果:

20

四、方法调用的内存图

Java零基础精通方法篇

  • 方法未被调用,在方法区中的字节码文件中存放
  • 方法调用,进入到栈内存中运行
  • java程序编译生成class字节码文件,方法区存入main方法、eat、study、eat方法。进入主函数调用,在栈内存运行输出结果。

五、重载

1.概述

定义:同一个类中,出现多个方法名称相同,但是形参列表不同(类型不同或数量不同),与返回值无关

例如下面几个例子,判断是否为方法重载?

Java零基础精通方法篇

  • 第一个不是,与返回值无关
  • 第二个是,形参数量不同
  • 第三个是,形参定义类型不同
  • 第四个不是,不在同一个类中

2.例题

构造三个重载的方法,分别实现两个int型整数相加的和、两个double类型数据相加的和、三个int类型数据相加的和

编码实现:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void main(String[] args)
{
    int result=sum(10,20);
    System.out.println(result);
    double result1=sum(10.0, 20.0);
    System.out.println(result1);
    int result2=sum(10, 20,30);
    System.out.println(result2);
}
public static int sum(int a,int b)
{
    return a+b;
}
public static double sum (double a,double b)
{
    return a+b;
}
public static int sum(int a,int b,int c)
{
    return a+b+c;
}

输出结果:

30
30.0
60

3.总结

  • 重载可读性好,方法名称相同是同一类型的功能,但通过形参不同实现功能差异化的选择
  • 形参列表不同:形参的个数、类型、顺序不同,不关心形参的名称

到此这篇关于Java零基础精通方法篇的文章就介绍到这了,更多相关Java方法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_53673551/article/details/124675785

延伸 · 阅读

精彩推荐
  • Java教程IntelliJ IDEA 还能画思维导图,果然最强 IDE

    IntelliJ IDEA 还能画思维导图,果然最强 IDE

    最近栈长发现 IntelliJ IDEA 居然还能画思维导图,太牛逼了!当然这得借助 IDEA 的 UML 插件,因为它本身也是一个 UML 图,所以这篇就从 UML 图开撕,看 IDEA 怎...

    Java技术栈6432021-02-24
  • Java教程对比Java讲解Kotlin中?.与!!.的区别

    对比Java讲解Kotlin中?.与!!.的区别

    这篇文章主要给大家介绍了关于对比Java,实例讲解Kotlin中?.与!!.的区别,文中通过示例代码介绍的非常详细,对大家学习或者使用kotlin具有一定参考学习价...

    怜悯是我的座右铭9082021-05-09
  • Java教程Java中Properties类的操作实例详解

    Java中Properties类的操作实例详解

    这篇文章主要介绍了Java中Properties类的操作实例详解的相关资料,需要的朋友可以参考下...

    Java教程网3602020-09-18
  • Java教程Java双色球系统开发详解

    Java双色球系统开发详解

    这篇文章主要为大家详细介绍了Java双色球系统的开发,超级简单的逻辑,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考...

    烟火909210142022-01-17
  • Java教程详解Java中的时区类TimeZone的用法

    详解Java中的时区类TimeZone的用法

    TimeZone可以用来获取或者规定时区,也可以用来计算时差,这里我们就来详解Java中的时区类TimeZone的用法,特别要注意下面所提到的TimeZone相关的时间校准问题...

    log_cd3992020-05-11
  • Java教程Java实现迅雷地址转成普通地址实例代码

    Java实现迅雷地址转成普通地址实例代码

    本篇文章主要介绍了Java实现迅雷地址转成普通地址实例代码,非常具有实用价值,有兴趣的可以了解一下。...

    十年放牛2192020-08-25
  • Java教程Java实现五子棋游戏(2.0)

    Java实现五子棋游戏(2.0)

    这篇文章主要为大家详细介绍了Java实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    宝贝垚9042022-11-23
  • Java教程Springboot居然可以设置动态的Banner(推荐)

    Springboot居然可以设置动态的Banner(推荐)

    这篇文章主要介绍了Springboot居然可以设置动态的Banner,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    Java4ye6072021-08-24