public class NewTest {
@Test
public static void main(String [] args) throws IOException {
new NewTest();
NewTest.test();
System.out.println(myname);
}
public static void test(){
String myname = "Sivarajan";
}
}
如何打印myname
?运行此程序时出现初始化错误。
答案 0 :(得分:1)
Java变量具有不同的范围。如果在方法中定义变量,则它在另一个方法中不可用。
在代码中修复它的方法:
public class NewTest {
public static String myname = "Sivarajan";
@Test
public static void main(String [] args) throws IOException
{
/*Note that since you are working with static methods
and variables you don't have to instantiate any class*/
System.out.println(myname);
}
test
返回一个字符串public class NewTest {
@Test
public static void main(String [] args) throws IOException
{
NewTest newt = new NewTest();
System.out.println(newt.test());
}
//Note that we did remove the static modifier
public String test(){
String myname = "Sivarajan";
return myName;
//or simply return "Sivarajan";
}
}
进一步阅读:
http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html
答案 1 :(得分:0)
因为您的变量myname
是在test()
方法中声明和初始化的,所以它在程序的其他任何位置都无法使用。你可以让test()
方法返回一个这样的字符串:
public class NewTest {
@Test
public static void main(String [] args) throws IOException {
new NewTest();
NewTest.test();
System.out.println(test());
}
public static String test() { //Changed to return a String
return "Sivarajan";
}
}
或将其声明为类变量,然后在该类的所有方法中使用它
public class NewTest {
String myname = "Sivarajan"; //added myname as a class variable
@Test
public static void main(String [] args) throws IOException {
new NewTest();
NewTest.test();
System.out.println(myname);
}
}
答案 2 :(得分:0)
我认为您要实现的目标是使用对象的“字段”。你所做的是在方法中声明一个变量,这意味着它只能在该方法中引用。通过声明一个字段,您可以创建类的对象,每个对象都可以访问该字段,如下所示:
public class NewTest {
public static void main(String [] args) {
//Create NewTest object
NewTest tester = new NewTest();
//Run the method on our new Object
tester.test();
//Print the field which we just set
System.out.println(tester.myName);
}
//Set the field
public void test(){
myName = "Sivarajan";
}
//A public field which is accessible in any NewTest object that you create
public String myName = "";
}