關於內部類(static與final)
Static 不用實例化就能加載進內存
而內部類需要外部類實例化后才能加載進內存。這就間接造成static需要實例化了。與static不需要實例化語義矛盾
1、假設外部類沒有實例化,
-
- 通過類名.調用,這時內部類需要實例化才能進內存,顯然外部類沒有實例化則static 未進內存,無法直接調用與static 語義,矛盾。
靜態的內部類就沒有這一矛盾,不需要實例化就能調用靜態變量。
2、假設外部類實力化,
-
- 而static 語義是不用通過類的實例化就能使用,所以又產生了矛盾
如果要使用static變量則需要用final修飾,final修飾后變量不在加載類時進內存,而是在加載了類之前進入內存。
最后:局部內部類所在位置方法內的變量不可改變,已被final修飾變成常量。默認有final(1.8之后)。而且只有之中操作方式。
加油 堅持