内部类
内部类:将一个类定义在另外一个类里面。里面的那个类就叫做内部类(内置类)。
访问特点:
内部类可以直接访问外部类的成员,包括私有成员。可以访问外部类成员的原因,是因为内部类可以使用外部类的引用。格式为:外部类对象名.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修饰时,其他外部类访问内部类成员,当成员不是静态时。
访问格式: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();
}
}