Tag: 引用

为什么在用作其他对象类型时必须转换对象类型的引用变量

虽然Java中的所有类都是Object类的子类,但与其他对象类型不同,但是如果没有强制转换,则不能将Object类型的引用变量赋值给任何其他引用类型。 例如: public class Inheritance { public static class Animal { public void Scream() { System.out.println(“I’m an animal”); } } public static class Mammal extends Animal{ public void Scream(){ System.out.println(“I’m a mammal”); } } public static class Tiger extends Mammal{ public void Scream(){ System.out.println(“I’m a tiger”); } } public static void main (String[] args){ Animal […]

封闭对象的引用通过匿名类java转义

我在实践中阅读Java并发性,下面的例子来自于此。 我的问题是这个参考逃脱是什么意思? 会有什么问题? 。 该引用如何从doSomething(e)中逃脱。 public class ThisEscape { public ThisEscape(EventSource source) { source.registerListener( new EventListener() { public void onEvent(Event e) { doSomething(e); } } ); } } 这是如何解决这个问题的 public class SafeListener { private final EventListener listener; private SafeListener() { listener = new EventListener() { public void onEvent(Event e) { doSomething(e); } }; } public […]

如何在Java中使用引用?

我想在Java中使用引用,但我不知道如何! 例如在C ++中我们写道: void sum(int& x) { … } 但在Java和sign中是一个编译器错误! 请帮我理解Java中的参考资料。

如何在eclipse中使用JAR中的类

我有两个jar文件 – jar1和jar2。 它们都位于C:\ Eclipse projects \中,我已将它们的路径添加到环境变量CLASSPATH中,如下所示 .;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\Eclipse projects\stdlib.jar;C:\Eclipse projects\algs4.jar “。;” 一开始就在那里,所以我离开了他们。 然后我从它们的位置C:\ Eclipse projects \中将jar添加到项目中,它们显示为Referenced Libraries。 但是,当我尝试从jar实例化一个类时,它无法识别它。 我也无法导入jar(导入jar1)。 我尝试在项目中添加一个lib文件夹后,我在那里添加了jar。 之后,我再次将它们作为引用添加(因此它们在引用的库中不会出现两次),但是,我仍然无法使用内部类。 任何帮助都感激不尽。 更新:我的结果肯定是错的。 这些建议都不适合我。 这是一个包含所有步骤的video:screencast.com/t/gC81YzCsLY0e 回到顶端|提供反馈解决方案在我的项目中,我有一个名为TestProject的包,似乎这些jar需要一个默认包。 删除TestProject包并使用defaultPackage后,一切都在添加外部JAR后正常工作,如下所述。

类的对象作为类中的实例变量

可能重复: 一个类如何拥有自己类型的成员,这不是无限递归吗? 代码: public class Test2{ private Test2 subject = new Test2(); //Create Test2 object in Test2 private int num; } 问题: 为什么Java允许执行上面的代码,但C ++不允许? 上面的代码是否创建了无限数量的对象? 由于Test2本身包含一个Test2对象,它再次包含一个Test2对象,该对象本身有一个Test2对象,依此类推。

为什么即使我的hashcode值相同,’==’也会返回false

我写了一个类似的课程 public class HashCodeImpl{ public int hashCode(){ return 1; } public static void main(String[] args) { // TODO Auto-generated method stub HashCodeUtil h= new HashCodeUtil(); HashCodeUtil h1= new HashCodeUtil(); System.out.println(h.hashCode()); System.out.println(h1.hashCode()); System.out.println(h); System.out.println(h1); System.out.println(h==h1); } } 输出: 1 com.manu.test.HashCodeUtil@1 com.manu.test.HashCodeUtil@1 false 我的问题是:当我的hashCode方法返回相同的值时,为什么System.out.println(h==h1); 是假的? 请解释。

Java基类引用变量

可以为基类引用变量分配基类对象或派生类对象的地址。 真假? 谁能告诉我一个这意味着什么的例子? 我是Java的新手,正在尝试理解Java的语言特定术语。 谢谢。 我想这个例子就是我在下面写的代码: public class B extends A { A a = new A(); A ab = new B(); } class A { } 我认为既然两个引用变量都是有效的语法(在Eclipse中),那么答案是正确的。

按类引用字段和按对象调用字段有什么区别?

我注意到有些时候用Java编写的代码我看过方法调用的字段: System.out.println(object.field); 按class级分类: System.out.println(Class.field); 在我的教科书中,我没有看到任何关于这两种情况的语义是什么的明显区别,我担心,至少对于一个菜鸟来说,这将是一个微妙的观点。 我的直觉是类调用将用于静态字段? 多谢你们。 如此多的con’foo’sion。

Java通过引用传递和编译器优化

在函数fermatFactorization() , a和b作为参考参数传递,因为我使用的是Long Class。 但是,在函数testFermatFactorization()当我将a和b传递给fermatFactorization() , a和b的值不会改变,因此testFermatFactorization()打印(0)(0) 。 我通过在fermatFactorization()打印出a和b来测试它,我得到了我期望的输出。 我在俯瞰什么? 编译器是否可以在fermatFactorization()更改a和b ,因为它们只被分配给?(可疑) public static void fermatFactorization(Long n, Long a, Long b) //PRE: n is the integer to be factored //POST: a and b will be the factors of n { Long v = 1L; Long x = ((Double)Math.ceil(Math.sqrt(n))).longValue(); //System.out.println(“x: ” + x); Long u = […]

引用变量到Java中另一个类中实例化/初始化的对象

我问的原因是因为我得到了NullPointerException。 我现在这很容易,但我很新编程,发现这有点令人困惑。 所以说我已经在类中初始化了一个对象,并希望从另一个类访问该对象。 比如现在我正在做一个小型国际象棋游戏,在我的模型游戏类中,我有一个Board实例,一个对象。 反过来,董事会有一系列Squares。 广场[][]。 游戏有棋盘,棋盘有Square [] []。 现在,如果我想通过Board类型的对象板(在游戏中)访问Square [] []。 我只是声明一个具有相同名称和类型的变量,或者我是否必须再次初始化它? 董事会或董事会董事会=新董事会(); 注意,我已经在类Game中初始化了板,所以如果我再次执行它,它们不会是两个完全不同的Board对象吗? 引用“板”的类: public class View extends JFrame { Board board; JFrame gameWindow = new JFrame(“Chess”); JPanel gamePanel = new JPanel(); JPanel[][] boardPanel = new JPanel[8][8]; JMenuBar gameMenu = new JMenuBar(); JButton newGame = new JButton(“New game”); JButton pauseGame = new JButton(“Pause”); […]