java类名变量_java类名操作变量方法
JAVA中包括成員變量的定義和方法的定義,而成員變量的定義又包括類變量和實例變量的定義:其中用static 修飾的是類變量,而其他是實例變量。
實例變量和類變量的區別:一個類通過使用new 運算符可以創建多個不同的對象,這些對象被分配不同的內存空間,,即不同對象的實例變量被分配的內存空間不同;但是所有對象的類變量都被分配相同的一處內存,改變其中一個對象的這個類變量會影響其他對象的這個類變量。即對象共享變量。當java程序執行時,類的字節碼文件被加載到內存,如果該類沒有創建對象,類中的實例變量不會被分配內存。但是,類中的類變量在該類被加載到內存時,就分配了相應的內存空間。如果該類創建對象,那么不同對象的實例變量互不相同,即分配的內存空間不同。而類變量不再重新分配內存,所有對象共享類變量,即所有對象的類變量是相同的一處內存空間,類變量的內存空間直到程序退出才釋放所占用的內存。類變量是與類相關聯的數據變量,即類變量是和該類創建的所有對象相關聯的變量,改變其中一個對象的這個類變量就同時改變了其他對象的這個類變量。因此,類變量不僅可以通過某個對象訪問,也可以直接通過類名訪問。實例變量僅僅是和相應的對象關聯的變量,即不同對象的實例變量互不相同,分配不同的內存空間,改變其中一個對象的實例變量不會影響其他對象的這個實例變量。實例變量可以通過對象訪問,不能通過類名訪問。
實例方法和類方法的區別:java中除構造方法外,其他的方法可以分為實例方法或類方法:用static 修飾的方法是類方法或稱為靜態方法。剩下的稱作實例方法。一個類中的方法可以互相調用:實例方法可以調用該類中的實例方法或類方法;類方法只能調用該類中的類方法,不能調用實例方法。當類中的字節碼文件被加載到內存時,類的實例方法不會被分配入口地址,當該類創建對象后,類中的實例方法才分配入口地址,從而實例方法可以被類創建的任何對象調用執行。需要注意的是,當創建第一個對象時,類中的實例方法就分配了入口地址,當再創建對象時,不再分配入口地址,即方法的入口地址被所有的對象共享,當所有的對象都不存在時,方法的入口地址才被取消。
對于類中的類方法,在該類被加載到內存時,就分配了相應的入口地址,從而類方法不僅可以被類創建的任何對象調用執行,也可以直接通過類名調用。類方法的入口地址直到程序退出才被取消。類方法在類的字節碼加載到內存時就分配了入口地址,因此,java語言允許通過類名直接調用類方法,而實例方法不能通過類名調用。在java語言中類方法不能操作實例變量,也不能調用實例方法,這是因為在類創建對象之前,實例成員變量還沒有被分配內容空間,而實例方法還沒有被分配入口地址。
總結
以上是生活随笔為你收集整理的java类名变量_java类名操作变量方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 芝麻信用怎么提到800分
- 下一篇: java 减法_java 加减法2