Java面向对象------内部类

内部类

  1. 什么是内部类: 在类内部定义的类,称为内部类

  2. 内部类的优点:

    1. 可以隐藏类的定义
    2. 可以共享外部的属性、方法
  3. 何时使用内部类:

    1. 如果需要隐藏类的定义,或者内部类共享外部
    2. 的属性或者方法时候,使用内部类。
  4. 如果不需要如上特性,就不要使用内部类!

  5. 提示:内部类一般只在类的内部使用,不在外部使用。

  6. 案例:

    	public class Demo01 {		
    		public static void main(String[] args) {
    			/*
    			 * 内部类
    			 */
    			Foo foo = new Foo();
    			foo.demo();
    		}
    	}
    
    	class Foo{ //外部类
    		int a = 5;
    		public void demo() {
    			//在Foo的内部使用内部类Goo创建对象
    			Goo goo = new Goo();
    			//在Foo的内部访问goo的方法
    			goo.test();
    		}
    		
    		class Goo{ //内部类
    			public void test() {
    				//内部类共享了外部类的属性
    				System.out.println(a); 
    			}
    		}
    	}
    

匿名内部类

  1. 匿名: 没有名字。
  2. 在类内部定义,没有名字的类。
  3. 其优点:
    1. 书写简洁!使用方便
    2. 具有内部类的全部功能
      1. 封装类的定义
      2. 与外部类共享数据和方法
    3. 由于语法简洁,使用很广泛
      1. 简洁实现接口时候使用
      2. 简洁继承抽象类时候使用
      3. 简洁继承类时候使用。
  4. 使用匿名内部类
    1. 必须有父类型,可以是类,抽象类或接口,只能有一个父类型
    2. 必须作为子类派生自父类。
    3. 子类没有类名,直接继承自父类,并且直接创建了对象。
    4. Java源文件编译后,每个类生成一个class文件,内部类和匿名类都会生成独立的class文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值