在main方法之外使用变量

时间:2013-01-13 12:35:43

标签: methods

好的,所以我有这个简单但很大的问题,我真的找不到解决方案。我已经声明了main方法之外的所有变量,然后在main方法中给出了它们的值,但我似乎无法链接它们,所以当我在其他类中调用它们时,Strings author1和2都是空的,我的数组也是如此艺术家。我非常感谢你的任何帮助,它让我发疯,我很着急。

package Medienbibliothek;

import java.util.Arrays; import java.util.Scanner;

公共类艺术家扩展作者{

 static String FirstName1;
 static String NickName1;
 static String LastName1;
 static String artist1;

 static String FirstName2;
 static String NickName2;
 static String LastName2;
 static String artist2;


public static String[] artists = new String[]{artist1, artist2};

public static void main(String args[]){



Scanner Person = new Scanner(System.in);

System.out.println("Enter FirstName: ");
FirstName1 = Person.nextLine();

System.out.println("Enter LastName: ");
LastName1 = Person.nextLine();

System.out.println("Enter NickName: ");
NickName1 = Person.nextLine();

String artist1 = (FirstName1 + " " + "\"" + NickName1 + "\"" + " " + LastName1);

System.out.println("Your first artist is: " + artist1);

System.out.println("Enter FirstName: ");
FirstName2 = Person.nextLine();

System.out.println("Enter LastName: ");
LastName2 = Person.nextLine();

System.out.println("Enter NickName: ");
NickName2 = Person.nextLine();

String artist2 = (FirstName2 + " " + "\"" + NickName2 + "\"" + " " + LastName2);

System.out.println("Your second artist is: " + artist2);



System.out.println("Your artists are: " + "\n1." + artist1 + "\n2." + artist2);

final String[] artists = new String[]{artist1, artist2};

System.out.println(Arrays.asList(artists));

1 个答案:

答案 0 :(得分:0)

当你在函数内写String artist1时,它会声明新的局部变量,即'shadow'static String artist1;。这意味着在以下代码artist1内部将引用局部变量而不是静态变量。删除这些不必要的声明。

相关问题