全网最完整的免费java教程讲义系列(六)——java方法详解

createh53周前 (12-11)技术教程20

转眼老K的Java基础系列课程已经来到了第六讲,Java入门的知识已经所剩无几。

之前的课程内容可以通过下述链接查看:

  1. 老K玩代码:全网最完整的免费java教程讲义系列(一)——java配置和安装
  2. 老K玩代码:全网最完整的免费java教程讲义系列(二)——java数据和变量
  3. 老K玩代码:全网最完整的免费java教程讲义系列(三)——java的运算符
  4. 老K玩代码:全网最完整的免费java教程讲义系列(四)——java的流程控制
  5. 老K玩代码:全网最完整的免费java教程讲义系列(五)——java数组详解

那么接下来我们就开始新的内容——Java方法吧。

Java方法是属于Java基础入门的知识,相当于其它语言中的函数。

我们之前每个示例代码中都有写到的public static void main(String[] args)就是一句方法声明语句,下面的部分,我们会以这段代码为例,介绍方法声明语句的基本结构。


一、方法声明

示例:访问修饰符 返回数据类型 方法名(参数列表) {方法体}

public static void main(String[] args) {
    System.out.println("hello java!");
}

名称

示例

说明

访问修饰符

public

public,protected,private等

返回数据类型

void

void、int、char、String、boolean等

方法名

main

可自定义

参数列表

String[] args

用变量声明的格式写入,多个变量用,逗号隔开

方法体

System.out.println("hello java!");

定义方法要执行的代码

  • static是静态修饰符,此处不作展开,只需知道现阶段写自定义方法时不需要加static关键词,声明语句只需写成这种型式即可 :public int method(int a) {...}
  • 返回数据类型中的void,表示该方法无返回值的情况;
  • 方法名需要用驼峰命名法进行命名,想了解驼峰命名法的可以查询百度百科:驼峰命名法。

二、方法分类

1. 无参无返回值方法

请参考下列代码,并在IDEA调试学习:

IDEA的安装和调试可以参考我的文章:老K玩代码:全网最完整的免费java教程讲义系列(一)——java配置和安装

public class MethodDemo {
    public static void main(String[] args) {
        MethodDemo md = new MethodDemo();
        md.printNotice();
    }

    public void printNotice() {
        // 打印默认通知
        System.out.println("***************************************");
        System.out.println("           项目建设中...");
        System.out.println("***************************************");
    }
}

2. 无参带返回值方法

请参考下列代码,并在IDEA调试学习:

public class MethodDemo {
    public static void main(String[] args) {
        MethodDemo md = new MethodDemo();
        int num = md.random100();
        System.out.println(num);
    }

    public int random100() {
        // 生成一个100以内的随机数
        return (int) (Math.random() * 100);
    }
}

3. 有参无返回值方法

请参考下列代码,并在IDEA调试学习:

public class MethodDemo {
    public static void main(String[] args) {
        MethodDemo md = new MethodDemo();
        md.userWelcome("老K");
    }

    public void userWelcome(String user){
        // 打印用户的欢迎信息
        System.out.println("亲爱的用户 " + user + ",欢迎回来!");
    }
}

4. 有参有返回值的方法

请参考下列代码,并在IDEA调试学习:

public class MethodDemo {
    public static void main(String[] args) {
        MethodDemo md = new MethodDemo();
        int large = md.getLarge(34, 66);
        System.out.println(large);
    }

    public int getLarge(int a, int b) {
        // 计算两个值中的较大值
        int result;
        if (a > b) {
            result = a;
        } else {
            result = b;
        }
        return result;
    }
}

三、方法参数

1. 基本数据类型参数

用声明变量的语句定义参数,多个参数用逗号分隔;

示例:

public int getLarge(int a, int b) {
    // 计算两个值中的较大值
    int result;
    if (a > b) {
        result = a;
    } else {
        result = b;
    }
    return result;
}

2. 数组作为方法参数

示例:

public int doSum(int[] nums) {
    int result = 0;
    for (int n : nums) {
        result += n;
    }
    return result;
}

3. 方法重载

由于Java是一种严谨的编程语言,每个参数的类型都被事先规定,这就造成了实际使用上的一些麻烦,比如上例中,如果我给doSum 输入参数的是float类型数组,程序就会报错。
另外,很多时候由于输入参数的不同,我们希望的处理逻辑也不同,比如,让两个
int相加是想得到它们的和,让两个char相加则是生成字符串;为了解决上述这种使用困境,就引入了方法重载的概念。它能区别处理不同输入参数的情况,帮你自动匹配符合输入参数的方法。

方法重载的特征: 1. 方法名相同; 2. 方法参数不同;

满足以上两个条件的,就是方法重载,不存在其它约束条件

示例:

public class OverLoad {
    public static void main(String[] args) {
        OverLoad ol = new OverLoad();
        ol.doSomething();
        ol.doSomething(12);
    }

    public void doSomething() {
        System.out.println("这是重载方法1");
    }

    public int doSomething(int num) {
        System.out.println("这是重载方法2,携带参数" + num);
        return 1;
    }
}


本期的Java开发基础教程第六课就先分享到这里。

关于Java的学习教程我会持续更新,如果你正在学习Java,希望了解更多关于Java或其他编程语言的内容,可以关注我或者收藏这篇文章。

除了老K分享的课程之外,想自学Java的小伙伴,也可以看看以下两本有关Java编程的书籍。

书的内容详实,循序渐进。基础卷适合初学者,上手容易;进阶卷适合想要精进Java编程技术的朋友。

  • 《On Java》,豆瓣读书评分:9.0 ★★★★★

作者 Bruce Eckel是在硅谷成名已久的大牛,其早年的《Java 编程思想》可谓是Java编程圣经。如今的这部书亦是他呕心沥血之作,增加了很多近期java版本的特性,更适合当下。全书两册,分为基础卷和进阶卷。基础卷对新手友好,循序渐进;进阶卷内容详实、步步为营。

  • 《Java核心技术》,豆瓣读书评分:9.4 ★★★★★

本书曾获得有“软件业奥斯卡”之称的Jolt奖,内容详实而细腻,是对学习Java很有帮助的两部书。上下两卷,分别详细介绍了Java的基础知识和高级特性。是很多学习Java的小伙伴必备的书籍。


结束语

我是专注于开发领域的@老K玩代码,会持续生产关于如何学习编程语言的优质内容。

如果你想学习编程,或者想精进你的编程能力,可以关注我。

如果你对开发、编程有任何疑问或有想了解的内容,而我暂时没有写到的,也欢迎随时来找我聊聊。

#头条创作挑战赛#

相关文章

Java性能测试利器:JMH入门与实践|得物技术

目录一、JMH概述1. JMH的主要特点2. JMH与其他性能测试工具的比较二、快速开始1. 原型方式生成Maven项目2. 已有项目配置JMH三、JMH的核心概念和注解四、JMH的工作原理1. JV...

Java开发中的POJO、Dto、PO、Vo傻傻分不清楚?一文看懂

在Java开发的过程中,常常遇到这样的包名,如entity、bo、vo、po、dto、pojo等,许多初学者看到这样的词语都回感到迷惑,下面这一篇就把这些不同而又容易让人产生迷惑的实体类做一个很好的区...

阿里资深架构师整理分享60道全套Java核心技术面...

大家想不想进入一线大厂来进行自我提升、涨薪跳槽呢?今天就给大家分享一波阿里资深架构师整理分享出的60道必备的Java核心技术面试题及答案,希望大家能够喜欢!文末还有大量面试题分享,不止这60道!!60...

Java动态字节技术之Javassist

概述Javassist是一个开源的分析、编辑和创建Java字节码的类库,可以直接编辑和生成Java生成的字节码。相对于bcel, asm等这些工具,开发者不需要了解虚拟机指令,就能动态改变类的结构,或...

面试官问我什么是JMM

思维导图面试官:讲讲什么是JMM你要是整这个我可就不困了。JMM就是Java内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成...