我是一名新的java学生,我们正在撰写我们的第一份申请 在深入了解这些章节之前,我想澄清一下我的困惑。
以下是我的示例代码:
public class HelloWorld
{
// Instance Variable?
private String textToPrint;
//main method
public static void main(String [] args)
{
//Creating first object from our helloworld.java class
HelloWorld myObject = new HelloWorld("Hello, World!");
// This is calling our method printText() created below, this knows to
myObject.printText();
}
// Constructor
public HelloWorld(String text)
{
// initialise instance variables
textToPrint = text;
}
// First Method
public void printText()
{
System.out.print(textToPrint);
}
}
问题:
instance variable
放在main method
之上?
- 为什么这不像局部变量?parameters
内传递了constructor (String Text)
,但是
为什么底部方法在parameters
内没有printText()
?constructor
是否需要class
class
?classes
,constructor
时,请查看我的其他object
。
我对constructor
的观点非常模糊,对我来说仍然很模糊
为什么我们需要使用它? 示例:
如果我删除了constructor
,我仍然可以将“Test”的局部变量传递到System.out.println()
方法的括号中。
public class Testing
{
public static void main(String [] args)
{
String test = "Hello world";
System.out.println(test);
}
}
或只是
public class Simple
{
public static void main(String [] args)
{
System.out.println("Hello, World!");
}
}
以上两者都没有对象或方法,所以我假设constructor
用于帮助定义这些?
为即将成为java程序员的人提供一些友好的提示。
下面我的第一个评论的另一个编辑: 我目前对OOP的理解。
构造函数将如何帮助实现上述目标?
答案 0 :(得分:2)
Instance variables被放置在任何类方法体之外。 实例变量可以由类的所有方法使用(除非这些方法是 static )#。个人喜好是将它们放在顶部/底部,但Java style guidelines建议将它们置于顶部。所以请遵循它。
public void printText()
不必,因为它只关心member variable textToPrint
,这个类可以访问(参见# )
如果您不编写自己的构造函数,则会自动创建默认构造函数(没有参数的构造函数) 。阅读this了解更多信息 - 没有比教程更好的答案。
当您需要初始化新Object的状态时,您需要一个构造函数。请参阅tutorial中的示例以更好地理解这一点。
答案 1 :(得分:1)
public HelloWorld(){super(); }
答案 2 :(得分:0)
public void printText()
{
System.out.print(textToPrint);
}
这就是你在开头而不是在主函数中声明它的原因。祝你好运! :)
答案 3 :(得分:0)
这里有一些答案: