inner classes :
1、把class的定义置于某个类体中
作用:1、隐藏你不想让别人知道的操作,也即封装性。(设置为private别人无法访问)
2、一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量。
非静态:
pubic class outerClass{
private int ma;
private class innerClass implements C{
可以访问ma
}
一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量,
Java编译器在创建内部类对象时,隐式的把其外部类对象的引用也传了进去并一直保存着。
在外部类作用范围之外,要创建内部类对象必须先创建其外部类对象。
静态:
和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。
这就意味着静态内部类无法访问外部类的成员。
在任何非静态内部类中,都不能有静态数据。
注:通过自己的测试发现,内嵌类声明为private 也可以被 外部类和外部类中其他的内部类访问,这个让我很困惑??
只能这样理解:类 和 他的所有内部类 都拷贝了成员的引用,换句话来说,在类的内部(包括内部和外部 ,内部和内部)是
没有隐私这个概念的,它们所有的成员和方法被互相暴露出来。
2、把class的定义置于某个函数体(代码块-执行体)中
可以匿名(看起来简练点)
作用:可以实现回调函数的功能。
1、把class的定义置于某个类体中
作用:1、隐藏你不想让别人知道的操作,也即封装性。(设置为private别人无法访问)
2、一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量。
非静态:
pubic class outerClass{
private int ma;
private class innerClass implements C{
可以访问ma
}
一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量,
Java编译器在创建内部类对象时,隐式的把其外部类对象的引用也传了进去并一直保存着。
在外部类作用范围之外,要创建内部类对象必须先创建其外部类对象。
静态:
和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。
这就意味着静态内部类无法访问外部类的成员。
在任何非静态内部类中,都不能有静态数据。
注:通过自己的测试发现,内嵌类声明为private 也可以被 外部类和外部类中其他的内部类访问,这个让我很困惑??
只能这样理解:类 和 他的所有内部类 都拷贝了成员的引用,换句话来说,在类的内部(包括内部和外部 ,内部和内部)是
没有隐私这个概念的,它们所有的成员和方法被互相暴露出来。
2、把class的定义置于某个函数体(代码块-执行体)中
可以匿名(看起来简练点)
作用:可以实现回调函数的功能。