Java 內(nèi)部類的定義與范例
一、前言
前面我們學(xué)習(xí)了一個小的項目,現(xiàn)在我們來學(xué)習(xí)新的知識點,關(guān)于內(nèi)部類的描述,其實
顧名思義就是在類的內(nèi)部有一個類,簡稱套娃類(個人觀點)
二、內(nèi)部類
一個類定義在另一個在一個類的內(nèi)部叫內(nèi)部類。
- 內(nèi)部類可以直接訪問外部類的私有和非私有成員,而外部類不能直接訪問內(nèi)部類
- (包括所有外部類成員)
- 外部類成員要訪問內(nèi)部類是,必須創(chuàng)建內(nèi)部類對象。
- 外部類通過創(chuàng)建對象也可以方法內(nèi)部類的私有和非私有成員
語法格式:
public class A{ 修飾符 class B{} }
static修飾內(nèi)部類
static不能直接修飾類,但是可以修飾內(nèi)部類,被static修飾的內(nèi)部類就變成了普通類
即只能通過創(chuàng)建外部類對象去訪問外部類,不能直接訪問外部類。
如:
內(nèi)部類未被static修飾時:
public class Outer{ private int num=10; public class Inner{ public void show(){ System.out.println(num);//直接使用 } } }
內(nèi)部類被static修飾后
public class Outer{ private int num=10; public class Inner{ Outer o=new outer(); public void show(){ System.out.println(o.num);//創(chuàng)建外部類對象調(diào)用使用 } } }
演示操作:
public class OuterClass { private int num=20; public static void main(String[] args) { OuterClass oo=new OuterClass(); oo.show1(); } public class InnerClass{ private int num2=10; public void show(){ System.out.println("這是一個內(nèi)部類的show"); System.out.println(num);//內(nèi)部類直接訪問外部類私有 //訪問外部類成員方法 } } public void show1(){ InnerClass i=new InnerClass(); i.show();//通過創(chuàng)建對象訪問內(nèi)部類成員方法 System.out.println(i.num2);//外部類創(chuàng)建對象訪問內(nèi)部類私有 System.out.println("這是一個外部類show"); } }
結(jié)果:
到此這篇關(guān)于Java 內(nèi)部類的定義與范例的文章就介紹到這了,更多相關(guān)Java 內(nèi)部類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot Entity中枚舉類型詳細(xì)使用介紹
本文介紹SpringBoot如何在Entity(DAO)中使用枚舉類型。(本文使用MyBatis-Plus)。在實際開發(fā)中,經(jīng)常會遇到表示類型或者狀態(tài)的情況,比如:有三種支付方式:微信、支付寶、銀聯(lián)。本文介紹如何這種場景的方案對比,并用實例來介紹如何用枚舉這種最優(yōu)雅的來表示2022-10-10Spring Boot靜態(tài)資源路徑的配置與修改詳解
最近在做SpringBoot項目的時候遇到了“白頁”問題,通過查資料對SpringBoot訪問靜態(tài)資源做了總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09springboot項目實現(xiàn)多數(shù)據(jù)源配置使用dynamic-datasource-spring-boot-starter
這篇文章主要介紹了springboot項目實現(xiàn)多數(shù)據(jù)源配置使用dynamic-datasource-spring-boot-starter,本文分步驟結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06SpringCloud實現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway詳細(xì)分析
這篇文章主要介紹了SpringCloud實現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04Java BigDecimal詳解_動力節(jié)點Java學(xué)院整理
BigDecimal 由任意精度的整數(shù)非標(biāo)度值 和32 位的整數(shù)標(biāo)度 (scale) 組成。接下來通過本文給大家介紹Java BigDecimal詳解,需要的的朋友參考下吧2017-04-04