java 同一文件多个类

1. 同一文件多个类:

class myname
{
	public static void main(String[] args)  
	{
    	myage.showAge();
	}
}
class myage
{
	// 静态函数
	public static void showAge()
	{
		System.out.println("age");
	}
}:. 在同一个文件中,编译后会出现myname.class、myage.class.. 拆分成myname.java、myage.java文件,里面放入各自的类.编译后还是会出现上面两个文件.. 上面2种情况是,因为myname.class依赖于myage.class.. 但是myname.java如果不调用myage函数,编译只会产生一个文件:myname.class.

2. 拆分一个文件夹:

(1). test/my/myage.java:

// package my;              // 包,没有就报错
class myage                 // 其它包引用,这里不加public,就会报错.
{
	public static void showAge()
	{
		System.out.println("age");
	}
}

(2). test/myname.java:

// import my.myname         // 也可以写成import my.*引入这个包下所有的类
class myname
{
	public static void main(String[] args)  
	{
    	myage.showAge();   // 不加import,可以写成my.myage.showAge();
	}
}:. 编译会报错,因为不在同级目录下.. Java中的包(package):
   a. 解决命名冲突
   b. 项目组织结构可读性更好,是为了方便人阅读.. 引入包后,编译完后会出现test/myname.class、test/my/myage.class.
   a. 混合编译在一起不好看,想要一个专门的文件来存放(一般IDE会自动做).
      javac -d target me.java       // -d可以把编译出来的class文件放到指定目录
   b. 为了目录结构的美观,一般在src文件夹中放入源码.
      src当前目录:javac -d ../target myname.java
	  不在src当前目录:javac -d target -sourcepath src src\myname.java

④. 运行程序:
   a. 在d:/java/target目录下执行java myname   => 可以正常运行
   b. 在d:/java目录下执行java target/myname   => 提示找不到或无法加载的主类target.myname.

3. classpath作用:

①. 设置path环境变量,在任何地方输入java或javac.

②. 显示classpath环境变量:
   echo %CLASSPATH%
   echo $CLASSPATH
   .:/usr/local/jdk1.8.121/jdk1.8.0_121/lib/dt.jar      // 这里有一个.

③. 上个例子,在java执行过程中,是通过CLASSPATH来寻找当前myname.class,不会随便在什么目录去寻找.因为有这个点(.),在当前目录是可以执行的,但是在其它目录是执行不了的.

③. 跨文件夹执行方案:
   a. 把要执行的目录加入classpath环境变量   =>  不现实
   b. 在执行的时候加入-classpath:
      java -classpath 绝对或相对路径  myname(要执行的class文件)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值