2014-02-12 72 views
3

我一直在非常初級的基礎代碼學習。現在我終於開始涉足實際編寫簡單的程序,並且陷入了困境。如何在不創建子類和/或繼承類的情況下從另一個類調用Object的Method?

  • 我在寫一個簡單的程序,它由兩個類組成;人, MainPage。

  • 一旦程序運行,方法openApp()在MainPage類的main方法中被調用。

    public static void main(String[] args) { 
    
         openApp();     
    } 
    
  • 接着,當openApp()被調用時,該用戶具有三個菜單選擇到由輸入相應的數字

    即1 =新聞源,2 =資料或3中選擇=友。

公共類的MainPage {

public static void openApp() { 


    System.out.println("Welcome to App!"); 
    System.out.println(); 
    System.out.println("To Select Option for:"); 
    System.out.println("Newsfeed : 1"); 
    System.out.println("Profile : 2"); 
    System.out.println("Friends : 3"); 
    System.out.println("Enter corresponding number: "); 
    int optionSelected = input.nextInt(); 

    switch (optionSelected) { 

    case 1: System.out.println("NewsFeed"); 
      break; 
    case 2: System.out.println("Profile"); 
      break; 
    case 3: System.out.println("Friends"); 
     break; 

     if (optionSelected == 3) { 
      people.friend();// Is it possible to write: friend() from "People" Class without extending to People Class 
        } 

    } 
} 
  • 如果用戶選擇了 「朋友」,那麼程序調用從
    人們課 MainPage類稱爲friend(People name)的方法打印出對象的朋友。

我嘗試:

if (optionSelected == 3) { 
     people.friend(); 
       } 

的錯誤,我得到:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: people cannot be resolved

問題是,我不希望在的MainPage擴大人民類,並繼承它的所有方法,但我仍然想調用People Class中的Object方法來打印對象的朋友。

注:萬一有人想看看friend(People people)方法位於人民類:

public void friend(People people) { 
    System.out.println(people.friend); 

回答

1

非常好的問題格式。

您可以聲明People類型的Object,然後使用它。

public class MainPage 
{ 
    People people = new People(); 

    // .. Some code. 

    if(optionSelected == 3) { 
     people.friend(); 
    } 
} 

說明

friend方法是instance method。這意味着爲了訪問它,你需要創建一個對象的實例。這是通過new關鍵字完成的。其次,除非People是某種形式的實用類的,那麼你的friend方法或許應該讀起來更像:

public void friend() 
{ 
    System.out.println(this.friend); 
} 

併爲良好的代碼設計的緣故,記住,你MainPage類是向用戶輸出,讓你應該是return的值而不是打印它。其次,你應該遵守良好的命名標準,並在Java我們使用前綴get獲得類成員。

public void getFriend() 
{ 
    return this.friend; 
} 

MainPage類,你應該打印這個。

if(optionSelected == 3) 
{ 
    System.out.println(people.getFriend()); 
} 
+0

謝謝你的出色答案,克里斯托弗!非常感謝 :) – user3289740

相關問題