Java基础之内部类

Posted choupiyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础之内部类相关的知识,希望对你有一定的参考价值。

发文前,说下写这个的缘故。本来以为自己对java内部类了解,其实是我太过于不觉得、以为不重要!所以,今天在重新写下Demo,为自己记录一下、回顾一下。

开始~~~

重新理解什么是内部类以及写法、定义等;

代码一:

 1 package com.yk.nbn;
 2 /**
 3  * @author yk 
 4  * Date : 2020-06-22 
 5  * Nbn : 内部类 例子
 6  */
 7 public class Nbn {
 8     // 成员变量 name
 9     private String name;
10 
11     class Student1 {
12         private int age;
13         private String name;
14 
15         // 有参构造器
16         public Student1(int age, String name) {
17             super();
18             this.age = age;
19             this.name = name;
20         }
21     }
22 }
23 
24 class Student2 {
25     int age;
26     String name;
27 
28     // 构造器
29     public Student2(int age, String name) {
30         super();
31         this.age = age;
32         this.name = name;
33     }
34 }

代码一总结:

一、类名 Nbn中,Student1是内部类。Student2不是内部类。他们有区别。

二、类名 Nbn中,new对象的方式不一样。

  Student1 stu1 = new Nbn().new Student1(22, "刘备") ;
  Student2 stu2 = new Student2(33, "陆逊");

 

代码二 :

 1 package com.yk.nbn;
 2 
 3 import com.yk.nbn.Nbn.Student1;
 4 
 5 /** 6  * @author yk
 7  * 2020年6月22日
 8  * 目的 : 在同一个包下,创建对象student
 9  */
10 public class Test01 {
11 
12     public static void main(String[] args) {
13         Student1 stu1 = new Nbn().new Student1(22, "刘备") ;
14         Student2 stu2 = new Student2(33, "陆逊");
15         Student3 stu3 = new Student3(44, "马超");
17     }
19 }

代码二总结:

一、new对象Student的写法,要注意。

 

图:类的结构,在同一个包名下面

 

技术图片

技术图片View Code

 

 

总结

一、Student1是内部类,Student2不是。

二、虽然Student2不是,但写法不同。与类Student3相似。相似点:new对象写法相同。

三、new对象Student1时,需要先new对象 Nbn(类名),然后像调用方法那样 .new Student1() 的方式创建对象

 

用我自己的方式,每天记录一点点。。。

 

以上是关于Java基础之内部类的主要内容,如果未能解决你的问题,请参考以下文章

Java基础之内部类

java学习之内部类包与代码块

Java面向对象之内部类(访问格式)

Java之内部类包及代码块

深入理解Java之内部类

Java面向对象之内部类的详解