- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试创建一个包含一些类的包,但似乎存在一些可见性问题。
这是我的第一个类:
package trees;
public class Tree{
private static final int HEIGHT;
private static final String NAME;
public Tree(){
HEIGHT = 5;
NAME = "Basic Tree";
}
public Tree(int a, String n){
HEIGHT = a;
NAME = n;
}
public static int getHeight(){
return HEIGHT;
}
public static String getName(){
return NAME;
}
}
这是我的第二堂课:
package trees;
public class Evergreen{
public static void main(String[] args){
Tree first_tree = new Tree(20, "Fir");
System.out.println(first_tree.getName());
System.out.println(first_tree.getHeight());
}
}
但是当我编译时,终端给出了这些错误:
Evergreen.java:6: error: cannot find symbol
Tree first_tree = new Tree(20, "Fir");
^
symbol: class Tree
location: class Evergreen
Evergreen.java:6: error: cannot find symbol
Tree first_tree = new Tree(20, "Fir");
^
symbol: class Tree
location: class Evergreen
这两个类位于名为“trees”的文件夹中。我尝试将“implement trees.*”插入 Evergreen 类中,但没有任何变化。我正在使用 Mac Maverick,使用终端进行编译,并且 Java 是最新的。
我做错了什么吗?
感谢您的帮助。
最佳答案
这不是可见性问题。基本上发生的事情是你有变量 HEIGHT 和 NAME,它们是最终变量。根据Java的final变量契约提到here ,
You are always allowed to initialize a final variable. The compiler makes sure that you can do it only once.
您的代码中有 2 个问题,
这两者都违反了上述契约(Contract)。
您可以尝试通过从变量修饰符中删除final来修改代码。
package trees;
public class Tree {
private static int HEIGHT;
private static String NAME;
public Tree() {
HEIGHT = 5;
NAME = "Basic Tree";
}
public Tree(int a, String n) {
HEIGHT = a;
NAME = n;
}
public static int getHeight() {
return HEIGHT;
}
public static String getName() {
return NAME;
}
}
关于Java - 无法看到包内的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27319680/
我在一个 twig 模板中使用 Assetic 来指定要从我的包中使用的 2 个 JS 文件 { % javascripts '@JiraExtendedReportsBund
我正在做一个 VS 包,它在菜单中有一个 DynamicItemStart 按钮。我在 VS 启动时加载动态按钮的内容没有任何问题,但我试图在某些事件(例如打开项目)之后向其内容添加更多命令。我将新命
需求是从plsql调用java方法,我可以通过loadjava命令来实现它。我遵循的步骤是: 第 1 步:创建 Java Class/jar 文件并将其放置在 Unix 机器上 第2步:将Java C
我是一名优秀的程序员,十分优秀!