Java入门—第一个HelloWorld

1.代码编写

public class Hello {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  System.out.println("HelloWorld");
 }

}

深入细节: 类名和文件名的关系

一个 .java 文件,可以有多个类,但是文件名只能有一个,用哪一个类名来充当文件名呢?其实文件名是无所谓的,
因为将来用javac进行编译的时候,最终会生成多个 .class 文件,每一个类对应个 .class 文件。运行时只要运行
对应的 .class文件就可以了,这时 .java 文件就显得没什么用了( 运行时不需要 )。

此段代码文件名为Hello2,java,编译通过

class Hello3 {
	public static void main(String[] args) {
		System.out.println("Hello3");
	}
}

class Hello4 {
	public static void main(String[] args) {
		System.out.println("Hello4");
	}
}

但是当你的类被public修饰时,此时文件名必须和该类保持一致(例如 public class A{} 只能放在
A.java文件中,否则在用javac编译时会提示错误:类A是公共的,应在名为A.java的文件中声明)。
也就是说在同一个.java文件中,不应该出现2个或2个以上的public class。如果有一个public class
类,就应该让文件名和此类名相同;那如果没有呢,即所有的class都没有修饰符,那么可以给该文
件随便起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java的。

此段代码文件名为测试,java,编译通过

public class 测试 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("类名是中文也可以");
	}

}


问题:SUN为什么规定public class的名字与文件名一致?(目前找到的最佳解答)

JAVA把一个.java文件叫做一个编译单元(Compiling Unit), 一个编译单元中可以有N个类, 但最多只能有一个public类. 而且, 如果有一个public类的话, 那么这个类的类名必须与.java文件的名称一致.

对于这个规定, 我个人认为是与JAVA的隐藏机制和开源策略有关的.

因为, 根据JAVA的隐藏机制, 只有public的类才可以被其他人直接使用, 也就是说, 对于其他人来说, 他所熟悉的只有这个public类的类名, 这样, 如果源文件的名字和它保持一致, 就可以非常方便地让别人找到这个源文件.

 

总结

1.Java保存的文件名必须与类名一致;
2.如果文件中只有一个类,文件名必须与类名一致;
3.一个Java文件中只能有一个public类;
4.如果文件中不止一个类,文件名必须与public类名一致;
5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。


2.编译阶段

编译器创建class字节码文件


3.执行阶段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值