java內(nèi)部類的那些事兒_讓你一看就弄明白
在“基于java內(nèi)部類作用的深入分析”中你可以了解java內(nèi)部類的一些東西,不過內(nèi)部類中還有一些地方值得我們細心研究...
下面是我總結(jié)出來的java內(nèi)部類的一些東西,分享給大伙兒....
one:靜態(tài)內(nèi)部類可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員
怎樣理解這個呢?
看看下面的代碼:
/**
*
*/
package com.b510.test;
public class Test {
private int number = 1;
// 非靜態(tài)內(nèi)部類 可以有 非靜態(tài)成員
private class InnerTest {
// error 非靜態(tài)內(nèi)部類不能有靜態(tài)成員
// private static int inNumber = 2;
private int inNumber = 2;
public InnerTest() {
setNumber(2);
inNumber = inNumber + number;
System.out.println("innerTest---" + inNumber);
}
}
// Test的私有方法
private void setNumber(int number) {
this.number = number;
}
// 構(gòu)造函數(shù)
public Test() {
InnerTest in = new InnerTest();
System.out.println("test");
}
public static void main(String[] args) {
Test test = new Test();
// innerTest---4
// test
}
}
第一概念是不是很好理解.....
two:靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的靜態(tài)變量,而不可訪問外部類的非靜態(tài)變量
這里涉及到靜態(tài)內(nèi)部類和外部類的關(guān)系:
/**
*
*/
package com.b510.test;
public class Test {
private static int number = 1;
private String name = "test";
// 靜態(tài) 內(nèi)部類
private static class InnerTest {
// 靜態(tài) 內(nèi)部類 可以有非靜態(tài)成員
private int inNumber = 2;
public InnerTest() {
//靜態(tài)內(nèi)部類 可以訪問 外部類 的靜態(tài)成員
setNumber(2);
inNumber = inNumber + number;
System.out.println("innerTest---" + inNumber);
//error 靜態(tài)內(nèi)部類 不可以訪問 外部類 的非靜態(tài)成員
//System.out.println(name);
}
}
// Test的 靜態(tài) 私有方法
private static void setNumber(int n) {
number = n;
}
// 構(gòu)造函數(shù)
public Test() {
InnerTest in = new InnerTest();
System.out.println("test");
}
public static void main(String[] args) {
Test test = new Test();
// innerTest---4
// test
}
}
這個其實很好理解的,不知道你看來代碼15~23有沒理解....
three:非靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的非靜態(tài)變量
這個在第一個中就已經(jīng)提到了:在one代碼的17行
1 inNumber = inNumber + number;
number是外部類的非靜態(tài)成員,inNumber作為非靜態(tài)內(nèi)部類的成員可以訪問number
是不是很好理解....
總結(jié)一下:

相關(guān)文章
elasticsearch節(jié)點間通信的基礎(chǔ)transport啟動過程
這篇文章主要為大家介紹了elasticsearch節(jié)點間通信的基礎(chǔ)transport啟動過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04
最流行的java后臺框架spring quartz定時任務(wù)
近日項目開發(fā)中需要執(zhí)行一些定時任務(wù),比如需要在每天凌晨時候,分析一次前一天的日志信息,借此機會整理了一下定時任務(wù)的幾種實現(xiàn)方式,由于項目采用spring框架,所以我都將結(jié)合spring框架來介紹2015-12-12
Spring Boot整合Mybatis并完成CRUD操作的實現(xiàn)示例
這篇文章主要介紹了Spring Boot整合Mybatis并完成CRUD操作的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
Java中Object toString方法簡介_動力節(jié)點Java學(xué)院整理
Object類在Java里面是一個比較特殊的類,JAVA為了組織這個類組織得比較方便,它提供了一個最根上的類,相當(dāng)于所有的類都是從這個類繼承,這個類就叫Object。接下來通過本文給大家介紹Object toString方法,需要的的朋友參考下吧2017-05-05
springboot結(jié)合JWT實現(xiàn)單點登錄的示例
本文主要介紹了springboot結(jié)合JWT實現(xiàn)單點登錄的示例,包括生成Token、驗證Token及使用Redis存儲Token,具有一定的參考價值,感興趣的可以了解一下2025-01-01

