首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的导入在Java中失败了?

为什么我的导入在Java中失败了?
EN

Stack Overflow用户
提问于 2015-06-09 10:54:38
回答 5查看 1.8K关注 0票数 0

我在工作文件的同一个文件夹下有一个StdDraw.java,而picture()StdDraw.java中的一个方法。

但是,我未能添加此行来导入该方法,建议

包StdDraw不存在

代码语言:javascript
复制
import StdDraw.picture

我怎么能这么做?用包裹?设置路径?或者做任何修改?我来自蟒蛇,觉得有点奇怪。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-09 10:55:38

您不能导入非静态方法(只导入类和静态成员),也不必导入!

如果您的两个类都位于默认包中,那么您应该能够在没有任何导入语句的情况下执行以下操作:

代码语言:javascript
复制
myStdDrawObject.picture();  // if picture is non-static

代码语言:javascript
复制
StdDraw.picture();          // if picture is static

还要注意,您不能在默认包中的类上使用静态导入。

票数 4
EN

Stack Overflow用户

发布于 2015-06-09 10:59:18

如果您要导入同一个包中的类,那么我们不需要使用任何导入。

如果您希望将方法导入到类中,请使用如下所示。您不需要在导入时放置方法名称。

代码语言:javascript
复制
import packagename.StdDraw;

导入类后,类的所有非静态方法都可用于导入的类。

什么时候应该使用静态导入?只有当您不想声明常量的本地副本或滥用继承(常量接口反模式)时,才使用它。换句话说,当您需要经常访问一个或两个类的静态成员时,请使用它。如果您过度使用静态导入功能,它可能会使您的程序不可读和不可维护,从而使用您导入的所有静态成员污染它的命名空间。您的代码的读者(包括您,在您编写代码几个月后)将不知道静态成员来自哪个类。从类中导入所有静态成员对可读性特别有害;如果只需要一个或两个成员,则单独导入它们。如果使用得当,静态导入可以通过删除类重复的样板来提高程序的可读性。 名字。

阅读有关静态导入的更多信息:

https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

票数 1
EN

Stack Overflow用户

发布于 2015-06-09 11:08:41

即使不包括存在于同一文件夹中的类的导入,也可以创建该类的对象和调用方法以及静态方法。

您可以创建对象并调用非静态方法。

代码语言:javascript
复制
StdDraw drawObj = new StdDraw();
drawObj.picture(); // if picture is non-static method

对于静态方法,只能使用类名调用它。

代码语言:javascript
复制
StdDraw.picture(); // if picture is static method.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30730016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档