编程中有哪些方法?

img

编程中有哪些方法?我如何使用它们?我为什么要在乎?今天我将回答所有这些问题。我们将研究编程中的方法。方法是使您的代码真正强大的因素之一。这也是所谓的“面向对象编程”(OOP)的主要部分。这是一个需要掌握的概念。不过别担心,在本文结束时,您将对它们是什么以及如何使用它们有更好的理解。

什么是方法?:

主要有以下三种方法;接口方法、构造方法和实现方法。今天我们要重点讲的就是实现方法。这是使用方法的主要方式。一旦你理解了这一点,你就会自动理解另外两个。因此,暂时不要担心学习其他类型。此外,您可能听说过编程中的“函数”。函数与方法是一回事。只是名字不同而已。我想早点解决这个问题,以防你想知道。

下面是一个方法的示例:

String getMyName() {
   return "Breeze"
}

这个方法有什么作用?让我们分解一下。该方法包含四个重要部分:

方法签名

getMyName()

方法体,花括号内的所有内容 {}

{
   return "Breeze";
}

返回类型

String

返回声明

return "Breeze";

方法签名:

如果用自然语言来解释,这个方法的作用就是获得一个名称。具体来说,它得到了我的名字。这是方法名称应该是什么的第一个线索。那是; 你想要这个方法做什么?你可以随意命名你的方法。 例子:

String getMyFirstnameAndMyLastNameBecauseIFeelLikeIt() {
       return "Breeze";
}

然而,为了使代码更清晰、更易读,约定是给它一个尽可能简短的名字。同时仍保持尽可能高的可读性。选择名称的方法很简单,首先要弄清楚您希望该方法做什么。理想情况下,任何人都应该能够通过读取您的方法的名称并了解它的作用。

这有两个目的。

第一个是它可以帮助未来的你理解你过去写的什么。这对于过去的你,非常有意义。未来你用四种其他语言参与了十个新项目。未来你不记得那个代码中的任何事情。如果过去你创建了好的方法名称,未来你可能会理解代码是如何工作的。

第二个目的是通过编写可读的方法名称,您必须限制该方法应该做什么。如果你试图让方法做太多事情,你的方法名就会变得很长,以至于变得不可读。这意味着您可能应该将您的方法分解为两个单独的方法。例如,我上面写的方法名称’getMyFirstnameAndMyLastNameBecauseIFeelLikeIt'。这个方法应该做什么?它应该得到我的名字和姓氏。我们可以通过将其缩短为“getMyFirstAndLastName”来改进方法名称。但这仍然很长。它有效,但它有点太长了。另外很明显它做了两件事。因此,我们可以通过将其分为两种方法来进一步改进:

getMyFirstName()
getMyLastName()

这从三个方面改进了我们的代码。我们刚刚讨论的两个,它增加了可读性,它减少了每个方法应该做的事情。每种方法只负责获取我名字的一部分。第三个改进是它为我们提供了一种仅获取我的名字或姓氏的方法。这在将来我们不想要整个名称的情况下非常有用。之前我们必须调用“getMyFirstAndLastName”方法,然后从我们返回的内容中删除我的姓氏,这是超级混乱和不必要的。这通常被称为提高可重用性,这是 OOP 的主要好处之一。理想的是编写干净且可重用的代码。作为干净的程序员,我们永远不想把东西写两次。严格保持方法的范围(它应该做什么)尽可能小将确保您生成的代码尽可能干净和易于理解。

方法体:

这是花括号之间的一切。在这里,您可以执行诸如创建新变量、进行计算、调用其他方法等操作。

{
     String newVariable = "Hello";
     int calculation = 10 * 2;
     callOtherMethod();
}

这就是我们方法的范围。因此,在 this 范围内完成的所有操作仅在方法范围内对我们可用。这行不通:

{
     String myName = "Breeze";
}
myName = "New Name";

原因是我们在方法范围内创建了变量 myName,因此我们无法在方法范围之外访问它。然而,在我们方法的范围内,我们可以访问范围之外的东西。只要我们试图访问的东西不在另一个范围内。因此,这将起作用:

String myName = "Breeze";
{
     myName = "New Name";
}

返回类型和返回语句:

   String getMyName() {
     return "Breeze";
   }

return 语句是每个方法的最后一部分。这是我们返回我们想要返回的任何值的地方。只要它与我们方法的返回类型相匹配,它就可以是任何东西。

在我们的例子中,返回类型是一个字符串。返回类型意味着这个方法给我们的必须是一个String类型的变量。如果我们在代码中调用 getMyName() 我们知道我们将返回一个字符串。调用方法意味着每次我们在代码中使用方法签名。如果我们输入 methodName() 我们就是在调用那个方法。调用我们的方法 getMyName() 的正确方法是这样的:

String myName = getMyName();

这是调用此方法的正确方法的原因是该方法返回一个字符串。由于它返回一个字符串,我们希望访问该字符串。因此我们想把它存储在一个变量中。在以这种方式调用我们的方法之后,我们将能够通过简单地使用我们的变量 myName 来访问我们从 getMyName() 获得的任何内容。变量 myName 现在等于我们的方法返回的任何值:

String getMyName() {
     return "Kalle Hallden";
   }

String myName = getMyName(); 
// myName is now equal to "Kalle Hallden"

返回类型与变量类型一样多。我们的方法可以返回 int、double、String、bool 等。但是,这里还有另一种返回类型。那叫虚无。如果方法的返回类型为 void,则表示该方法不返回任何内容。void 方法主要用于设置事物。这意味着如果我们有一个名为 myName 的变量还没有值。然后可以使用 void 方法为该变量指定特定值。像这样:

String myName;

void setMyName() {
     myName = "Kalle Hallden";
   }

如您所见,没有 return 语句。在这种情况下,调用该方法将如下所示:

setMyname();

超级简单。因为该方法不返回一个值,这意味着我们不需要也不能存储它返回的内容。因为它什么都不返回。

更多关于方法签名:

好的,现在您希望能够很好地掌握如何使用方法。我想向您展示的最后一件事是关于方法签名的很酷的部分。您可能已经注意到,我们总是以括号结尾我们的方法名称。这也拥有一些非常强大的功能。因为我们能做的就是将所谓的输入参数添加到我们的方法签名中。看起来像这样:

String getMoneyAfterTaxes(double salary) {
     return salary * 0.6;
   }

如您所见,我们在方法签名中添加了两件事。在括号内,您可以声明输入参数。在这种情况下,我们声明此方法“接受”一个 double 类型的变量作为输入。并且可以通过调用“salary”在方法中访问它。这意味着当我们调用这个方法时,我们也可以给这个方法一些输入。看起来像这样:

double moneyAfterTaxes = getMoneyAfterTaxes(555.5);

所以现在我们的方法会计算salary * 0.6。并且薪水被设置为555.5。因为那是我们作为输入给出的。在我们方法的括号内,我们声明了变量。然后当我们调用我们的方法时,我们通过在括号内添加一些值来设置这些变量的值。另一个例子是:

void printInputs(String inputOne, String inputTwo, String inputThree) {
     print(inputOne + inputTwo + inputThree);
   }

您可以根据需要添加任意数量的输入参数。但同样的约定是“少即是多”。你应该总是尽可能少地使用。为了保持可读性。

参考链接:

  1. “面向对象编程”(OOP)
  2. 干净的程序员