Java 內(nèi)部類的定義與范例
一、前言
前面我們學(xué)習(xí)了一個(gè)小的項(xiàng)目,現(xiàn)在我們來學(xué)習(xí)新的知識(shí)點(diǎn),關(guān)于內(nèi)部類的描述,其實(shí)
顧名思義就是在類的內(nèi)部有一個(gè)類,簡稱套娃類(個(gè)人觀點(diǎn))
二、內(nèi)部類
一個(gè)類定義在另一個(gè)在一個(gè)類的內(nèi)部叫內(nèi)部類。
- 內(nèi)部類可以直接訪問外部類的私有和非私有成員,而外部類不能直接訪問內(nèi)部類
- (包括所有外部類成員)
- 外部類成員要訪問內(nèi)部類是,必須創(chuàng)建內(nèi)部類對(duì)象。
- 外部類通過創(chuàng)建對(duì)象也可以方法內(nèi)部類的私有和非私有成員
語法格式:
public class A{
修飾符 class B{}
}
static修飾內(nèi)部類
static不能直接修飾類,但是可以修飾內(nèi)部類,被static修飾的內(nèi)部類就變成了普通類
即只能通過創(chuàng)建外部類對(duì)象去訪問外部類,不能直接訪問外部類。
如:
內(nèi)部類未被static修飾時(shí):
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)建外部類對(duì)象調(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("這是一個(gè)內(nèi)部類的show");
System.out.println(num);//內(nèi)部類直接訪問外部類私有
//訪問外部類成員方法
}
}
public void show1(){
InnerClass i=new InnerClass();
i.show();//通過創(chuàng)建對(duì)象訪問內(nèi)部類成員方法
System.out.println(i.num2);//外部類創(chuàng)建對(duì)象訪問內(nèi)部類私有
System.out.println("這是一個(gè)外部類show");
}
}
結(jié)果:

到此這篇關(guān)于Java 內(nèi)部類的定義與范例的文章就介紹到這了,更多相關(guān)Java 內(nèi)部類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot Entity中枚舉類型詳細(xì)使用介紹
本文介紹SpringBoot如何在Entity(DAO)中使用枚舉類型。(本文使用MyBatis-Plus)。在實(shí)際開發(fā)中,經(jīng)常會(huì)遇到表示類型或者狀態(tài)的情況,比如:有三種支付方式:微信、支付寶、銀聯(lián)。本文介紹如何這種場景的方案對(duì)比,并用實(shí)例來介紹如何用枚舉這種最優(yōu)雅的來表示2022-10-10
Spring Boot靜態(tài)資源路徑的配置與修改詳解
最近在做SpringBoot項(xiàng)目的時(shí)候遇到了“白頁”問題,通過查資料對(duì)SpringBoot訪問靜態(tài)資源做了總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09
springboot項(xiàng)目實(shí)現(xiàn)多數(shù)據(jù)源配置使用dynamic-datasource-spring-boot-starter
這篇文章主要介紹了springboot項(xiàng)目實(shí)現(xiàn)多數(shù)據(jù)源配置使用dynamic-datasource-spring-boot-starter,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
SpringCloud實(shí)現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway詳細(xì)分析
這篇文章主要介紹了SpringCloud實(shí)現(xiàn)服務(wù)調(diào)用feign與熔斷hystrix和網(wǎng)關(guān)gateway,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04
Java BigDecimal詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
BigDecimal 由任意精度的整數(shù)非標(biāo)度值 和32 位的整數(shù)標(biāo)度 (scale) 組成。接下來通過本文給大家介紹Java BigDecimal詳解,需要的的朋友參考下吧2017-04-04

