1、 内部类概述:
    把类定义在其他类的内部,这个类就被称为内部类。
    举例:在类A中定义了一个类B,类B就是内部类。

内部的访问特点:
    A:内部类可以直接访问外部类的成员,包括私有。
    B:外部类要访问内部类的成员,必须创建对象。

class Outer {
private int num = 10;class Inner {
public void show() {
System.out.println(num);
}
}public void method() {
//找不到符号
//show();

Inner i = new Inner();
i.show();
}}class InnerClassDemo {
public static void main(String[] args) {}
}

2、 内部类位置
    成员位置:在成员位置定义的类,被称为成员内部类。
    局部位置:在局部位置定义的类,被称为局部内部类。

    成员位置:在成员位置定义的类,被称为成员内部类。

 1 class Outer {
 2 private int num = 10;
 3
 4 //成员位置 类里方法外?
 5 /*
 6 class Inner {
 7
 8 }
 9 */
10 public void method() {
11 //局部位置 类里方法内?
12 class Inner {
13
14 }
15 }
16 }
17
18 class InnerClassDemo2 {
19 public static void main(String[] args) {
20
21 }
22 }

3、 成员内部类:
      如何直接访问内部类的成员。
      外部类名.内部类名 对象名 = 外部类对象.内部类对象;

 1 class Outer {
 2 private int num = 10;
 3
 4 class Inner {
 5 public void show() {
 6 System.out.println(num);
 7 }
 8 }
 9 }
10
11 class InnerClassDemo3 {
12 public static void main(String[] args) {
13 //需求:我要访问Inner类的show()方法
14 //Inner i = new Inner();
15 //i.show();
16
17 //格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
18 Outer.Inner oi = new Outer().new Inner();
19 oi.show();
20 }
21 }

面试题:
    要求请填空分别输出30,20,10。

 1 class Outer {
 2   public int num = 10;
 3 class Inner {
 4   public int num = 20;
 5   public void show() {
 6     int num = 30;
 7       System.out.println(XX);
 8       System.out.println(XX);
 9       System.out.println(XX);
10     }
11     }
12 }

 1 答案:
 2 class Outer {
 3   public int num = 10;
 4 class Inner {
 5   public int num = 20;
 6   public void show() {
 7   int num = 30;
 8       System.out.println(num);
 9       System.out.println(this.num);
10       //System.out.println(new Outer().num);
11       System.out.println(Outer.this.num); //限定了this.num的范围
12 }
13 }
14 }
15 class InnerClassTest {
16     public static void main(String[] args) {
17         Outer.Inner oi = new Outer().new Inner();
18            oi.show();
19     }
20 }

转载于:https://www.cnblogs.com/LZL-student/p/5863104.html

java9-6 内部类相关推荐

  1. CoreJava 笔记总结-第六章 接口、lambda表达式与内部类

    文章目录 第六章 接口.lambda表达式与内部类 ==接口== 接口的概念 接口的属性 接口与抽象类 静态和私有方法 默认方法 解决默认方法冲突 接口与回调 `Comparator`接口 对象克隆 ...

  2. 微服务 java9模块化_Java9系列第8篇-Module模块化编程

    我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...

  3. Java抽象类、接口和内部类

    抽象类 抽象方法和抽象类 抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法 规则如下: 抽象类必须使用abstract修饰符来修饰,抽象 ...

  4. 9.Java面向对象-方法参数类型及返回值类型、权限修饰符、内部类、匿名内部类

    9.Java面向对象-方法参数类型及返回值类型.权限修饰符.内部类.匿名内部类 一.类名作为形式参数 A:案例演示: 类名作为形式参数当你以后看到一个方法的形参要一个 类 类型,你就传递一个该类的对象 ...

  5. java 局部内部类的理解

    局部内部类: 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内 例如: //外部类public static class Man { ...

  6. java 内部类的理解

    内部类概念: 一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类 内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类 成员内部类 在一个类的成员方法中.或者说,定义在一 ...

  7. java内部类的权限符,static介绍、内部类、final、权限修饰符的作用范围,

    static介绍.内部类.final.权限修饰符的作用范围,static 关键字:(可用于修饰方法.变量) static 特点: static是静态修饰符,一般修饰成员变量.被static修饰的属于全 ...

  8. Java内部类手机专卖店_Java(20)内部类

    内部类 一个定义在另一个类里面的类称为内部类.内部类可以分为四种形式:成员内部类, 成员内部类 内部调用外部的属性和方法 成员内部类可以无条件访问外部类的所有成员属性和方法. 其他类(例子中的RunC ...

  9. 【Java入门提高篇】Day6 Java内部类——成员内部类

    内部类是什么,简单来说,就是定义在类内部的类(一本正经的说着废话). 一个正经的内部类是长这样的: public class Outer {class Inner{} } 这是为了演示而写的类,没有什 ...

  10. 【java】兴唐第十九节课(内部类)

    内部类:在类的内部定义的类叫内部类 1.有名内部类: (1)实例化时必须先实例化外部对象,格式: 外部类.内部类 对象名 = 外部类对象名.new.内部类名(): 代码实现: //student类 p ...

最新文章

  1. 那些重要却容易被忽视的用户体验(五)
  2. VC两个线程协作运行,轮流运行的
  3. Open vSwitch相关字段详解之L3:IPv4IPv6
  4. 数据分析利器--Pandas
  5. np.identity()
  6. 两种方法用于检查传入的数字是否为整数
  7. 带标题的图片轮询展示
  8. BAT经典面试题精简版(基础知识附答案)
  9. 关闭服务器系统关机事件,Windows Server 2012 系统提示意外关闭,事件ID:6008
  10. 日语学习-多邻国-关卡1-家居
  11. JavaScript习题(数组去重、有序数组乱序排列)
  12. cmake 生成mysql_采用cmake方式编译安装MySQL
  13. 【Kafka】kafka消费报错 no brokers found in zk
  14. 【Hbase】 Region Server 各种意外退出
  15. Script to Setup NTP/DNS/Powerpolicy for new server
  16. Numpy——numpy属性
  17. 用人话解释比特币原理
  18. tongweb java_home_中间件 东方通tongweb的使用
  19. 英特尔科技论坛 北京登场
  20. 计算机课评课意见,计算机中心:开展听课评课力推信息化教学

热门文章

  1. Linux命令中的rpm安装命令
  2. java 无法找到ant_无法找到与ANT(mac)关联的文件
  3. 华北水利水电大学计算机研究生调剂,2018年华北水利水电大学硕士研究生相关专业接受调剂公告...
  4. win10计算机记录,启用Windows 10计算器中的历史记录功能 | MOS86
  5. rpm卸载mysql和php_CentOS 6.5 卸载mysql和php
  6. js如何写html中的内容,javascript怎样获取某个标签的内容?
  7. 040_Tooltip文字提示
  8. mysql count or null_sql 语句中count()有条件的时候为什么要加上or null
  9. java css_JavaWeb中基本的CSS的使用
  10. python processpoolexector 释放内存_一起看看python 中日志异步发送到远程服务器