1. Java 中的函数/方法

您已经学习了很多 Java 命令,这意味着您可以编写一些非常复杂的程序。一个程序10、20、30行代码不是很大的程序吧?

但是一个 100+ 的程序,现在已经很大了,而且代码很难看懂。您是否可以做些什么来以某种方式简化编写和阅读包含大量代码的程序?

是的,方法(或函数)将帮助我们做到这一点。

什么是方法?简单地说,方法就是一组具有唯一名称的命令。换句话说,我们只是把几个命令放在一个组中,并给它一个唯一的名字。就是这样 - 该方法已准备就绪。

例子:

没有方法 用一个方法
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

在左列的程序中,我们将相同的代码重复三次——我们故意这样做是为了说明一个观点。但是在右边的程序中,我们将重复的代码移到了一个单独的方法中,并给它起了一个唯一的名字—— printWiFi.

而不是重新定位的代码,我们调用该printWiFi()方法 3 次。

右边一栏的程序运行时,每执行一次该方法,就会执行printWiFi()该方法内部的所有命令。printWiFi()我们刚刚创建了一个新命令(方法),将几个命令组合成一个组。

任何代码都可以拆分成单独的方法。这样做是为了简化事情:想法是拥有许多小方法比一个大方法更好。您很快就会惊讶地发现,您曾经编写自己的程序而不编写自己的方法。


2.在Java中声明一个方法

那么如何正确编写方法呢?

public static void name()
{
  method body
}

声明(创建)方法时需要考虑很多细微差别,但我们将从基础开始。我们怎样才能声明最简单的方法呢?一个简单的方法声明如下所示:

其中name 是方法的唯一名称,method body代表组成该方法的命令。publicstatic和的含义void将在后面讨论。

在我们创建了一个方法之后,我们可以在我们的其他方法中调用它。方法调用如下所示:

name();

我们要调用的方法的唯一名称在哪里name,即当我们到达方法调用时,我们要执行其命令的方法。

当程序到达方法调用处时,它会简单地进入方法,执行它的所有命令,返回到原来的方法,继续执行。

您现在可能已经猜到了,到目前为止我们学到的大多数命令只是其他程序员为了让我们的生活更轻松而编写的方法: 、等。System.out.println()Thread.sleep()

一个方法可以包含对其他方法的调用:

代码 笔记
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




调用printWiFi10Times()方法


声明printWiFi10Times方法 循环


调用方法10次 声明方法 在屏幕上显示文本: printWiFi()


printWiFi

Wi-Fi

3. 关于方法的事实

以下是有关方法的更多事实:

事实 1. 方法始终是类的一部分。

方法只能在类中声明。一个方法不能在另一个方法中声明。方法不能在类外声明。

事实 2. 方法的名称没有神圣的含义。

调用什么方法并不重要——这不会影响任何事情。main 方法与所有其他方法一样。只是为 Java 机器将开始执行程序的方法选择了这个名称。这没什么神奇的。

事实 3. 类中方法的顺序无关紧要。

您可以按任何顺序在类中编写方法——这不会以任何方式影响程序的执行。例子:

代码
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

事实 4. 一个方法中的变量与其他方法中的变量没有任何关系。

在维加斯发生的事情,留在维加斯。并且在方法内声明的变量保留在方法内。

可以在两个相邻的方法中声明同名变量,并且这些变量之间没有任何关系。


4. 方法名称

众所周知,编程中最困难的两个问题是为方法选择正确的名称和为变量选择正确的名称。

事实上,关于如何正确命名方法,几乎​​出现了一门完整的科学。每种编程语言都有自己的标准。在Java中,习惯上遵循这些原则:

原则 1.方法名应简要描述该方法的作用。

然后另一个阅读你的代码的程序员可以根据方法的名称来猜测代码的作用。他或她不需要每次都查看被调用方法的代码。而且这些方法的目的更容易记住。

回想一下,它用于“让程序进入睡眠状态”并用于“读取下一个整数”。方便吧?Thread.sleep()Scanner.nextInt()

原则2.一个方法名可以是多个单词。

但是,这样做有几个限制:

  • 方法名称中不能有空格:所有单词都写在一起。
  • 每个单词都大写,除了第一个。
  • 方法名总是以小写字母开头

回忆printWiFi10Times方法。这个名字是什么意思?“显示‘WiFi’一词 10 次”。你不应该在方法的名字中包含很多单词:名字应该反映它的本质。

这种命名方法的标准称为 CamelCase(大写字母就像骆驼的驼峰)。

原则 3. 方法名以动词开头。

一个方法总是做一些事情,所以方法名中的第一个词总是一个动作。

以下是一些错误的方法名称:home, cat, car, train, ...;

一些好的名字是:run, execute, print, read, write, ...

原则 4. 仅使用拉丁字母和数字。

Java 对不同的语言都有很好的支持。您可以用俄语和中文编写变量、方法和类的名称——一切都可以!

但!System.out.println()如果方法是用中文写的,你要学多久Java ?比现在长得多,对吧?这是第一点。

其次,许多软件开发团队是国际化的。全世界的程序员都在使用大量的 Java 库。

因此,建议在方法名称中仅使用拉丁字母和数字。

重要的:
方法名必须以字母开头(不能以数字开头)。