Tag: 实例

从实例引用Java中的静态方法/变量

任何人都可以向我解释为什么java允许您从实例访问静态方法和成员? 一个不好的例子,如果我有一个名为RedShape的对象并且它有一个名为getColor()的静态方法返回“red”,为什么java允许你从RedShape实例调用静态方法? 对我来说,这似乎违反了OO语言设计的一些核心概念。 至少,它应该带有编译器警告。 提前致谢。 编辑: 特别是,我问你什么时候有类似的东西 RedShape test = new RedShape(); test.getColor(); 其中getColor是RedShape类的静态方法。 这没有任何意义,它是允许的,并没有通过javac在命令行上给出编译器警告。 我看到它“强烈气馁”,但很奇怪是否有一个技术或合理的理由背后为什么它被允许在“因为C ++允许它”之外。

Java Reflection:通过输入名称来获取给定类的实例?

是否可以通过将此类的名称作为字符串输入来获取类的所有实例? 像这样的东西? var instances = Reflection.findClass(“com.someone.MyClass”).getInstances(); 任何反馈都表示赞赏。 谢谢。

实例变量初始化中的问题

下面是一些示例代码, class Base { private int val; Base() { val = lookup(); } public int lookup() { //Perform some lookup // int num = someLookup(); return 5; } public int value() { return val; } } class Derived extends Base { private int num = 10; public int lookup() { return num; } } class […]

获取类的所有实例

可能重复: 是否有一种简单的方法可以在Java中获取特定类的所有对象实例 在java中,是否有任何可能的方法来获取某个类的所有实例?

NullPointerException(Java)

我已经尝试查看有关此问题的post,但我的代码中仍然遇到此错误的问题。 因此,在第四行中,我创建了一个名为SongDatabase的实例变量来访问SongDatabase类。 但当我下到线时, SongDatabase.addNewSong(); 在case 1 ,我得到一个java.lang.NullPointerException:null错误。 接口类: public class Interface { Scanner console = new Scanner(System.in); private SongDatabase SongDatabase; public static void main(String[] args) { Interface intFace = new Interface(); intFace.run(); } private void run() { switch (userInput) { case 1: SongDatabase.addNewSong(); break; case 2: SongDatabase.removeSong(); break; case 3: SongDatabase.sortSongs(); break; default: System.out.println(“Please enter […]

JUnit:在调用每个@Test方法之前的新实例。 有什么好处?

目前,我正在阅读“JUnit in action”一书。 在本书中,我发现了以下文字: 在调用每个@Test方法之前,JUnit会创建测试类的新实例。 这有助于提供测试方法之间的独立性,并避免测试代码中的无意的副作用。 因为每个测试方法都在新的测试类实例上运行,所以我们无法跨测试方法重用实例变量值。 现在我认为这种方法没有多大意义: 例如: public class CalculatorTest { @Test public void testAdd_1() { Calculator calculator = new Calculator(); double result = calculator.add(1, 1); assertEquals(2, result, 0); } @Test public void testAdd_2() { Calculator calculator = new Calculator(); double result = calculator.add(2, 2); assertEquals(4, result, 0); } } 对于测试类CalculatorTest,没有任何好处。 好的,让我们去关注另一个例子: public […]

何时初始化实例变量并分配值?

当doees实例变量初始化? 是在构造函数块完成之后还是之前? 考虑这个例子: public abstract class Parent { public Parent(){ System.out.println(“Parent Constructor”); init(); } public void init(){ System.out.println(“parent Init()”); } } public class Child extends Parent { private Integer attribute1; private Integer attribute2 = null; public Child(){ super(); System.out.println(“Child Constructor”); } public void init(){ System.out.println(“Child init()”); super.init(); attribute1 = new Integer(100); attribute2 = new Integer(200); […]

Java实例变量在两个语句中声明和初始化

嗨,我在java中初始化有问题,下面的代码给我编译错误调用:expected instanceInt = 100; 但我已经宣布了。 如果这些东西与堆栈和堆的东西有关,请用简单的术语解释,我是java的新手,我对这些领域没有高级知识 public class Init { int instanceInt; instanceInt = 100; public static void main(String[] args) { int localInt; u = 9000; } }

如何使用多态而不是instanceof? (为什么?)

如果我们采用以下代码: Shape p1 = new Square(); Square c1; if(p1 instanceof Square) { c1 = (Square) p1; } 将多态性与instanceof什么意义,顺便说一句,为什么它更好? 编辑:我理解多态是什么; 我缺少的是如何使用它而不是instanceof 。

与实例变量的多态性

这是我写的三个类: public class Shape { public int x = 0; public void getArea() { System.out.println(“I don’t know my area!”); } public String toString() { return “I am a shape!”; } public int getX() { return x; } } public class Rectangle extends Shape { public int x = 1; public int getX() { return x; […]