问题描述
我是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()中调用其方法时才发生输出吗?我只调用了advertise()方法,其他方法都被排除在输出之外了吗?
感谢您的帮助!我真的想养成学习我的代码实际作用的习惯,而不是仅仅做一些有用的事情而不知道为什么!
解决方法
要回答您的问题,代码的其余部分仅存在,是的,您需要在main()中调用您的方法以运行代码。就像Sweeper所说的那样,您没有调用advertise方法,只有GreetCustomer()。
如果我要看一下您的代码,实际上就是我逐步看待它的方式:
首先,您创建一个名为productType的String变量。
然后在第一个方法public Store()中,接受一个参数(括号中的输入),并将productType分配为该值。
然后,您有一个greetCustomer()方法,该方法带有一个名为“ customer”的String参数,并且该方法将显示“欢迎使用商店((称为客户的参数值)”!)。
您的advertise()方法不接受输入,而是打印消息行。
Main创建一个新的Store变量,名为LemonadeStand,并将productType变量/字符串设置为“ Lemonade”。
您要打印的是greetCustomer()方法,该方法主要被称为lemonadeStand.greetCustomer(“ Tyler”),该方法将“ Tyler”作为arg并返回“ Welcome to store Tyler!”。
如果您想做广告,可以做lemonadeStand.advertise();
,对于任何Java程序,main()方法都是入口点。您将代码编译为类文件。然后,您执行类文件以运行程序。在运行时,JRE将检查类文件中的main()方法。它将从那里开始执行代码。如果没有main()方法,JRE将引发错误。因此,要执行任何代码,都应确保从main()方法调用它,或从实际上从main方法调用的方法中调用它。在这种情况下,您可以从main方法调用advertise()或从从main()方法调用的greetCustomer()方法调用它。在这两种情况下,您都将在控制台中打印出预期的行。