日常-2018.08.09-内部类

内部类
(1)定义:将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类为内部类;

(2)用途:若一个事物内部还包含其他可能包含的事物
例:比如汽车里面还包含发动机
//外部类
class Car{

//内部类
class Engine{
}

}

(3)内部类分类
A. 成员内部类
1. 定义:在外部类中的成员位置;
2. 调用规则:内部类,可以使用外部类成员,包括私有外部类要使用内部类成员,必须建立内部类对象;
3. 格式:
//外部类
class Car{

//内部类
class Engine{
}

}
4. 访问方式
外部类名.内部类名 变量名 = new 外部类名(). new 内部类名();
例:
//定义外部类
public class Outer {

int i = 1;
//外部类成员位置,定义内部类
class Inner{

    int i = 2;

    public void jump(){
        int i = 3;
        //调用局部变量
        System.out.println(i);
        //调用本类成员变量
        System.out.println(this.i);
        //调用外部类成员变量
        System.out.println(Outer.this.i);
        System.out.println("打印内部类方法");
    }
}

}

//定义测试类
public class Test {

public static void main(String[] args) {
    Outer.Inner oi = new Outer().new Inner();

    oi.jump();
}

}

B. 局部内部类
1. 定义:定义在外部类方法中的局部位置·。与访问方法中的局部变量相似,可通过调用方法进行访问。

  1. 格式:
    class 外部类{

    修饰符 返回值类型 方法名(参数){
    class 内部类{
    //其他代码
    }
    }
    }

  2. 访问方式:在外部类方法中,创建内部类对象,进行访问。
    例:
    package NeiBuLei;

/*
* 局部内部类
* 将一个类,定义在方法中
*/
//定义一个外部类
public class Outer1 {
//外部类方法
public void out(){
//定义局部内部类
class Inner1{
public void inner(){
System.out.println(“局部内部类方法”);
}
}
//利用匿名对象调用内部类里面的方法inner
new Inner1().inner();

}

}

//定义测试类
public class Test1 {

public static void main(String[] args) {
    //创建外部类对象并调用out方法
    new Outer1().out();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值