Dav*_*idC 1 java static warnings class
我正在阅读Just Java 2这本书,但显然缺少一些基本的东西.这是两个独立的项目.我已经为第二个生成了JAR并将其添加到第一个构建路径中.打印正确的区域但编译器会生成这些警告.这些如何解决?
// -----------------------------------------------------------
// Testing.java
// -----------------------------------------------------------
public class Testing {
public static void main(String[] args) {
RectangleDFC r = new RectangleDFC(3, 4);
System.out.println(r.Area());
// WARNING: The static method Area() from the type RectangleDFC
// should be accessed in a static way
r.SetSides (10, 10);
// WARNING: The static method SetSides(int, int) from the type
// RectangleDFC should be accessed in a static way
System.out.println(r.Area());
// WARNING: The static method Area() from the type RectangleDFC
// should be accessed in a static way
}
}
// -----------------------------------------------------------
// RectangleDFC.java
// -----------------------------------------------------------
public class RectangleDFC {
int side1;
int side2;
RectangleDFC(int s1, int s2) {
SetSides(s1, s2);
}
public void SetSides(int s1, int s2) {
side1 = s1;
side2 = s2;
}
public int Area() {
return side1 * side2;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 13
首先; Java中的方法应该是lowerCamelCase(),而不是UpperCamelCase().类名应该是UpperCamelCase().
第二;
int side1;
int side2;
Run Code Online (Sandbox Code Playgroud)
应该
private int side1;
private int side2;
Run Code Online (Sandbox Code Playgroud)
并且最好(如果你不修改它们)
private final int side1;
private final int side2;
Run Code Online (Sandbox Code Playgroud)
你应该只设置side1和side2构造函数,而不是制定者内部.
也就是说,我不认为您正在执行您发布的代码,没有理由应该使用您发布的代码发出这些错误,您可能使用area()声明方法的旧代码链接到.jar文件static.
这本书在互联网时代已经相当陈旧,有更好的初学者书籍更好地涵盖了"现代"Java.例如,如果您使用的图书正在使用Enumeration,Vector或者Hashtable将其放入垃圾箱并获得较新的图书.