当前位置: 技术问答>java相关
看java认证第一天遇到的问题
来源: 互联网 发布时间:2015-07-19
本文导语: java认证chapter1,third page中有这样一段话: NOTE:This is not actually a language requirement,but is an implementation requirement of many compilers,including the reference compilers from sun. It is therefore unwise to ignore this convention sin...
java认证chapter1,third page中有这样一段话:
NOTE:This is not actually a language requirement,but is an implementation
requirement of many compilers,including the reference compilers from sun.
It is therefore unwise to ignore this convention since doing so limits
the portablility of your source files(but not,of cource,your compiled files).
请问:ignore this convention中的convention是什么协定,是不是指至少要有一个
类是public类型的。但jdk也能编译没有public类的程序,又与它说的 is an
implementation requirement of mant compilers,including the reference compilers from sun矛盾。
或者是指java程序以.java结尾。那么这段话的意思是否就意味着,java程序不一定要以.java结尾?
我有点迷惑了,望高手指点.
NOTE:This is not actually a language requirement,but is an implementation
requirement of many compilers,including the reference compilers from sun.
It is therefore unwise to ignore this convention since doing so limits
the portablility of your source files(but not,of cource,your compiled files).
请问:ignore this convention中的convention是什么协定,是不是指至少要有一个
类是public类型的。但jdk也能编译没有public类的程序,又与它说的 is an
implementation requirement of mant compilers,including the reference compilers from sun矛盾。
或者是指java程序以.java结尾。那么这段话的意思是否就意味着,java程序不一定要以.java结尾?
我有点迷惑了,望高手指点.
|
一个java文件包含多个顶级类时(类相互之间没有has和is的关系,而是并列关系)。最多只有1个类可以声明成public,且文件名的不含扩展名的部分必须等于该public类的名称。
如果各个类都不是public的,则java文件名的不含扩展名的部分可以任意。
例如文件C.java含有A、B两个类,编译是可以的,生成A.class和B.class文件。
C.java内容:
class A{
}
class B{
}
上面的话大致上是“this”的含义。
不过因为没有程序的入口,java解释器没法直接执行它。只能通过别的类生成A、B的对象来执行。
SUN专门强调这约定只是很多编译器(包括SUN自己的)实现方式的需要,而非java语言的需要。(事实上差不多是一回事)
SUN公司很客气的建议你遵循这一约定,以免出现源代码在各个java平台上重新编译时可能出现的移植问题,即使你用得编译器没有这个限制。
SUN公司还指出编译好的class文件(如A.class,B.class)不会出现该限制导致的移植性问题。
如果各个类都不是public的,则java文件名的不含扩展名的部分可以任意。
例如文件C.java含有A、B两个类,编译是可以的,生成A.class和B.class文件。
C.java内容:
class A{
}
class B{
}
上面的话大致上是“this”的含义。
不过因为没有程序的入口,java解释器没法直接执行它。只能通过别的类生成A、B的对象来执行。
SUN专门强调这约定只是很多编译器(包括SUN自己的)实现方式的需要,而非java语言的需要。(事实上差不多是一回事)
SUN公司很客气的建议你遵循这一约定,以免出现源代码在各个java平台上重新编译时可能出现的移植问题,即使你用得编译器没有这个限制。
SUN公司还指出编译好的class文件(如A.class,B.class)不会出现该限制导致的移植性问题。
|
对不起,能不能把你的问题说的详细一点,This 指的是什么?要不,把这段话的前面的一段话也抄下来……不过,我想肯定不是你所说的“是不是指至少要有一个类是public类型的。但jdk也能编译没有public类的程序,又与它说的 is an implementation requirement of mant compilers,including the reference compilers from sun矛盾。
或者是指java程序以.java结尾。那么这段话的意思是否就意味着,java程序不一
定要以.java结尾?”
所以,你把前面的给抄下来比较好!!
或者是指java程序以.java结尾。那么这段话的意思是否就意味着,java程序不一
定要以.java结尾?”
所以,你把前面的给抄下来比较好!!
|
我想这个this的意思是类名必须与文件名相符实际上不是和语言相关,即不是语言要求的,是许多编译器在执行的时候要求的,包括sun的编译器