java中用import引入另一个类的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中用import引入另一个类的问题相关的知识,希望对你有一定的参考价值。
我的三个变量是这样设置的,
classpath:.;%JAVA_HOME%\lib
java-home:C:\Program Files\Java\jdk1.6.0_02
path:%JAVA_HOME%\bin;
当我在程序中想引入另一个类时出现了问题,代码如下
import java.util.Scanner;
import java.max;
public class Max2
public static void main(String arg[])
Scanner scanner=new Scanner(System.in);
max m=new max();
int a=scanner.nextInt();
int b=scanner.nextInt();
m.max1(a,b);
下面这个是要引用的类:
package java;
public class max
public static void max1(int a,int b)
if(a>b)
System.out.println(a);
可是当编译时,那个引用的类可以编译出class文件,而前一个类编译时则提示“文法访问max”。
于是我把两个文件中的package和import注释掉后再编译运行是可以的。我想知道第二个类中package java这条语句将max类打包到了哪了?说明一下,我在C盘根目录下建有一个名为java的文件夹。
我知道可以不用引入。我只是想如果package打包后是放置在哪里?怎么去引用?
2. 既然类放在C盘根目录,则你必须把C:\ 放到classpath 里面;
3. 建议使用eclipse集成环境开发,现阶段Java非常成熟了,研究classpath和手工敲代码没有意思。
4. javac有一个选项,可以指定编译到哪个目录下,比如,你在c:\下面有个java目录,则当在C根目录编译的时候,只会放到根目录下,需要手动迁移到java目录下,才可以当做包来使用。 参考技术A 你选中该项目,然后点右键,选择最后一个,然后会出来一个新的窗口,在这个新的窗口右面部分会发现一个路径,此路径就是你项目的路径,那么你的max类就在项目下的src文件夹里(如果你建了包,就在这个和包名相同的文件夹下)。如果你建的两个类在同一包里,就不用导包了,反之就要导包(import 包名.类名)。追问
你说的该项目是什么?
我想知道如果我在C盘里建一个文件夹,然后怎么样把编译单元打包到这个文件夹里?
JAVA_HOME:C:\Program Files\Java\jdk1.6.0_02 名称问题
max.max1(a,b);
静态方法直接引用不需要声明
同一目录的类不需要import 引用 参考技术C 你的package名字起得不规范,应该是类似域名的东西,比如 com.mycorp.util。你在使用 “import java”的时候,编译器去找JAVA自带的库去了。 参考技术D 创建类的对象不用引入类
关于java import的问题
在类中引入一个包,如果出现命名冲突,那JVM会引入哪个包?
比如说我在一个类里写了import java.lang.xx.java
但在这个项目下也有一个包叫import java.lang.xx.java,那当我实例一个xx对象时,是实例的哪个xx类?引入一个包,JVM怎么去找这个包,也就是说从哪里开始找这个类或这个包?
如果你定义的一个 JButton 类 ,然后导入 java.swing.JButton 然后程序
中用到 JButton 时,JVM 会按照你的 classpath 配置 来加载
如classpath=.;java_home/lib;
就会先查看当前目录是否有JButton
没有就到java.swing.JButton 下。 参考技术A 这个就要看你的classpath配置如何了,jvm是按照classpath设置的路径顺序调用下去。如classpath=.;java_home/lib;就会先查看当前目录是否有这个包,没有就到java_home/lib下。本回答被提问者采纳 参考技术B ....你可以用java里已经用了的包名吗? 我记得不可以吧...
而且包机制是用来干嘛的? 是便于管理项目,和防止命名冲突的.
如果真的出现你说的这种情况,那根本就是你自己的问题。
我是这样理解的,希望能帮到你.. 参考技术C 当你实例化java.lang.xx.java 的时候,你要给定它的全路径,程序中可以出现同名的类,但为了区分它们,只要是你使用它们的时候,都必须给出全路径。也因为此,这时候你也不用import了,不然真的会有问题了 参考技术D 其实你完全不用这么引入,比如你用到Date的时候,有好几个Date,有包 java.util.Date的Date;也有java.sql.Date的Date;你只需要这样子写就OK了:
java.util.Date date = new java.util.Date();
或者
java.sql.Date date = new java.sql.Date(0);
不知道你说的是不是我将的意思哦?
以上是关于java中用import引入另一个类的问题的主要内容,如果未能解决你的问题,请参考以下文章