2012-05-26 66 views
-2

所以,我對Java很陌生。我學到了很多新的東西。但是......當然我不明白一切。Java未檢測到類?

我有2個班。一個名爲「隨機」和一個名稱「ananas」(鳳梨法語爲菠蘿)

隨機是我的主類...但由於某種原因,我的主類(隨機)沒有檢測到鳳梨。

這是我在菠蘿腳本:

public class ananas { 
    public String a(String PackageA){ 
     PackageA = "This file shall remain TOP SECRET! The ultimate universal secret code is...'Ananas'"; 
     return PackageA; 
    } 
    public String b(String PackageB){ 
     PackageB = "File not created yet"; 
     return PackageB; 
    } 
    public String c(String PackageC){ 
     PackageC = "File not created yet"; 
     return PackageC; 
    } 

} 

這裏是我的代碼中的 「隨機」:

import java.util.Scanner; 
public class Random { 
    public static void main(String ars[]){ 
     Scanner input = new Scanner(System.in); 
     System.out.println("Welcome, Please enter the code: "); 
     String hey = input.nextLine(); 
      if(hey .equals("The sandman ate my dollar")) 

       System.out.println("Welcome! Please choose one: A), B), C)"); 
        Scanner input2 = new Scanner(System.in); 
        String heyy = input2.nextLine(); 
        if(heyy .equals("A)")) 
         System.out.println("File not created yet"); 

        else if(heyy .equals("B)")) 
         System.out.println("Flid not created yet"); 

        else if(heyy .equals("C)")) 
         System.out.println("File not created yet"); 
        else 
         System.out.println("Access Denied"); 

我試圖做的: 「菠蘿ABC =新菠蘿();」

但是,即使當我去我的代碼運行,它只能檢測「隨機」

請幫助?

+5

請注意,在Java類應大寫字母 – Zavior

+0

你的類應該以國會字母開頭開始(菠蘿 - >鳳梨), 和您的變量與較低大小寫字母(PackageA - > packageA)。 您的代碼仍然可以運行,但這是常見的做法。 – Martin

+0

我不知道你的意思是「它檢測」。你能詳細說明一下嗎? – toniedzwiedz

回答

0

我在ananas中看不到構造函數。

它應該是這樣:

public ananas(){ 
System.out.println("I like pineapples"); 
} 

我希望這有助於:)

+2

如果你沒有創建構造函數,Java會自動爲你創建一個空的,所以這是不需要的。 – Martin

1

如果這是你在有隨機的代碼,你永遠菠蘿建設的一個實例。 因爲你在Ananas中的方法不是靜態的,你需要創建一個類的實例。

Ananas a = new Ananas(); // Construct new instance calling the default constructor 

// Note that you have named your methods so that nobody can really understand what they do! 
// Now, to call methods from this class, you would do it like this 
//First a = the instance of ananas class we just built. The second a is the method in the class we wish to call. String is the parameter the method requires. 
a.a(string); 

,因爲它看起來要調用從根據輸入的用戶給出了鳳梨類的方法,您可以修改代碼以像這樣做。

if(heyy.equals("A)"){ 
     a.a(yourString); // You need to create the ananas instance before this, and have a string called yourString that you pass on to the method 
} 

在這種情況下的一個更好的解決方案是,不要求在ananas中的方法需要String參數。還要考慮命名該方法,以便描述它在做什麼!所需的改變是如此簡單:

public String a(){ // a could be something like 'getStringA' 
     String PackageA = "This file shall remain TOP SECRET! The ultimate universal secret code is...'Ananas'"; 
     return PackageA; 
    }