黑马程序员技术交流社区
标题:
问一个关于内部类的问题
[打印本页]
作者:
絮缘小默
时间:
2014-2-22 09:35
标题:
问一个关于内部类的问题
如何定义内部类的对象,最好有例子谢谢了
作者:
itpower
时间:
2014-2-22 10:56
class A
{
B bb = new B();
bb.show();
class B
{
public void show()
{
System.out.println("BBBBB");
}
}
}
复制代码
B是A的内部类,在A类中构建B的对象,并调用B的方法!
作者:
心是你仰望的城
时间:
2014-2-22 11:10
一个类被嵌套定义在另一类中,那么这个类被称为内部类,内部类作为外部类的一个成员,并且依附于外部类而存在的,可为静态,可用protected和private修饰
class Outclass {
int a;
void print(){
System.out.println("a="+a); }
class Inclass{ //定义了一个内部类
int b; //内部类的变量
void print1(){ //内部类的方法
System.out.println("b="+b);
}
} }
作者:
skyname
时间:
2014-2-22 13:15
这是前阵子总结的一点
1、内部类是一个单独的类,在内部类当中可以访问外部类当中的私有变量。
2、内部类访问属性的顺序是,先搜索内部类属性域,再搜索外部类属性域。
3、可以在方法中定义内部类,如果要访问方法中定义的本地变量或者方法的参数,则变量或方法的参数必须定义为final。不过,此内部类可以直接访问外部类的方法。
4、内部类可以声明为private或protected;还可以声明为abstract或final。
5、若内部类声明为静态类,则只能访问外部类的静态变量和静态方法。
class OuterClass {
private int TestInt=32767;
class InnerClass {
public InnerClass() {
System.out.println("这里是非静态内部类,获取外部类的私有变量的值:TestInt="+TestInt);
}
}
static class InnerStaticClass {
public static void About() {
System.out.println("这里是静态内部类,被外部类直接调用。");
}
}
private void FunctionClassTest() {
System.out.println("这里是外部类的方法FunctionClassTest,被局部内部类调用。");
}
public void showMessage() {
final int a=0;
int b=1;
class FunctionClass {
public FunctionClass() {
System.out.println("这里是局部内部类,访问方法中定义的本地变量或者方法,需要把变量或方法声明为final。");
System.out.println("这里是局部内部类,访问本方法中的final类型的a变量:a="+a);
FunctionClassTest();
}
}
//创建局部类对象
new FunctionClass();
//调用静态类中的静态方法
InnerStaticClass.About();
}
}
作者:
浅一蓝
时间:
2014-2-22 14:39
public class OutClass{ //外部类
class InnerClass{...}//内部类
public static void main(String[] args){
InnerClass in = new OutClass().new InnerClass();//定义内部类成员变量
}
}
作者:
絮缘小默
时间:
2014-2-24 20:46
“可以在方法中定义内部类,如果要访问方法中定义的本地变量或者方法的参数,则变量或方法的参数必须定义为final。不过,此内部类可以直接访问外部类的方法。 ”
我查了资料:局部内部类中可以通过--外部类名.this引用其外部类的实例,但是这个引用只能使用方法或语句块中的final常量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2