国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java內部類的那些事兒_讓你一看就弄明白

2019-11-26 16:09:31
字體:
來源:轉載
供稿:網友

在“基于java內部類作用的深入分析”中你可以了解java內部類的一些東西,不過內部類中還有一些地方值得我們細心研究...

下面是我總結出來的java內部類的一些東西,分享給大伙兒....
one:靜態內部類可以有靜態成員,而非靜態內部類則不能有靜態成員
怎樣理解這個呢?
看看下面的代碼:

復制代碼 代碼如下:

/**
  *
  */
 package com.b510.test;

 public class Test {
     private int number = 1;

     // 非靜態內部類 可以有 非靜態成員
     private class InnerTest {
         // error  非靜態內部類不能有靜態成員
         // 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;
     }

     // 構造函數
     public Test() {
         InnerTest in = new InnerTest();
         System.out.println("test");
     }

     public static void main(String[] args) {
         Test test = new Test();
         // innerTest---4
         // test
     }
 }

第一概念是不是很好理解.....
two:靜態內部類的非靜態成員可以訪問外部類的靜態變量,而不可訪問外部類的非靜態變量
這里涉及到靜態內部類和外部類的關系:
復制代碼 代碼如下:

/**
  *
  */
 package com.b510.test;

 public class Test {
     private static int number = 1;
     private String name = "test";

     // 靜態 內部類
     private static class InnerTest {
         // 靜態 內部類 可以有非靜態成員
         private int inNumber = 2;

         public InnerTest() {
             //靜態內部類 可以訪問 外部類 的靜態成員
             setNumber(2);
             inNumber = inNumber + number;
             System.out.println("innerTest---" + inNumber);
             //error 靜態內部類 不可以訪問 外部類  的非靜態成員
             //System.out.println(name);
         }
     }

     // Test的 靜態 私有方法
     private static void setNumber(int n) {
         number = n;
     }

     // 構造函數
     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:非靜態內部類的非靜態成員可以訪問外部類的非靜態變量
這個在第一個中就已經提到了:在one代碼的17行
復制代碼 代碼如下:

1 inNumber = inNumber + number;

number是外部類的非靜態成員,inNumber作為非靜態內部類的成員可以訪問number

是不是很好理解....

總結一下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汶上县| 东海县| 汝南县| 西充县| 汤阴县| 夏河县| 沅江市| 简阳市| 抚宁县| 安泽县| 丁青县| 山阴县| 体育| 呼玛县| 宿迁市| 芦山县| 故城县| 怀宁县| 泾源县| 德清县| 荃湾区| 房产| 石柱| 安岳县| 巫山县| 茂名市| 苍山县| 岢岚县| 宁阳县| 肃北| 东辽县| 绩溪县| 中卫市| 浦北县| 洪泽县| 安达市| 华蓥市| 蓝山县| 安岳县| 岳池县| 贵南县|