1. 程式人生 > >java中的final與C++中的const的區別

java中的final與C++中的const的區別

(1)final在java中定義常量,可作用於基本型別或者類型別,若是作用於類型別,則此類型別不能作為父

類被繼承,也就是說它的下面不能有子類,這樣的類叫做原子類。 
  C++中的const定義常量,


(2)Java中的final如果是對於基本型別,那和C++   const是一樣的 
  但是如果是對物件而言,不同了 
  
(3)final表示這個控制代碼是不可改變的 
  final   Object   obj=(Object)new   String("a"); 
  obj=(Object)new   String("hello");是非法的 
  但是依然可以呼叫obj的方法。如((String)obj).length()是合法的 
  
  而C++如果一個物件被定義成const,就不能呼叫物件的方法。除非這個方法被定義成const.

package
 test;

/*final表示這個控制代碼是不可改變的 
final   Object   obj=(Object)new   String("a"); 
obj=(Object)new   String("hello");是非法的 
但是依然可以呼叫obj的方法。如((String)obj).length()是合法的   
*/publicclass Test {


    
publicstaticvoid main(String[] args) {
       
       
        
final Object obj=(Object)new String("a");
        
//obj=(Object)new String("hello");
//不能對終態區域性變數obj賦值        System.out.println(((String)obj).length());//但是依然可以呼叫obj的方法       
    }

}