ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

内部类.Java学习

2022-08-07 15:02:40  阅读:1162  来源: 互联网

标签:Java 内部 void 成员 public 学习 访问 class


今天复习一下Java里面一个比较重要的概念  内部类

 局部内部类

  1. 内部类是定义在一个类的内部。通常是在方法中。
  2. 本质还是一个类,可以访问外部类的所有成员,包含私有的。
  3. 不能使用访问修饰符。但是可以使用final修饰符。
  4. 作用域尽在定义它的方法或者代码块中。
  5. 外部其他类不能访问局部内部类(因为局部内部类的地位就是衣个局部变量)。
  6. 如果外部类和局部类的成员变量重名。遵守就近原则。如果要访问外部类变量。 可以通过 类型.this.成员 去访问。

匿名内部类

  1. 该类没有名字。
  2. 是一个对象。
  3. 定义外部类的局部位置,比如方法中,并且没有类名。(系统底层会分配一个类型)。
  4.  匿名内部类使用一次就没了(生成的对象是可以多次使用)。
  5. 匿名内部类是为了简化开发。

 

 1 package anonymous;
 2 
 3 public class InnerClass {
 4     public static void main(String[] args) {
 5         new Test().run();
 6     }
 7 }
 8 
 9 
10 class Test {
11 
12     public void run() {
13         Animal dog = new Animal() {
14             @Override
15             public void Say() {
16                 System.out.println("小狗汪汪");
17                 System.out.println(this.getClass());
18             }
19         };
20         dog.Say();
21     }
22 }
23 
24 
25 interface Animal {
26     void Say();
27 }

 


----------
输出结果。

小狗汪汪
class anonymous.Test$1

成员内部类

  1.  定义为的位置是成员位置。
  2. 外部其他类可以调用成员内部类。

 

 1 package anonymous;
 2 
 3 public class MemberInnerClass {
 4     public static void main(String[] args) {
 5         Test01 test01 = new Test01();
 6         Test01.InnerClass innerClass = test01.new InnerClass();
 7         innerClass.Run();
 8     }
 9 }
10 
11 class Test01 {
12 
13     class InnerClass {
14         public void Run() {
15             System.out.println("这是成员内部类");
16         }
17     }
18 }

 

静态内部类

  1. 静态内部类还是定义在成员位置,但是他有static修饰。
  2. 可以直接访问外部类的所有静态成员,包括私有的。但是不能直接访问非静态的成员。

 

标签:Java,内部,void,成员,public,学习,访问,class
来源: https://www.cnblogs.com/ITGrass/p/16559041.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有