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打包后是放置在哪里?怎么去引用?

1. 自定义类不应该使用java做包名。
2. 既然类放在C盘根目录,则你必须把C:\ 放到classpath 里面;
3. 建议使用eclipse集成环境开发,现阶段Java非常成熟了,研究classpath和手工敲代码没有意思。

4. javac有一个选项,可以指定编译到哪个目录下,比如,你在c:\下面有个java目录,则当在C根目录编译的时候,只会放到根目录下,需要手动迁移到java目录下,才可以当做包来使用。
参考技术A 你选中该项目,然后点右键,选择最后一个,然后会出来一个新的窗口,在这个新的窗口右面部分会发现一个路径,此路径就是你项目的路径,那么你的max类就在项目下的src文件夹里(如果你建了包,就在这个和包名相同的文件夹下)。如果你建的两个类在同一包里,就不用导包了,反之就要导包(import 包名.类名)。追问

你说的该项目是什么?
我想知道如果我在C盘里建一个文件夹,然后怎么样把编译单元打包到这个文件夹里?

参考技术B java-home:C:\Program Files\Java\jdk1.6.0_02 名称问题
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怎么去找这个包,也就是说从哪里开始找这个类或这个包?

可以明确的告诉你,java.lang.*,这个包不是我们能往里面添加内容滴!

如果你定义的一个 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引入另一个类的问题的主要内容,如果未能解决你的问题,请参考以下文章

Spring源码解析之基础应用

关于java import的问题

Java学习10——package和import

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

java有import的类怎么编译

JSP导入java类的问题