如何在Java中“需要”邻居类?

时间:2008-10-21 05:47:06

标签: java

在Ruby中,我经常写一些小班,并有一个主要课程组织小家伙完成工作。我这样写是

require "converter.rb"
require "screenFixer.rb"
.
.
.

在主类的顶部。我如何用Java做到这一点?是“进口吗?”

另外,有人可以为这个问题提出更好的标题吗?

6 个答案:

答案 0 :(得分:6)

如果您的意思是要编写一些将使用其他类的代码。是的,您需要使用import语句导入这些类。

即。

package com.boo;

import com.foo.Bar;

public class StackOverflow {

private Bar myBar;

}

答案 1 :(得分:1)

您不会在java中导入自己的* .java文件。相反,你喜欢这样。

javac file1.java file2.java file3.java
java file1

答案 2 :(得分:1)

如果这些其他课程仅由您的“主要”课程使用,则有几个选项需要考虑,不需要任何导入:

  • 您可以在主类中创建私有静态嵌套类。
  • 您可以将它们设为'package-access'(默认 - 无访问修饰符)

但是,如果他们是其他地方的公共课程,你确实需要进口(或者在任何地方完全符合要求,但这太可怕了。)

答案 3 :(得分:1)

你应该真正阅读一些关于面向对象的编程。

你没有组织大家伙的小家伙做完工作。

保留一些数据的类,并提供以有意义的方式操作该数据的方法。数据通常是其他类的变量,您必须声明从哪里得到那些。您可以通过指定import语句来执行此声明。

顺便说一句,您应该显式创建一个类实例来使用它,即调用类构造函数方法

package com.foo;
import com.foo.Bar;

public class StackOverflow {

private Bar myBar;
    public StackOverflow() { //this is a constructor of StackOverflow class
        myBar = new Bar(); //i'm invoking constructor of Bar class
    }
}

答案 4 :(得分:1)

如果您编写的所有类都在同一个包中,则无需执行任何特殊操作即可。如果A类想要B类服务,那么在A类中你可以实例化B的对象并调用你想要的B方法。

如果这些类在不同的包中,或者如果您使用的是第三方的类,那么您将需要一个import语句

import package.ClasName;

位于您引用该类的文件的顶部。

答案 5 :(得分:0)


public class Example {
   public Example(IConverter converter, IScreenFixer screenFixer) {

   }
}

http://en.wikipedia.org/wiki/Facade_pattern