当前位置: 首页 > news >正文

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

目录

一、方法的基本概念

二、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();//通过实例调用非静态方法 someMethodinstance.someMethod();}public void someMethod() {System.out.println("Hello from someMethod!");}
}


相关文章:

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

目录 一、方法的基本概念 二、void和return关键字 三、单一返回点原则 四、static方法使用说明 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于…...

HarmonyOS NEXT:一次开发,多端部署

寄语 这几年特别火的uni-app实现了“一次开发,多端使用”,它这个端指的是ios、安卓、各种小程序这些,而HarmonyOS NEXT也提出了“一次开发,多端部署”,而它这个端指的是终端设备,也就是我们的手机、平板、电…...

Bilibili Android一二面凉经(2024)

BiliBili Android一二面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《BiliBili Android一二面凉经(2024)》。 面试职位: 高级Android开发工程师&…...

数据库内核研发学习之路(一)

已经上了几天班了,开始做一些总结性的工作。 数据库内核研发首当其中的便是环境配置,今天先介绍一下虚拟机之类的环境搭建,在之前已经写过一篇关于VMware搭建虚拟机的博客了,有兴趣可以去看看,这里我再总结一下使用Vi…...

LSTM:深度学习中的时间序列处理大师

LSTM:深度学习中的时间序列处理大师 引言 在深度学习领域,处理时间序列数据是一项极具挑战性的任务。时间序列数据广泛存在于金融、医疗、气象、自然语言处理等多个领域,这些数据不仅具有时间依赖性,还常常伴随着复杂的长期依赖…...

T113-i系统启动速度优化方案

背景: 硬件:T113-i + emmc 软件:uboot2018 + linux5.4 + QT应用 分支:longan 问题: 全志T113-i的官方系统软件编译出的固件,开机启动时间10多秒,启动时间太长,远远超过行业内linux系统的开机速度,需要进一步优化。 T113-i 优化后启动速度实测数据 启动阶段启动时间(…...

ArcGis将同一图层的多个面要素合并为一个面要素

这里写自定义目录标题 1.加载面要素的shp数据 2.点击菜单栏的地理处理–融合,如下所示: 3.将shp面要素输入,并设置输出,点击确定即可合并。合并后的属性表就只有一个数据了。...

微软Win11 24H2七月更新补丁KB5040435发布!附下载

系统之家于7月10日发出最新报道,微软为Win11用户发布了24H2版本七月的最新更新补丁KB5040435。用户升级系统后,会发现版本号升至 26100.1150。此次更新针对远程身份验证拨入用户服务(RADIUS)协议与 MD5冲突等问题进行修复。接下来跟随小编看看此次更新的…...

iOS 开发中不常见的专业术语

乐此不疲地把简单的问题复杂化,并把这种XX行为叫作专业 APM 在 iOS 开发中,APM 代表 Application Performance Management(应用性能管理)。APM 是一套监控和管理应用程序性能的工具和技术,旨在确保应用程序运行平稳、…...

【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构④ | 4.7

前言 第4章对应的内容选择题和案例分析都会进行考查,这一章节属于技术相关的内容,学习要以教材为准。本章分值预计在4-5分。 目录 4.7 安全架构 4.7.1 安全威胁 4.7.2 定义与范围 4.7.3 整体架构设计 4.7.4 网络安全架构设计 4.7.5 数据库系统安…...

Time to say GoodBye

北湖的繁华 北湖的繁华 北湖的繁华 终究 终究 终究 还是不属于我了 还是不属于我了 还是不属于我了 永远铭记 6 月 26 日 永远铭记6月26日 永远铭记6月26日 在这天下午 , 一个眼镜男夺走了我的资格 在这天下午,一个眼镜男夺走了我的资格 在这天下午,一个眼镜男夺走了我的资格 永…...

C语言之指针的奥秘(二)

一、数组名的理解 int arr[10]{1,2,3,4,5,6,7,8,9,10}; int *p&arr[0]; 这里使用 &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址。如下: 我们发现数组名和数组⾸元素的地址打印出…...

嵌入式linux系统内核启动过程分享

内核的生成步骤可以概括如下: ① 先生成 vmlinux,这是一个elf可执行文件。② 然后 objcopy 成 arch/i386/boot/compressed/vmlinux.bin,去掉了原 elf 文件中一些无用的section等信息。③ gzip 后压缩为 arch/i386/boot/compressed/vmlinux.bin.gz。④ 把压缩文件作为数据段…...

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

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

pnpm 如何安装指定版本

要安装特定版本的pnpm,可以使用npm命令来全局安装特定版本的pnpm,例如: npm install -g pnpm2.0.0在上面的命令中,使用了2.0.0来指定安装2.0.0版本的pnpm。您可以将2.0.0替换为您需要安装的版本号。 如果您使用的是yarn&#xf…...

LeetCode 240 搜索二维矩阵||

1.题目要求: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。实列: 2.各位大佬们,大家好,此题我用的方法是一行一行的找&…...

万界星空科技MES系统:食品加工安全的实时监控与智能管理

万界星空科技MES系统通过集成多种技术和功能,能够实时监控食品加工过程中各环节的安全风险。以下是对该系统如何实现实时监控的详细分析: 一、集成传感器和数据分析技术 万界星空科技MES系统利用集成的传感器和数据分析技术,实时监控生产过程…...

【学习笔记】4、组合逻辑电路(下)

接前文《【学习笔记】4、组合逻辑电路(上)》 4.4.5 算术运算电路 1. 半加器和全加器 半加器和全加器是算术运算电路中的基本单元。半加器和全加器是1位相加的组合逻辑电路。 (1)半加器 半加器:只考虑两个加数本身,不考虑低位进…...

使机器人在执行任务倒快递

这段代码是用来控制机器人在不同模式下的行为,具体是处理 residenceright 和 residenceleft 两种模式下的过渡过程。代码中使用了一个 mythread 结构体,该结构体包含了机器人的当前模式 (mode) 和过渡过程的阶段 (residenceTransientProcess)。以下是对这…...

谈谈软件交互设计

谈谈软件交互设计 交互设计的由来 交互设计(Interaction Design)这一概念,最初是由IDEO创始人之一Bill.Moggridge(莫格里奇)1984年在一次会议上提出。他设计了世界上第一台笔记本电脑Compass,并写作出版了在交互设计领域影响深远的《Designing Interactions》一书,被称…...

从UE/Unity转战Godot 4.2:一个老引擎用户的第一周避坑实录

从UE/Unity转战Godot 4.2:一个老引擎用户的第一周避坑实录当我在项目组里提议尝试Godot时,同事们的表情就像看到有人用算盘跑深度学习。作为十年Unity老用户,这个决定确实需要勇气——但当你发现团队80%的预算都要用来支付引擎订阅费时&#…...

AngularJS 控制器详解

AngularJS 控制器详解 引言 AngularJS 是一个用于构建动态网页的框架,它允许开发者使用 HTML 作为模板语言,通过指令扩展 HTML 的功能。在 AngularJS 中,控制器是核心组件之一,它负责管理视图和模型之间的交互。本文将详细介绍 AngularJS 控制器的概念、作用、创建方法以…...

SSH、SNMP、NETCONF、SFTP

SSH CE12800配置 #开启SSH服务 stelnet server enable ssh user renxinyu ssh user renxinyu authentication-type password ssh user renxinyu service-type stelnet #创建本地用户 aaalocal-user renxinyu password cipher Huawei123local-user renxinyu level 3local-user r…...

告别SSH连接玄学!用Finalshell管理多台Linux服务器时,如何一劳永逸搞定IP变动?

多服务器IP漂移难题的终极解决方案:Finalshell高效管理实践每次打开Finalshell准备工作时,发现熟悉的服务器连接突然变成一片红色"Connection timed out"——这种场景对于需要同时管理多台Linux服务器的运维人员和开发者来说,无异于…...

Keil C51中绝对地址变量初始化问题解析

1. 问题背景与核心需求在嵌入式开发中,特别是使用Keil C51这类经典工具链时,开发者经常需要将变量精确分配到特定的内存地址。这种需求在硬件寄存器映射、共享内存区域或特定外设控制等场景下尤为常见。最近我在一个8051项目开发中就遇到了这样的需求&am…...

3步快速上手:终极AI图像增强工具Real-ESRGAN完全指南

3步快速上手:终极AI图像增强工具Real-ESRGAN完全指南 【免费下载链接】Real-ESRGAN Real-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration. 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN 你是否曾经为模糊…...

UE Mobility

UE4传统光照模式最求极致性能:静态光源 静态物体;平衡画质与性能:固定光源 静态物体(经典组合,如太阳);完全动态场景:可移动光源 Lumen;静态光源静态物体:…...

股市学习心得-技术指标学习(布林线+MACD)

技术指标学习(布林线MACD)(所提供内容仅用于学习交流,不作为股市交易依据)首先,技术指标除了量比和换手率,都有滞后和造假的可能,因此不能用单一指标判断,也需要通过多个指标辅助决策。布林线MA…...

MNIST识别项目复盘:除了准确率97%,我们更应该关注数据预处理与损失函数的选择

MNIST识别项目深度复盘:超越97%准确率的工程实践思考 在完成一个基础的MNIST手写数字识别项目后,很多开发者会满足于模型达到97%的准确率便止步不前。然而,真正有价值的机器学习实践远不止于调出一个高准确率的模型。本文将带您深入两个常被忽…...

为什么 AI 框架几乎全选 Python,而不选 C#?| 技术深度分析

关键词:Python AI、C# AI开发、PyTorch、Semantic Kernel、Microsoft Agent Framework、ML.NET这不是 C# 的失败,而是一场"不公平竞争"的历史必然。先看数据:Python 在 AI 领域有多统治?不是我吹,数据摆在这…...