繁体   English   中英

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

[英]How do I “require” a neighbour class in Java?

在Ruby中,我经常编写一些小类,并有一个主要的类来组织小家伙来完成工作。 我是通过写作来做到的

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

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

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

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

package com.boo;

import com.foo.Bar;

public class StackOverflow {

private Bar myBar;

}

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

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

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

  • 您可以在主类中创建私有静态嵌套类。
  • 你可以让它们'包访问'(默认 - 无访问修饰符)

但是,如果他们是其他地方的公共课程,你确实需要一个导入(或者在任何地方完全符合条件,但那太可怕了)。

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

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

类中包含一些数据并提供以有意义的方式操作该数据的方法。 数据通常是其他类的变量,您必须声明从哪里得到那些。 您可以通过指定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
    }
}

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

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

import package.ClasName;

在您引用该类的文件的顶部。


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

   }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM