【Java开发实训】day03——方法的注意事项

news2024/9/23 1:26:07

目录

一、方法的基本概念

二、void和return关键字

三、单一返回点原则

四、static方法使用说明


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。


一、方法的基本概念

在面向对象的编程中,方法(Method)指的是类或对象中的行为。

方法不调用则不执行,它们的执行顺序仅与调用顺序有关,方法之间不能互相嵌套(方法中不能再创建一个方法)。

public class Test01 {
    public static void main(String[] args) {
        // main是Java程序的入口方法,是程序执行的起点。
        // 没有调用方法,方法就不会执行
        // 所以anotherMethod()不会执行
        System.out.println("Hello, World!");
    }

    public void anotherMethod() {
        System.out.println("I'm in anotherMethod!");
    }
}

在调用方法之前,需要确保方法已经在当前作用域内定义。如果方法在调用之前没有定义,将会导致编译错误。

如果一个方法有返回值,推荐使用赋值调用来接收返回结果。如果方法没有返回值,可以直接调用方法即可。

二、void和return关键字

使用void关键字表示方法没有返回值。因此,当你定义一个void方法的时候,你在方法体内部不应该使用"return 结果"的形式,因为那样会产生编译错误。

public class Test02 {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }

    public void methodWithVoid() {
        // 这里没有返回值
        System.out.println("I'm in a void method!");
        return;
    }

    public int methodWithReturn() {
        // 这里返回了一个整型结果
        return 42;
    }

    /*以下是错误代码
    public void error(){
         System.out.println("I'm in a void method!");
         return 42;
    }
    */
}

void不能和"return 结果"共存,但是void能和"return"共存:
①        void:代表没有返回值
②        return 结果:代表有返回值,它会先将结果返回,然后结束方法
③        return:仅仅代表结束方法,不代表有返回值

三、单一返回点原则

一个方法中最好只有一个return语句来返回结果。如果方法有多条return语句,可能会在阅读和维护代码的时候造成混乱。

import java.util.Scanner;

public class Test03 {

    public static void main(String[] args) {
        //创建对象
        Scanner scanner = new Scanner(System.in);
        //调用scanner对象
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int sum = add(a, b);
        System.out.println("sum = " + sum);
    }

    public static int add(int a, int b) {
        //单一的返回点
        return a + b;
    }

    /*虽然在简单情况下这样做没有问题,但如果逻辑变得更加复杂,会使代码难以理解和维护
    public static int multipleReturns(int a, int b) {
         if (a > 0) {
                 return a; // 这是第一个返回点
        } else {
                 return b; // 这是第二个返回点
         }
    }
     */
}

四、static方法使用说明

在Java中,静态方法(例如 main 方法)不能直接调用非静态方法,因为非静态方法是依赖于类的实例的,而静态方法是在类的层次上进行操作的,不依赖于任何特定的实例。

所以我们要将调用的方法设为静态方法,或者通过创建类的实例来调用非静态方法。

以下是一个通过创建类的实例来调用非静态方法的例子:

public class Test04 {
    public static void main(String[] args) {
        //创建 Main 类的实例
        Test04 instance = new Test04();
        //通过实例调用非静态方法 someMethod
        instance.someMethod();
    }
    public void someMethod() {
        System.out.println("Hello from someMethod!");
    }
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1925016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Windows API每日一练》9.25 系统菜单

/*------------------------------------------------------------------------ 060 WIN32 API 每日一练 第60个例子POORMENU.C:使用系统菜单 GetSystemMenu函数 AppendMenu函数 (c) www.bcdaren.com 编程达人 -------------------------------------------…

Java02--基础概念

一、注释 注释是在程序指定位置添加的说明性信息 简单理解,就是对代码的一种解释 1.单行注释 格式: //注释信息 2.多行注释 格式: /*注释信息*/ 3.文档注释 格式: /**注释信息*/ 注释使用的细节: 注释内容不会参与编译和运…

九盾安防丨如何判断叉车是否超速?

在现代物流和生产流程中,叉车是提高效率和降低成本的关键工具。然而,叉车的高速行驶也带来了安全隐患,这就要求我们对其进行严格的安全管理。九盾安防,作为业界领先的安防专家,今天就为大家揭晓如何判断叉车是否超速&a…

OpenCV距离变换函数distanceTransform的使用

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 distanceTransform是OpenCV库中的一个非常有用的函数,主要用于计算图像中每个像素到最近的背景(通常是非零像素到零像素&…

VMware_centos8安装

目录 VMware Workstation Pro的安装 安装centos VMware Workstation Pro的安装 正版VMware 17百度网盘下载链接 (含秘钥) 链接:https://pan.baidu.com/s/16zB-7IAACM_1hwR1nsk12g?pwd1111 提取码:1111 第一次运行会要求输入秘钥 秘钥在上边的百度网盘…

【Leetcode】最小数字游戏

你有一个下标从 0 开始、长度为 偶数 的整数数组 nums ,同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏,游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下: 每一轮,Alice 先从 nums 中移除一个 最小 元素&…

docker安装nginx并配置https

参考 docker安装nginx并配置https-腾讯云开发者社区-腾讯云 (tencent.com) 证书的生成 参见:SpringBoot项目配置HTTPS接口的安全访问(openssl配置)_配置接口访问-CSDN博客 步骤 1: 拉取Nginx镜像 docker pull nginx 好使的镜像如下&#x…

DockerCompose拉取DockerHub镜像,并部署OpenMetaData

参考博主:http://t.csdnimg.cn/i49ET 一、DockerCompose拉取DockerHub镜像 方法一(不太行): 在daemon.json文件中添加一些国内还在服务的镜像站(可能某些镜像会没有) ([ -f /etc/docker/daemon.json ] ||…

RK3568笔记三十五:LED驱动开发测试

若该文为原创文章,转载请注明原文出处。 字符设备驱动程序的基本框架,主要是如何申请及释放设备号、添加以及注销设备,初始化、添加与删除 cdev 结构体,并通过 cdev_init 函数建立 cdev 和 file_operations 之间的关联&#xff0c…

每日一练:奇怪的TTL字段(python实现图片操作实战)

打开图片,只有四种数字:127,191,63,255 最大数字为255,想到进制转换 将其均转换为二进制: 发现只有前2位不一样 想着把每个数的前俩位提取出来,组成新的二进制,然后每…

Python中的数据容器及其在大数据开发中的应用

在Python编程中,数据容器是存储和组织数据的基本工具。作为大数据开发者,了解并灵活运用各种容器类型对于高效处理大规模数据至关重要。今天,我们将从Set出发,探讨Python中的各种数据容器,以及它们在大数据处理中的应用…

社交App iOS审核中的4.3问题:深入分析与解决策略

社交App审核中的4.3问题:深入分析与解决策略 在iOS应用开发和审核过程中,开发者经常会遇到苹果审核4.3问题。这一问题往往涉及应用的设计和内容重复性,导致应用被拒绝上架。为了帮助开发者更好地理解和解决这一问题,本文将对4.3问…

基于复旦微JFMQL100TAI的全国产化FPGA+AI人工智能异构计算平台,兼容XC7Z045-2FFG900I

基于上海复旦微电子FMQL45T900的全国产化ARM核心板。该核心板将复旦微的FMQL45T900(与XILINX的XC7Z045-2FFG900I兼容)的最小系统集成在了一个87*117mm的核心板上,可以作为一个核心模块,进行功能性扩展,能够快速的搭建起…

C语言操作符优先级

1 C语言操作符优先级 熟悉操作符的优先级,避免意外的求值顺序。 2. 运算符优先级记忆方法 利用优先级表或常见记忆口诀来记忆运算符的优先级。

嵌入式人工智能应用-篇外-烧写说明

1 外部接线 1.1 前期准备 需要准备的工具 ⚫ 一根 Mini USB 线 ⚫ 嵌入式人工智能教学科研平台 ⚫ 12V DC 电源 ⚫ 一台电脑 1.2 接线 12V DC 电源接入 12V IN;Mini USB 线连接 USB OTG;如果有两条 Mini USB 线,可以接入 UART2 to USB 口…

python2

一、条件语句 具体有如下:if、if......elif、if......elif......else 注意格式: if后面的条件表达式没有(),以:作为结尾对于多分支的条件,不是写成else if 而是elif注意条件下一行要有缩进 …

Stable Diffusion 使用

目录 背景 最简单用法 进阶用法 高手用法 safetensor 一、概述 二、主要特点 背景 Stable Diffusion 开源后,确实比较火,上次介绍了下 Stable Diffusion 最简单的concept。今天继续介绍下,以Liblib 为例,介绍下如何使用参…

排序——交换排序

在上篇文章我们详细介绍了排序的概念与插入排序,大家可以通过下面这个链接去看: 排序的概念及插入排序 这篇文章就介绍一下一种排序方式:交换排序。 一,交换排序 基本思想:两两比较,如果发生逆序则交换…

Java | Leetcode Java题解之第234题回文链表

题目: 题解: class Solution {public boolean isPalindrome(ListNode head) {if (head null) {return true;}// 找到前半部分链表的尾节点并反转后半部分链表ListNode firstHalfEnd endOfFirstHalf(head);ListNode secondHalfStart reverseList(firs…

《BASeg: Boundary aware semantic segmentation for autonomous driving》论文解读

期刊:Neural Networks | Journal | ScienceDirect.com by Elsevier 年份:2023 代码:https://github.com/Lature-Yang/BASeg 摘要 语义分割是自动驾驶领域街道理解任务的重要组成部分。现有的各种方法要么专注于通过聚合全局或多尺度上下文…