为什么Java“String”类型用大写字母写,而“int”不是?
我好奇。 为什么我必须用大写字母键入String myStr
而我用小写字母键入int aNumba
?
因为int
是基本类型,而不是类,因此它不能直接与String
相比。 相应的类类型是Integer
,根据类命名约定拼写。
类似的原始和类类型对
-
byte
与Byte
-
short
与Short
-
long
与Long
-
float
vsFloat
-
double
与Double
-
boolean
与Boolean
-
char
vsCharacter
String本身是一个派生自Object的类,而int是一个原语。
您的困惑可能来自于String在许多方面表现得像基元这样的事实,因为它具有可应用于它的基本操作,如(+)连接,并且不需要导入。
连接是因为即使它是对象类型,也应用这个添加的操作是足够的基础。
它不需要导入的原因是,默认情况下导入java.lang
包,其中String是成员。
我也加入了这个聚会: 这都是惯例 。
谢天谢地:
class billybobstype { ... }
(这都是惯例。没有理由为什么“String” 不能是“字符串”;但是,“int”是一个关键字而不仅仅是一个类名 – 其中CamelCase是惯例但不是要求 -所以它需要编译器修改:-)
编辑:顺便说一下,C#有’string’关键字(语言语法的一部分),它是’System.String’类的别名 。 (C#也以这种方式实现’int’,’long’等等作为别名,但它可以这样做,因为它有一个可扩展的“值类型”系统,而JVM只考虑/允许 – 一个小的谨慎的“值类型“。)
int
是原始数据类型, String
派生自Object
并且是一个类。
因为String
是一个类(即一个对象)而int
不是
有关更多信息,请参阅Java命名约定 。
因为int是基本类型,而String是对象类型
按照惯例,java对象具有大写的第一个字母名称(例如String),而基元具有小写名称(例如int,float,double等)。
byte
或integer
等基本低级类型以小写forms命名,高级对象/类以大写forms命名(CamelCase)。 这就是Java的设计方式。
这只是原始Java设计师强加给我们的东西:-)
我简直不敢相信这个问题的一些答案!! 答案与惯例无关,如果你认为这是你需要做更多学习的答案。 int是一种原始类型,而String是一个类(参见Peter的答案)。
原始与复杂的一个重要警告是自动装箱:
http://download.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html
这是基元的Java教程:
http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
字符串类也是一个特例:
http://www.javabeginner.com/learn-java/java-string-class
读人!