视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Java内部类-异常处理之笔记
2025-09-27 23:43:06 责编:小OO
文档
内部类:

内部类可以访问外部类中的所有成员方法和成员变量。原因,由外部类.this来引用外部类的变量和方法。

内部类变量:index/this.index/Middle.this.index/Outer.this.index。

访问内部类:外部类提供一个方法,返回它的内部类。

Outer outer = new Outer();

Outer.Inner inner = outer.getInnter();

Outer.Inner inner = outer.new Innter(); 建立内部类与外部类的关系。

能否直接访问内部类,看它是否可见,不可见(在外部类的外边)就通过外部类引用,如果可见(在外部类的内部,和内部类在同一层),就直接引用,例如在外部类里引用。

静态中不能有非静态,包括main。因为static是在类被加载的时候就存在,而非static是实例化一个对象时才存在的。

当把类写到一个方法的内部时,那么这个类的范围只能在这个方法内部去使用。

内部类可以放到:函数中,条件语句中,语句块中。不管欠套有多深,都可以随意访问外部类的成员。

当:把内部类定义在了一个方法当中,如果要在内部类中访问该方法的参数,或者访问该方法中的变量时,该变量必须为final的。为什么呢?

内部类:不只是public,default了,可把它的修饰比照方法的访问范围。

内部类也可以定义为抽象类。

静态的内部类只能访问外部类的静态成员变量和成员方法。

静态内部类:能够有静态的声明。

非静态内部类:不能够有静态的声明。为什么?解释:非静态的内部类说明需要实例化后才能用,而内部类中的变量却是静态的,即加载类的时候加载,之间矛盾。

只有顶层类或static的内部类中才可以声明static成员。

如果外部类要访问内部类的成员,要先实例化一个内部类的对象,通过对象去访问内部类的成员。

---------------------------------------------------------------------------

extends Car.PlaneWheel

PlaneWheel(Car car)

{

car.super();

}

Car car = new Car();

PlaneWheel pw = new PlaneWheel(car);

要创建一个内部类的对象,先要创建一个外部类的对象,并且建立之间的关系。

内部类应用之实现接口:

用内部类去实现一个接口,再在外部类中创建一个方法返回这个接口,供其它类使用。

匿名的内部类应用:返回抽象类的时候使用内部类:匿名的内部类。

return Animal()

{

public void eat() {}

//实现方法。

};

没有名字。

----------------------------------------------------------------------------

什么时候使用内部类以及原因

内部类可以随意访问其外部类。

内部类可以用于创建适配器类,适配器类是用于实现接口的类。帮助更好理解代码。内部类在线程中的应用。

内部类更多用法:

内部类实现接口,并将内部类定义为private,这样可以隐藏实现细节。让用户只能通过接口去访问。

内部类应用:当一个类继承了一个类并且实现了一个接口,但是实现的接口中的方法和继承的类中的方法同名,为了避免,使用内部类去实现这个接口。

接口与内部类的使用。

----------------------------------------------------------------------------

通过内部类实现多继承:

class A

{

void fn1()

{

}

}

abstract class B

{

abstract void fn2();

}

class C extends A

{

B getB()

{

return new B()

{

public void fn2()

{

}

};

}

}

-----------------------------------------------------------------------------

异常处理:

Throwable--->Error类,Exception类可处理。下载本文

显示全文
专题