Java 笔记 11:Java 方法相关内容

server/2024/10/18 9:18:31/

一、前言

记录时间 [2024-05-01]

系列文章简摘:
Java 笔记 01:Java 概述,MarkDown 常用语法整理
Java 笔记 02:Java 开发环境的搭建,IDEA / Notepad++ / JDK 安装及环境配置,编写第一个 Java 程序
Java 笔记 03:Java 基础知识,使用 IDEA 创建 Java 项目、设置注释颜色,以及自动生成 JavaDoc
Java 笔记 09:Java 流程控制相关,常见的三种控制结构(顺序、选择、循环)

更多 Java 相关文章,请参考上面专栏哦。

本文对 Java 方法进行简单介绍。(未完结)


二、方法概述

1. 思考引入

在之前的学习中,我们接触过 System.out.println(); 这个 Java 语句,它是用来在控制台输出信息的命令。

在 Java 中,System.out 是一个代表标准输出流的对象,而 println() 是一个方法,它会在控制台输出括号内的内容,并在最后自动换行。如果括号内没有任何内容,它将输出一个空行。

  • System:这是 Java 中的一个类,位于 java.lang 包中。它提供了与系统相关的方法和属性,包括标准输入、标准输出等。
  • out:这是 System 类的一个静态属性,类型为 PrintStreamPrintStream 是 Java 中用于打印输出的类。
  • println()这是一个方法,它会在控制台输出括号内的内容,并在最后自动换行。

2. 何谓方法

在 Java 中,方法是用来执行特定任务的一组语句的集合,它们在一起执行一个功能。方法可以接受参数,执行操作,并返回一个值。

  • 方法是解决一类问题的步骤的有序组合;
  • 方法包含于类或对象中;
  • 方法在程序中被创建,在其他地方被引用。

3. 方法设计原则

方法的本意是功能块,就是实现某个功能的语句块的集合。设计方法时,应遵循一些原则,以确保方法的可读性、可维护性和可重用性。

  • 单一职责原则:一个方法应该只有一个明确的功能或职责(原子性)。使方法更加清晰和易于理解,降低方法的复杂性。
  • 开放封闭原则方法应该对扩展开放,对修改封闭。当需要修改方法时,应该通过扩展,而不是修改现有方法来实现。
  • 参数数量原则:尽量避免方法接受过多的参数。参数数量过多会增加方法的复杂性和理解难度。如果方法需要大量参数,可以考虑将这些参数封装成对象或者使用构建器模式。
  • 清晰明确的命名原则方法的名称应该清晰、明确地描述方法的功能。
  • 提高可见性原则:在设计方法时,应该尽量将方法的可见性设置为最小化。如果可能,应该将方法设置为私有 private,只有在需要在类的外部调用时,才将方法设置为公共 public 或受保护 protected
  • 避免副作用原则方法应该尽量避免对外部状态的修改,即所谓的副作用。副作用会增加方法的复杂性,降低方法的可预测性和可维护性。
  • 一致性原则方法的设计应该保持一致性,即相似的功能应该采用相似的方法设计。这样做可以提高代码的可读性和可维护性。
  • 错误处理原则方法应该提供良好的错误处理机制,包括抛出异常、返回错误码等。良好的错误处理可以增强方法的健壮性和可靠性。

4. 方法命名原则

在 Java 中,方法的命名应该遵循一定的规则和约定,以提高代码的可读性和可维护性。

以下是一些常用的方法命名规则:

  • 使用动词或动词短语方法名称应该能够清楚地描述方法执行的操作。通常使用动词或动词短语来命名方法。例如:calculateTotal()getUserInfo()
  • 采用驼峰命名法:首字母小写,后续单词的首字母大写,没有下划线或其他分隔符。例如:calculateTotalAmount()
  • 清晰明确方法名应该尽可能清晰和明确,避免使用缩写或简写,以确保其他开发者能够准确理解方法的作用。
  • 使用一致的命名风格:在整个代码库中,应该保持一致的命名风格。以提高代码的可读性,降低沟通成本。
  • 避免使用保留字方法名不应该与 Java 中的保留字相同,以免引起歧义或编译错误。
  • 根据约定命名特殊方法:一些特殊用途的方法,例如构造方法、getter 和 setter 方法,有一定的命名约定。例如,构造方法应该与类名相同,getter 方法应该以 get 开头,setter 方法应该以 set 开头。
  • 反映方法的功能方法名应该反映方法的功能,而不是具体的实现细节或内部实现。
  • 具有一定的描述性:避免使用过于简单或过于通用的名称,以免造成混淆或命名冲突。

三、方法定义及调用

1. 定义语法

以下是定义方法的一般语法:

java"><访问修饰符> <返回类型> <方法>(<参数列表>) {// 方法<语句>;// 可选的返回语句return <返回值>;
}
  • <访问修饰符>:指定了谁可以调用这个方法以及在什么情况下可以调用。常见的访问修饰符包括:
    • public(公共的,任何类都可以访问)
    • private(私有的,只有同一个类中的其他方法可以访问)
    • protected(受保护的,只有同一个包内的类和子类可以访问)
    • 默认(没有修饰符,只有同一个包内的类可以访问)
  • <返回类型>:指定了方法返回的数据类型:
    • 如果方法不返回任何值,则返回类型应为 void
    • 如果方法返回一个值,则返回类型应该是具体的数据类型,如 intdoubleString 等。
  • <方法名>方法的名称,用来唯一标识方法
  • <参数列表>方法可以接受零个或多个参数,参数是方法执行时需要的输入值。参数列表是用括号括起来的,多个参数之间用逗号分隔。
  • // 方法方法体包含了方法执行的实际操作。这里是方法中的语句集合。
  • return <返回值>;:可选的返回语句,用于将结果返回给调用者。return 语句会结束方法的执行并返回一个值给调用者。如果方法的返回类型是 void,则不需要返回语句。

2. 简单示例

以下是一个简单的 Java 方法示例:

java">public class MyClass {public static void main(String[] args) {int sum = addNumbers(5, 3);System.out.println("Sum: " + sum);}public static int addNumbers(int a, int b) {return a + b;}
}

在这个例子中,addNumbers 方法接受两个整数作为参数,并返回它们的和。main 方法调用了 addNumbers 方法,并将返回的结果打印到控制台。


四、总结

本文对 Java 方法进行简单介绍。(未完结)

剩余部分:方法重载、命令行传参、可变参数、递归


一些参考资料

狂神说 Java 零基础:https://www.bilibili.com/video/BV12J41137hu/
TIOBE 编程语言走势: https://www.tiobe.com/tiobe-index/
Typora 官网:https://www.typoraio.cn/
Oracle 官网:https://www.oracle.com/
Notepad++ 下载地址:https://notepad-plus.en.softonic.com/
IDEA 官网:https://www.jetbrains.com.cn/idea/
Java 开发手册:https://developer.aliyun.com/ebook/394
Java 8 帮助文档:https://docs.oracle.com/javase/8/docs/api/


http://www.ppmy.cn/server/28324.html

相关文章

acwing算法提高之数据结构--平衡树Treap

目录 1 介绍2 训练 1 介绍 本博客用来记录使用平衡树求解的题目。 插入、删除、查询操作的时间复杂度都是O(logN)。 动态维护一个有序序列。 2 训练 题目1&#xff1a;253普通平衡树 C代码如下&#xff0c; #include <cstdio> #include <cstring> #include …

[ACTF2020 新生赛]BackupFile 1 [极客大挑战 2019]BuyFlag 1 [护网杯 2018]easy_tornado 1

目录 [ACTF2020 新生赛]BackupFile 1 1.打开页面&#xff0c;叫我们去找源文件 2.想到用disearch扫描&#xff0c;发现源文件index.php.bak 3.访问这个文件&#xff0c;下载一个文件&#xff0c;用记事本打开 4.翻译php代码 5.构造payload url/?key123&#xff0c;得到fl…

引入classfinal maven 插件实现对jar包的加密

文章目录 概要整体流程 概要 我使用的项目为微服务项目 整体流程 明确所有需要加密的jar包&#xff1a; 可以通过maven的package指令&#xff0c;查看日志&#xff0c;后缀为jar的即为所有需要加密的jar包。 在跟pom文件的properties属性中定义classfinal maven插件的属性值…

MySQL之多表查询

1. 前言 多表查询&#xff0c;也称为关联查询.指两个或两个以上的表一起完成查询操作.前提条件 : 这些一起查询的表之间是有关系的(一对一/一对多).他们之间一定是有关联字段&#xff0c;这个关联字段可能建立了外键&#xff0c;也可能没有建立外键. 2. 笛卡尔积现象(交叉连接…

c++后台开发八股文遗漏复习点

c primer cht2 常量指针&#xff08;pointer to constant&#xff09;与指针常量&#xff08;constant pointer&#xff09;。记&#xff1a;常量指针是指向常量的指针。 可以用常量指针指向非常量对象。但是不建议。 不能用非常量引用指向一个常量对象。可以用常量引用指向一…

Flutter笔记:Widgets Easier组件库(3)使用按钮组件

Flutter笔记 Widgets Easier组件库&#xff08;3&#xff09;&#xff1a;使用按钮组件 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddre…

google chromeDriver 地址

#chrome driver 下载地址 https://getwebdriver.com/chromedriver #chrome brower下载地址 https://googlechromelabs.github.io/chrome-for-testing/ centos 安装的dockerFile的部分命令&#xff1a; #安装browser wget https://dl.google.com/linux/chrome/rpm/stable/x86_…

2024年五一数学建模C题初步思路

五一数模竞赛如期开赛&#xff0c;5月4日中午12:00截至&#xff0c;为期74小时的竞赛。为了能够更好的帮助大家&#xff0c;这里为大家带来详细版的C题解题思路&#xff0c;希望能够对大家有所帮助。 问题1&#xff1a;干扰信号的分析和识别 建立数学模型&#xff0c;分析干扰…