【问题标题】:Can I access a classes constructor variables the someway as in JS?我可以像在 JS 中那样访问类构造函数变量吗?
【发布时间】:2020-01-15 11:36:36
【问题描述】:

是否可以像在 JS 中一样访问对象的变量。

例如:

import java.util.*;
class Dice{
    public String [] side;
    public String name;

    public Dice (String n, String ... a){
        name = n;
        side = a;

    }

    //Setter and Getter side
    public String getSide(){
        return side;
    }
    public void setSide(String s){
        side = n;
    }

}

数组在main中初始化如下:

Dice easy = new Dice("Green:","Brain","Brain","Brain","Foot Print","Foot Print","Shotgun");

它有一个名字“绿色”。

其余的对象字符串存储在字符串数组中。

要在 JS 中访问数组,您可以:

Dice.side[1];

我们可以像这样在 Java 中访问它们吗,我正在尝试访问 main() 中的数组?

String theStringInArray = Dice.side[1];

System.out.println(theStringInArray);

在本例中,结果应打印“Brain”。

(这仅适用于我自己,为了获得练习,我一直在阅读有关 ArrayLists 的内容,但在此示例中仅使用数组 :)

【问题讨论】:

  • 你尝试的时候发生了什么?
  • side 是一个 instance 变量 - 每个实例都有一个单独的变量。在这种情况下,您只需要 easy.side[1] 而不是 Dice.side[1]... 虽然我一般建议不要使用公共字段。
  • @Scott Hunte,Scott 这个直觉怎么样???? stackoverflow.com/questions/20079681/…
  • @ Jon Skeet,感谢您的帮助,我现在遇到了这个问题

标签: java class


【解决方案1】:
Dice easy = new Dice("Green:","Brain","Brain","Brain","Foot Print","Foot Print","Shotgun");

String theStringInArray = easy.side[1]; // getting the value through instance (easy)

System.out.println(theStringInArray);

如果你真的想访问像Dice.side[1];您必须将 side 数组设为静态变量。

public static String [] side;

【讨论】:

  • 谢谢你前几天也帮了我:)
猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 2011-05-06
  • 1970-01-01
  • 2011-12-08
  • 2018-12-08
相关资源
最近更新 更多