Java 內(nèi)部類的定義與范例
一、前言
前面我們學習了一個小的項目,現(xiàn)在我們來學習新的知識點,關(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)文章
Java使用Jedis操作Redis服務(wù)器的實例代碼
本篇文章主要介紹了Java使用Jedis操作Redis服務(wù)器的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
Netty分布式NioSocketChannel注冊到selector方法解析
這篇文章主要為大家介紹了Netty分布式源碼分析NioSocketChannel注冊到selector方法的解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03
Spring Boot高級教程之Spring Boot連接MySql數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了Spring Boot高級教程之Spring Boot連接MySql數(shù)據(jù)庫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
解決java.util.NoSuchElementException異常的問題
這篇文章主要介紹了解決java.util.NoSuchElementException異常的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

