【问题标题】:Can someone explain how this code is compiling [closed]有人可以解释这段代码是如何编译的[关闭]
【发布时间】:2020-09-13 06:03:41
【问题描述】:

我是 110% 的编码新手,我正在学习 Java。我一直在关注 Codecademy 的 Java 课程,到目前为止效果很好,但我不知道其中一些程序是如何工作的:

public class Store {
    //instance fields
    String productType;

    //constructor method
    public Store(String product) {
        productType = product;
    }

    public void greetCustomer(String customer) {
        System.out.println("Welcome to the store, " + customer + "!");
    }

    //advertise method
    public void advertise() {
        String message = "Selling " + productType + "!";
        System.out.println(message);
    }

    //main method
    public static void main(String[] args) {
        Store lemonadeStand = new Store("Lemonade");
        lemonadeStand.greetCustomer("Tyler");
    }
}

这个输出是:“欢迎来到商店,泰勒!”

但是其余代码发生了什么?是否仅在 main() 中调用其方法时才发生输出?我是不是只调用了 Advertisement() 方法,而其他的都被排除在输出之外了吗?

感谢您的帮助!我真的在努力养成学习我的代码实际作用的习惯,而不是仅仅制作一些有效的东西而不知道为什么!

【问题讨论】:

  • 您没有调用advertise 方法,因此不会打印Selling ... 消息。你问的是这个吗?
  • 您也需要调用广告。 lemonadeStand.advertise();
  • 看看The Java Tutorials。与每次遇到一些不明白的小事时在 StackOverflow 上提问相比,这将是一种更快、更有效的 Java 学习方法。
  • 哎呀,看来我打错了我的意思,菜鸟错误!但我得到了我正在寻找的答案等等。我将查看 Java 教程以获取有关内容的更多信息。再次感谢大家的澄清
  • 老实说,在我看来,如果您正在学习的课程没有教给您 Java 的基础知识,那么它听起来并不那么棒。而这确实是 Java 非常基础的东西。

标签: java methods parameters


【解决方案1】:

对于任何 Java 程序,main() 方法都是入口点。您将代码编译为类文件。然后执行类文件来运行程序。在运行时,JRE 将检查类文件中的 main() 方法。它将从那里开始执行代码。如果没有 main() 方法,JRE 会抛出错误。所以要执行任何一段代码,你应该确保你是从 main() 方法调用它,或者从一个实际上是从 main 方法调用的方法调用它。在这种情况下,您可以从 main 方法调用 Advertisement() 或从从 main() 方法调用的 greetCustomer() 方法调用它。在这两种情况下,您都会在控制台中打印出预期的行。

【讨论】:

  • 这是一个很棒的解释!我理解这个概念的方向是正确的,但我想确保我真正理解了我需要知道的东西。谢谢!!
【解决方案2】:

要回答您的问题,您的其余代码只是存在,是的,您需要在 main() 中调用您的方法来运行代码。就像 Sweeper 说的,你没有调用广告方法,只有 GreetCustomer()。

如果我要查看您的代码,这实际上是我一步一步看到的:

首先创建一个名为 productType 的字符串变量。

然后在您的第一个方法 public Store() 中,您接受一个参数(括号中的输入)并将 productType 分配为该值。

然后你有一个 greetCustomer() 方法,它接受一个名为 'customer' 的字符串参数,该方法打印“Welcome to the store '(parameter value called customer)'!”。

您的 Advertisement() 方法不接受输入,而是打印消息行。

Main 创建一个新的 Store 变量,名为 lemonadeStand,productType 变量/字符串设置为“Lemonade”

您要打印的是 greetCustomer() 方法,该方法在 main 中调用为 lemonadeStand.greetCustomer("Tyler"),它将“Tyler”作为参数并返回“欢迎来到 Tyler 商店!”

如果你想获得广告,你会做柠檬水站.advertise();

【讨论】:

  • 啊,是的,我现在明白了。我的意思是说greetCustomer()。感谢您的澄清!
猜你喜欢
  • 1970-01-01
  • 2012-11-23
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多