java中,啥情况下必须导包才能运行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中,啥情况下必须导包才能运行?相关的知识,希望对你有一定的参考价值。

对于下面代码我有两个疑问:
1、主函数明明调用了ComparatorByName类来进行new对象,但是此类在另外一个java源文件里,为什么主函数没有导包就能正常使用运行了呢?
2、在eclips编程中,什么情况下把一个类单独写出来作为单独一个文件存在,要用的时候导包一下,什么情况下可以把类都放在同一个文件当中啊? 我觉得放在同一个文件中,看起来方便些,是不是这样啊?

备注:请大神有针对性的赐教啊,满意定加高分,多谢了!

应该是在同一个包里的类是不需要import语句导入的,你把GenericDemo2的import前面的+打开看看有没有import ComparatorByName。
你可以把多个类放到同一个文件中,但是如果放到同一个文件中的话只有一个类可以声明为public,而且这个类必须与文件名相同。通常状况下当某个类只供该类所在文件中的其他类调用时才会将多个类放到同一个文件中。追问

意思是同一个文件夹中所有的类中,只能有一个类被public修饰吗?
那么问题来了:定义类的时候,一般什么时候需要用public修饰,什么时候我们用default就行了?

追答

不是同一个文件夹,是同一个 (文件) 中最多只能有一个Public修饰的class。
具体是要用public修饰还是default还是protected还是private得看这个类的使用范围了,如果你定义的这个类只提供给同包下的类调用就定义为default,只提供给子类用就定义为protected,有可能提供给包外类使用那肯定就得定义成Public了。

参考技术A 不在同一个包下的文件,使用时候要导包,
包=package,一般情况下是为了区分同名资源,所以放在不同的包下。追问

我上面这个代码没有导包,也能运行没有问题啊,这是怎么回事啊?

追答

你的第三行的import行数旁边有一个加号 你点击加号看看有没有导入这个包
另外,敲代码的时候使用一些可以自动补全的快捷键,比如alt+.或者alt+/是会自动导入所需的包的

参考技术B JAVA中用到包中的类都要导包,你完全可以把所有的类都放在同一个包中,甚至你可以把所有的类都放在一个JAVA文档中,甚至你也可以把这些玩意全部放在main方法中,但是那就不符合JAVA中面向对象的思想了。。。类和包的区分是一样的 参考技术C

    因为你2个文件在同一个文件夹下,所以导入的包其实都是cn.itcast.p1.generic.demo

    至于把方法单独成类写出来,按照项目的惯例,都是把一些能够公用的的方法都是需要抽出来的,保证每个类里面的方法都只是该类自身独有的,无法共用

     

追问

ComparatorByName这个类不在cn.itcast.p1.generic.demo,而在cn.itcast.p3.comparator里啊,但是又没导包

参考技术D

    new 肯定导包了,点import左边那个+就可以看到了

    类就相对与我们平常使用文件夹一样,看你自己想怎样分类!一般不相关的方法一般都会分类,相关可以分也可以不分

IDEA的maven项目出现导包异常的情况解决

IDEA的maven项目出现导包异常的情况解决

常见的导包异常如下


上述的情况多发于重装系统或者重装了Maven环境,前提是保证这个项目是在之前的环境下能够运行的,有如下方法:
1、先确认驱动包是否正常

2、在maven中添加一段配置代码

在 /dependencies下添加

 <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

以上是关于java中,啥情况下必须导包才能运行?的主要内容,如果未能解决你的问题,请参考以下文章

客户端计算机上必须安装啥才能运行 QT 快速应用程序?

VC上写好的C文件,拿到UBUNTU下需要改啥才能运行

win7运行bat文件为啥要以管理员才可以 否则权限不够啥原因?

java,eclipse使用,导包,导入后可以调用jama里面matrix等类,编译运行没问题,但是看不了源码,怎么办?

cmd 拖拽

usb debugging是啥意思呢?怎么才能启用呢?