那xxx.class.getName()為什麼能這樣寫?? 看了半天都快搞不清楚到底在程式中的example到底是class ? object ? 還是instance了
2009-11-15 22:12
399 查看
bunny wrote:
這就是為什麼 Java 需要去定義寫作規範的問題了
一般來說, Java 會建議你 Class 的名稱, 首字要大寫
而該 Class 的實體, 就是 instance
可以使用 首字小寫的名稱
例如說
class Example -> 這是 Class 宣告
Example example = new Example() -> 這是 instance 使用
但這些寫作規範都不是強制定義的
但並不表示別人不遵守的情況下, 你也是這樣
大致上來說
會用到 xxx.class 的方式, 是 Class 在使用, 就是說 Example.class 這樣的使用方式
而 xxx.getClass().getName(), 是 instance 在使用, 就是說 example.getClass()
而 getClass() 還有其他的用途, 就是可以知道目前這個 instance 實際上是屬於哪一個 Class 的 instance
因為介面與繼承的關係, 實際上宣告的介面不見得就是實際的 Class
寫幾個範例去看看到底差異性在哪裡
如同 hkdennis2k 所舉的例子
這就是為什麼 Java 需要去定義寫作規範的問題了
一般來說, Java 會建議你 Class 的名稱, 首字要大寫
而該 Class 的實體, 就是 instance
可以使用 首字小寫的名稱
例如說
class Example -> 這是 Class 宣告
Example example = new Example() -> 這是 instance 使用
但這些寫作規範都不是強制定義的
但並不表示別人不遵守的情況下, 你也是這樣
大致上來說
會用到 xxx.class 的方式, 是 Class 在使用, 就是說 Example.class 這樣的使用方式
而 xxx.getClass().getName(), 是 instance 在使用, 就是說 example.getClass()
而 getClass() 還有其他的用途, 就是可以知道目前這個 instance 實際上是屬於哪一個 Class 的 instance
因為介面與繼承的關係, 實際上宣告的介面不見得就是實際的 Class
寫幾個範例去看看到底差異性在哪裡
如同 hkdennis2k 所舉的例子
相关文章推荐
- 知也atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException v2 q31无涯 - I
- object_getClassName swift得到类名
- atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException v2 q31
- object_getClassName
- 实现ES5以下兼容,Object.create()、getElementsByClassName()
- Thread.currentThread().getContextClassLoader() 与 ObjectInstance.class.getClassLoader() 的区别
- Class.forName(xxx.xx.xx) ClassLoader.loadClass newInstance()区别
- object.className or object.getAttribute(“className/class”)?
- atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException
- atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException
- Python – Get Object’s Class Name | Ridge Solutions, Ireland
- object_getClassName swift得到类名
- 黑马程序员-反射-.class-Class.forName()-object.getClass()-Constructor-Field
- getElementsByClassName的用法 和 …
- document.getElementsByClassName的理想实现
- getClass(),class属性和getName()解析(整理)
- Class.forName(xxx.xx.xx) 解耦
- 解决getElemenetsByClassName兼容问题
- 类名.class, class.forName(), getClass()区别
- get tagname by classname