如何打印对象的属性?

时间:2017-12-23 21:05:11

标签: java oop

我正在努力学习Java / OOP。我正在尝试从“熊”对象中打印name属性。我一直在寻找谷歌,但不知道该搜索什么。除了打印语句之外的所有内容都应正确。

public class test
{
    public static void main(String args[])
    {
        System.out.println(NFCnorth.bears.name);
    }
}

class Team
{
    String name;

    public Team(String name)
    {
        this.name=name;
    }
}

class NFCnorth
{
    private String divisionName="NFC North";

     Team vikings=new Team("Minnesota Vikings");
     Team bears=new Team("Chicago Bears");
     Team packers=new Team("Green Bay Packers");
     Team lions=new Team("Detroit Lions");
}

3 个答案:

答案 0 :(得分:0)

你可以访问它(假设它在main中可见):

System.out.println(bears.team);

但惯用法是为类Team提供名称的getter:

public class Team {
    String name;

    public Team(String name) {
        this.name=name;
    }

    public String getName() {
        return name;
    }
}

并从你的主要使用它:

System.out.println(bears.getName());

答案 1 :(得分:0)

你需要做

System.out.println(new NFCnorth().bears.name);

或者让NFCnorth中的熊场像这样静止:

static Team bears=new Team("Chicago Bears");

在OOP中有各种类的对象。给定类的每个对象具有相同的字段集(可以具有不同的值)。你定义了一个类NFCnorth来拥有字段,所以这个类的每个对象都有这样的字段。要获得NFCnorth类的对象,您需要使用new NFCnorth()创建它。一个类本身没有那些字段,所以NFCnorth.bears是非法的。

将字段标记为静态意味着它将成为类中的字段,然后NFCnorth.bears就可以了。

答案 2 :(得分:-1)

使用常数:

 public static final Team VIKINGS = new Team("Minnesota Vikings");
 public static final Team BEARS = new Team("Chicago Bears");
 public static final Team PACKERS = new Team("Green Bay Packers");
 public static final Team LIONS = new Team("Detroit Lions");

或者您需要先实例化NFCnorth。此外,在良好的OOP中,您应该应用封装并为您的属性创建getter(至少在Java中,其他一些语言对getter使用不同的约定,其中在访问属性和通过getter访问属性之间没有语法差异):< / p>

new NFCnorth().getBears().getName()