2013-01-13 60 views
0

好吧,所以我有這個簡單但很大的問題,但我實際上找不到解決方案。我已經聲明瞭主方法之外的所有變量,然後在主方法中給它們賦值,但我似乎無法鏈接它們,所以當我在其他類中調用它們時,字符串author1和2是空的,我的數組也是如此藝術家。我非常感謝你們的幫助,這讓我發瘋,而且我很匆忙。在主要方法之外使用變量

package Medienbibliothek; 

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

公共類藝術家當你寫一個String artist1函數內部延伸作者{

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)); 

回答

0

它宣佈新的局部變量,這「影子」 static String artist1;。這意味着在以下代碼artist1內將引用局部變量而不是靜態變量。刪除這些不必要的聲明。

+0

是的,我這樣做,它的工作,但另一個問題發生。你會發現我已經爲藝術家1和藝術家2賦予了值,並且我希望他們被保存在我的數組藝術家中,所以我可以在其他類中使用它。當我嘗試這樣做時,它說數組由兩個空變量組成。 –

+0

我想輸入一次,將它們保存爲最終的,然後用它們進行處理。 –

+0

@PeterGeorgiev - 你保留了作業'artist1 =(FirstName1 +「」+「\」「+ NickName1 +」\「」+「」+ LastName1);'?沒有辦法讓他們「靜態最終」。這意味着它們必須在靜態初始化期間進行初始化 - 在「main」開始之前。 – zch

相關問題