您的位置:首页 > 编程语言 > Java开发

随堂笔记160316内部类

2016-03-20 21:13 453 查看

一、内部类

1.代码:

class Person{
private String name;

class Heart{
public void jump(){
System.out.println("心脏在跳动");
}
}
}


2.创建内部类实例:

class Person{
private String name;

class Heart{
public void jump(){
System.out.println(name + "心脏在跳动");
}
}

public Heart getHeart(){
//第一种创建内部类对象的方法
return new Heart();
}
}

class Test{
public static void main(String[] args){
Person.Heart inner = new Person().getHeart();//通过第一种方式获取

Person p = new Person();
Person.Heart = new p.Heart();
}
}


总结

内部类可以访问外部类的私有属性

内部类可以体现包含关系

二、静态内部类

1.代码:

class Outer{
static class Inner{
public void test(){
System.out.pintln("这是测试");
}
}
}


2.静态内部类实例化:

class Test{
public static void main(String[] args){
new Outer.Inner().test();//访问了内部类的test()方法
}
}


静态内部类只能访问静态属性

三、方法里的内部类

1.代码:

class Outer{
public void test(final int age){
class Inner{
public void innerTest(){
System.out.println(age);
}
}
new Inner().innerTest();
}
}

class Test{
public static void main(String[] args){
new Outer().test();
}
}


总结:

不可能从外部去调用方法中的内部类,只能通过在方法里调用这个方法里的内部类

内部类接收外部类方法的形参时必须定义为final,但是在jdk1.7以后就可以不用写final

四、匿名内部类

1.代码:

interface AA{
void test();
}

Class Test{
public static void main(String[] args){
new AA(){
public void test(){
System.out.println("我在测试匿名内部类");
}
}.test();
}
}


总结:

定义匿名内部类需要一个接口

一般匿名内部类只用一次,用的时候就去实现接口,灵活

包装类

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