关于java用import引入自定义的类的问题 光引入包名.*不行吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java用import引入自定义的类的问题 光引入包名.*不行吗?相关的知识,希望对你有一定的参考价值。

package myPackage;
public class Protected
protected void p()
System.out.println("protected method");


package myPackage;
public class Package
public Package()
Protected p = new Protected();
p.p();

public static void p()
System.out.println("Package public method");


import myPackage.*;
//import myPackage.Package; //没有这个就不能用new Package?
public class ProtectedPackage
public static void main(String[]args)
Protected newp = new Protected();
Package pp = new Package(); //??????????????????????


问号那里报错。为什么Protected就可以创建对象?Package就不行呢 必须把那句注释了的import加上?
还有为什么就不用import myPackage.Protected 而必须import myPackage.Package; ?

Package类在java.lang中也有定义,而且这个是默认引入的,所以你要引用你自己的Package类,必须使用import myPackage.Package 参考技术A 那是因为你的类名Package和系统的一个类名重复了,所以你使用这个类得时候要使用完整路径。
你重复的类名是java.lang.Package,而我们默认就是导入了java.lang.*这个包的,也就是说你导入的包中包含了两个同名的类,你必须用完整的路径来说明你用的是哪一个类,你如果把Package类改名为MyPackage就不用了。

怎么样使用java包里面提供的类?自己定义的类名可以和包中的类名一样吗?怎么知道使用了java包里面的类?

这要了解关键字的概念 。 要使用包里面的类就要引入这个包, 自己定义的类名可以和包里的类名一样但是不建议这么使用,因为为了规范化。人家包里面的类定义的很规范,所以无需自己定义。关于如何知道包里面类的情况,建议看一下文档。做java开发是离不开文档的。文档里面很清楚的告诉了都有什么功能函数。 参考技术A 使用import导入,自己的类可以与包中的类名可以像同,使用类的时候是要加载, 参考技术B import 导入包即可,在build path里把要使用的包导入一下。不同包里类名是可以重复的。

以上是关于关于java用import引入自定义的类的问题 光引入包名.*不行吗?的主要内容,如果未能解决你的问题,请参考以下文章

在Java中如何用import引入自己建的类

JAVA中,如何import自己写的类文件?

Java学习10——package和import

java中怎么import其他路径下的类

java有import的类怎么编译

怎么样使用java包里面提供的类?自己定义的类名可以和包中的类名一样吗?怎么知道使用了java包里面的类?