java中的内部类

原创 2012年03月29日 15:37:27

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------


内部类:

内部类包括,成员位置内部类,还有局部位置内部类;

内部类的访问规则:

(一)内部类可以直接访问外部类中的成员,包括私有成员;

(二)外部类要访问内部类,必须建立内部类对象才可以访问;

(三)其他类若想访问内部类,必须建立内部类对象才可以访问;


class Outer

{

private int a;

static class Inner//成员位置的内部类,可以被关键词修饰

{

}

public void function()

{

class Inner1//局部位置的内部类

{

}

}

}


1.其他类想访问Inner类的格式是:

Outer.Inner in = new Outer().new Inner();

之所以内部类可以直接访问外部类中得成员,因为内部类中具有外部类的一个引用。格式为:外部类名.this;


2.当内部类在成员位置上

时,就可以被成员修饰符所修饰,

比如:private将对内部类在外部类中进行封转;

   static将内部类具备了静态的特性;

当内部类被 static修饰后,只能直接访问外部类中得static成员,这样就出现了局限性;

若一个外部其他类想访问static内部类的静态成员,就可以这样调用了:

Outer.Inner.function();

注意:当内部类中定义了静态成员变量,该内部类也必须是静态的,当外部类中的静态方法访问内部类时,内部类也必须是static的。


内部类的应用与设计:

当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事物在使用外部事物的内容;


3.局部位置的内部类:即在成员方法内部定义的类

首先,这个类不可以被成员修饰符修饰

第二,可以直接访问外部类中得成员,因为它持有外部类中的引用,但是不可以访问它所在的局部中得变量。只能访问被final修饰的局部变量;


4.匿名内部类(这在监听器里面经常用)

第一,匿名内部类其实就是内部类的简写格式

第二,定义内部类的前提是,内部类必须是继承一个类或者实现一个接口

第三,匿名内部类的格式:

new 父类或接口名()

{覆写父类中的方法}

第四,其实匿名内部类就是一个匿名子类对象。而且这个对象有点儿胖,可以理解为带内容的对象

第五,匿名内部类中定义的方法最好不要超过三个,否则程序会显得很乱。





---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

Java内部类的this问题

一轮红日映朝阳 首页  标签  搜索  留言 Java内部类的this问题 2011-9-15 16:23:45 在一个风和日...
  • imxiangzi
  • imxiangzi
  • 2012年09月06日 09:49
  • 5645

【java】内部类例子

1.内部类是在类的内部定义的类 2.内部类分为成员内部类,局部内部类,匿名内部类。 3.内部类中可以直接调用其所在类的私有变量以及方法,但是外部类不可以调用内部类的成员。 4.内部类的实例一定要...
  • NeoAdrian
  • NeoAdrian
  • 2016年04月11日 14:10
  • 1223

Java 四种内部类

Java 内部类  分四种:成员内部类、局部内部类、静态内部类和匿名内部类。  1、成员内部类: 即作为外部类的一个成员存在,与外部类的属性、方法并列。 注意:成员内部类中不能定义静态变量,但可以访问...
  • superit401
  • superit401
  • 2016年07月30日 18:01
  • 4995

Java内部类的作用

内部类的作用:1、隐藏你不想让别人知道的操作,也即封装性。2、一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量!内部类的功能在于,每个内部类都能独立的继承一个接口的实现,所以无论外围类...
  • thinkGhoster
  • thinkGhoster
  • 2008年04月29日 13:53
  • 9326

java内部类的四大作用

放在一个类的内部的类我们就叫内部类。 二、 作用 1.内部类可以很好的实现隐藏  一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所...
  • mid120
  • mid120
  • 2016年12月14日 19:25
  • 3509

关于java成员内部类(普通内部类)在main方法中调用

main方法访问普通内部类的例子: //外部类test public class Test { //非静态的外部类成员变量 int num=1; /** * 普通内部类Person ...
  • JcMR_Li
  • JcMR_Li
  • 2017年02月08日 00:41
  • 1470

java中内部类的创建四种情况,三种方式,及内部数据访问权限

内部类和外部类的关系,及内部静态类的数据访问权限,声明方式。 第一种,在外部类内部声明使用内部类,内部类的类型为static和非 static类型,内部类数据类型为private,protected,...
  • u012142423
  • u012142423
  • 2014年08月05日 23:06
  • 2620

JAVA和C++内部类

JAVA和C++内部类的异同
  • qq78442761
  • qq78442761
  • 2016年11月21日 22:52
  • 478

java 四种内部类区别

Java中的内部类共分为四种:   静态内部类static inner class (also called nested class)   成员内部类member inner class   局部内...
  • tuolaji8
  • tuolaji8
  • 2015年10月13日 18:01
  • 1164

Java 中的访问修饰符和内部类

内部类: 问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。 问:那为什么要将一个类定义在另一个类...
  • qq516230226
  • qq516230226
  • 2017年05月14日 01:04
  • 314
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中的内部类
举报原因:
原因补充:

(最多只允许输入30个字)