您的位置:首页 > 其它

内部类

2014-04-08 12:28 92 查看
内部类

内部类:将一个类定义在另外一个类里面。里面的那个类就叫做内部类(内置类)。
访问特点:
内部类可以直接访问外部类的成员,包括私有成员。可以访问外部类成员的原因,是因为内部类可以使用外部类的引用。格式为:外部类对象名.this.成员
但是外部类访问内部类必须要建立内部类对象。
当其他外部类访问此内部类时,访问格式为:外部类名.内部类名 变量 = new 外部类对象.new 内部类对象。
内部类也可以被修饰,如:public、private
<pre name="code" class="java">package com.itheima;

class OuterClass{
private String name;

class InnerClass{
void show(){
System.out.println("my name is:"+name);
System.out.println("my name is:"+OuterClass.this.name);
}

void getName(String name){
OuterClass.this.getName(name);
}
}

void getName(String name){
this.name = name;
}

void makeMethod(){
InnerClass inner = new InnerClass();
inner.show();
}
}

public class InnerDemo {
public static void main(String[] args){
OuterClass outer = new OuterClass();
outer.getName("嘻嘻");
outer.makeMethod();
OuterClass.InnerClass inner  = new OuterClass().new InnerClass();
inner.getName("呵呵");
inner.show();
}
}




当内部类被static修饰时,要访问外部类的成员,外部类的成员必须是静态的。

当内部类被static修饰时,其他外部类访问内部类成员,当成员不是静态时。

访问格式:new 外部内名.内部类对象.成员

当内部类被static修饰时,其他外部类访问内部类成员,当成员是静态时。

访问格式:外部类名.内部类名.成员
当内部类被static修饰时,要访问此外部类的成员

访问格式:外部类名.成员变量
class OuterClass1{
private static String name;
static class InnerClass1{
void show(){
System.out.println("my name is:"+name);
}
void getName(String name){
OuterClass1.name = name;
}
}

static class InnerClass2{
static void show(){
System.out.println("my name is:"+name);
}
static void getName(String name){
OuterClass1.name = name;
}
}

class InnerClass3{
void show(){
System.out.println("my name is:"+name);
}
void getName(String name){
OuterClass1.name = name;
}
}
}

public class StaticInnerClassDemo {
public static void main(String[] args){
new OuterClass1.InnerClass1().getName("嘻嘻");
new OuterClass1.InnerClass1().show();

OuterClass1.InnerClass2.getName("呵呵");
OuterClass1.InnerClass2.show();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对象 内部类 class