如何在不创建子类和/或继承类的情况下从另一个类调用Object的方法?

时间:2014-02-12 10:29:54

标签: java class oop inheritance methods

我一直在初学阶段学习基本代码。现在我终于开始涉足实际编写简单的程序,并且真的陷入困境。

  • 我正在编写一个由两个类组成的简单程序;人, 主页。

  • 程序运行后,方法openApp()在主方法中从(MainPage Class)调用。

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

我得到的错误:

  

线程“main”中的异常java.lang.Error:未解决的编译问题:       人们无法解决

问题是我不想在MainPage中扩展People Class并继承它的所有方法,但我仍然想从People Class调用Object方法来打印 people 对象的朋友。

注意:以防任何人想要查看位于People类中的friend(People people)方法:

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

1 个答案:

答案 0 :(得分:1)

优秀的问题格式。

您可以声明类型Object的{​​{1}},然后使用它。

示例

People

<强>解释

您的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