Java 内部类,
分享于 点击 8175 次 点评:37
Java 内部类,
Demo.java
public class Demo {
public static int num=4;
static class Inner{
void method(){
System.out.println("num="+num);
}
}
void show(){
Inner in=new Inner();
in.method();
}
}
Test.java
public class Test {
/**
* 内部类的修饰符
* 1.权限修饰符。
* 默认或者公有
* 可以直接在其他类访问内部类
* 外部类名.内部类名 变量名=new 外部类对象.new 内部类对象;
* 私有:不可以被其他类使用。
*2.static修饰符
* 内部类被静态修饰,出现访问局限性,只能访问外部类中的静态成员。
* 内部类被静态后,会随着外部类的加载而加载。
*/
public void test(){
Demo demo=new Demo();
demo.show();
//直接在其他类中,访问一个类的内部类
//Demo.Inner in=new Demo().new Inner();
//in.method();
//直接new内部类对象,调用内部类中的非静态成员method
Demo.Inner in=new Demo.Inner();
in.method();
}
}
Main.java
public class Main {
/**
* @param args
*一。 内部类 特点:
* 1.内部类可以直接访问外部类中的成员(成员变量和成员函数)
* 2.外部类要访问内部类中的成员(成员变量和成员函数)就必须创建
* 内部类的对象
* 二。为什么要定义内部类
* 类是用于描述事物的,而事物中如果还有具体的事物,而且这个内部
* 的事物还在访问着外部的事物中的内容。这时这个内部事物就需要
* 用类来描述。这个类就是内部类。
* 三。为什么内部类可以直接访问外部类中的成员?
* 因为内部类都持有一个外部类的引用。外部类名.this
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo demo=new Demo();
demo.show();
Test t1=new Test();
t1.test();
}
}
相关文章
- 暂无相关文章
用户点评