java-2018.12.17-day9

**

1.什么是java中的内部类

**
内部类(inner class)就是定义在一个类里边的类,对应的,包含内部类的类被称为外部类。
内部类的作用:

	1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类;
	2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据;
	3. 内部类所实现的功能使用外部类同样可以实现,只是有时候使用内部类更方便;
内部类的分类:
	
	* 成员内部类
	* 静态内部类
	* 方法内部类
	* 匿名内部类
示例:
	
	//外部类inner
	public class inner{
		//内部类
		public class hello{
			//内部类方法
			public void show() {
				System.out.println("内部类的方法");
			}
		}
		public static void main(String[] args) {
			inner inn = new inner();
			hello h = inn.new hello();
			h.show();
		}

	}

**

2.java中的成员内部类

**
成员内部类(普通内部类):

	//外部类inner
	public class inner{
		//外部类的私有属性
		private int a = 10;
		//内部类
		public class hello{
			int b = 20;
			//内部类方法
			public void show() {
				System.out.println("访问外部类a"+a);
				System.out.println("访问内部类b"+b);
			}
		}
		public static void main(String[] args) {
			//创建外部类对象
			inner i = new inner();
			//创建内部类对象
			hello h = i.new hello();
			//调用内部类方法show
			h.show();
		}
	}

注意:

1. 外部类不能直接使用内部类的属性和方法,,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法
2. 如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量和方法,如果要访问外部类的成员变量,可以使用this关键字;(类名.this.成员变量名)

**

3.java中的静态内部类

**
静态内部类是static修饰的内部类,这种内部类的特点是:

1. 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方法访问;
2. 如果外部静态成员与内部类的成员名称相同,可以通过 “类名.静态成员” 来访问外部类的静态成员;如果外部类的静态成员与内部类的
   成员名不一样,就可以通过 成员名 直接调用外部类的静态成员
3. 创建静态内部类的对象时,不需要外部类的对象,可以直接创建  内部类 对象名 = new 内部类();

示例:

	//外部类
	public class inner{
		//外部类私有成员
		private int a = 10;
		//外部类静态成员
		static int b = 20;
		//内部类
		public static class hello{
			//内部类成员
			int b = 30;
			//内部类方法
			public void show() {
				System.out.println("外部静态成员"+inner.b);
				System.out.println("外部私有成员"+new inner().a);
				System.out.println("内部类成员:"+b);
			}
		}
		public static void main(String[] args) {
			//创建静态内部类对象
			hello h = new hello();
			//调用内部类方法
			h.show();
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值