java中如何调用其他java文件?

Python08

java中如何调用其他java文件?,第1张

你所说的java文件是什么文件?如果是java源码文件是不能调用的,但如果是编译后的class文件可以通过类加载器进行加载,然后通过反射调用;但一般会通过实现特定的接口来简化调用过程。一个自定义的类加载器如下:

 class MyClassLoader extends ClassLoader {  

        //类加载器的名称  

        private String name  

        //类存放的路径  

        private String path = "E:\\bin"  

        MyClassLoader(String name) {  

            this.name = name  

        }  

        MyClassLoader(ClassLoader parent, String name) {  

            super(parent)  

            this.name = name  

        }  

        /** 

         * 重写findClass方法,加载特定目录下的类文件

         */  

        @Override  

        public Class<?> findClass(String name) {  

            byte[] data = loadClassData(name)  

            return this.defineClass(name, data, 0, data.length)  

        }  

        public byte[] loadClassData(String name) {  

            try {  

                name = name.replace(".", "//")  

                FileInputStream is = new FileInputStream(new File(path, name + ".class"))  

                ByteArrayOutputStream baos = new ByteArrayOutputStream()  

                int b = 0  

                while ((b = is.read()) != -1) {  

                    baos.write(b)  

                }  

                return baos.toByteArray()  

            } catch (Exception e) {  

                e.printStackTrace()  

            }  

            return null  

        }  

    }

举个例子吧,你要操作流,因此你引用了 java.io.*

java 的常规操作,你用了java.lang.* 只是这个是系统自动导入的。

这些java.io.* 和 java.lang.* 就是包,既然你一直在引用这些包,为什么b不知道如何调用其他的呢?道理都是一样的嘛:

譬如我有这样一个类:

package com.test//打包

public class User{

private String username

public String getUserName(){

return username

}

public void setUserName(String username){

this.username=username

}

}

然后我在这个类中调用:

import com.ff.*//导包

public class Test{

public static void main(String[] args){

User user=new User()

user.setUserName("卡卡西");

System.out.println(user.getUserName())

}

}