打印其他类的返回值

时间:2014-01-19 04:06:52

标签: java printing return

我是java的新手,正在玩代码。我很好奇如何使用类A中的System.out.print在类B中打印返回值。我不想在类B中使用System.out.print。我已经知道如何这样做。

-------- CLASS A ------------------------------------- ---

import java.util.Scanner;

public class Moregot {


    public static void main(String[] args){         
        Scanner scan = new Scanner(System.in);
        Give giveObj = new Give();
        System.out.println("Enter your First Name ");
        String fNamed = scan.nextLine();
        System.out.println("Enter your Last Name ");
        String lNamed = scan.nextLine();
        System.out.println("Enter your Age ");
        int theAge = scan.nextInt();
        Give.setInfomation(fNamed, lNamed, theAge);         
        System.out.println("Your Name is  " + giveObj.getfN() + " "+ giveObj.getlN() + " and you are age "+ giveObj.getOld());
    }
}

-------- CLASS B ------------------------------------- ---

package Practice2;

public class Give {

    private String _fName, _lName;

    private int _age;

    public static void setInfomation(String fNam, String lNam, int old)
    {   
        String _fName = fNam;
        String _lName = lNam;
        int _age = old; 
    }

    public String getfN(){
        return _fName;
    }

    public String getlN(){
        return _lName;
    }

    public int getOld(){
        return _age;
    }

}

3 个答案:

答案 0 :(得分:1)

Give班级中更改行:

String _fName = fNam;
String _lName = lNam;
int _age = old; 

为:

_fName = fNam;
_lName = lNam;
_age = old; 

另外,改变:

Give.setInfomation(fNamed, lNamed, theAge);

为:

giveObj.setInfomation(fNamed, lNamed, theAge);

并从static

中删除setInfomation()声明

一个问题是,在方法setInfomation()中,您创建了新变量并将值分配给它们,而不是将参数分配给您的类成员。

第二个问题是,您使用setInfomation()调用Give - 您的类(因为它被声明为静态),而不是将其设置为非静态并使用您创建的实例调用它:{{1} }

答案 1 :(得分:0)

  • 从Give类中删除所有静态方法。 Moregot类应该创建Give实例并调用它们的方法,但不要从类中调用静态方法。
  • 实际上getInformation方法应该由构造函数替换。
  • 在构造函数中,您应该使用传入的参数来设置类的字段,即this.foo = foo;
  • 我会将主要方法更改为获取所有初始数据的位置,只有然后创建一个Give对象,将此初始数据传递给其构造函数。
  • 我会给Give类一个体面的toString()方法,它返回对象状态的String表示。例如,您的方法将返回一个String,该String包含名称字段和年龄字段中的值。
  • 然后,任何包含Give对象的类都可以通过将Give对象传递给System.out.println(...)来轻松打印出来。
  • 您将需要阅读一本不错的Java教科书来学习基础知识,因为您的所有后续编程都将从此构建。 Bruce Eckel用Java思考是一个很好的。
  

首选

编码示例回复

您可以更好地尝试自己的编码,因为您将通过努力学到更多知识。

答案 2 :(得分:0)

首先,setInfomation(...)不应该是静态方法,因为您正在尝试设置您创建的实例的值:

public void setInfomation(String fNam, String lNam, int old)
{
    _fName = fNam;
    _lName = lNam;
    _age = old;
}

此外,请勿在方法_fName中再次声明lName_agesetInfomation,因为您隐藏了声明的字段在课堂上。

最后,在main方法中,使用您创建的实例setInformation调用giveObj

giveObj.setInfomation(fNamed, lNamed, theAge);