内部类的编码及使用,包括成员内部类,局部内部类,匿名内部类

package com.ilike.inner;

/**
* 内部类(成员内部类,局部内部类,匿名内部类)
*
* @ClassName InnerClass
* @Description
* @author 桑伟东
*/

public class OuterClass {
//外部类成员变量
public String name = “桑伟东1”;

/**     成员内部类
 * 1.将内部类定义在外部类的成员位置 成员内部类,可以试用成员修饰符,public static .... 可以继承,也可以实现接口
 * 调用规则:内部类,可以使用外部类的成员,包括私有 外部类要使用内部类的成员,必须建立内部类对象
 */
class InnerClass1 {
    //内部类成员变量
    public String name = "桑伟东2";

    public void innerFunction() {
        //内部类局部变量
        String name = "桑伟东3";

        // 调用的是内部内中的局部变量,打印桑伟东3
        System.out.println("内部类方法innerFunction" + name);
        // 调用的是内部内中的成员变量,打印桑伟东2
        System.out.println("内部类方法innerFunction" + this.name);
        // 调用的是外部内中的成员变量, 打印桑伟东1
        System.out.println("内部类方法innerFunction" + OuterClass.this.name);
    }
}

/**
 * 局部内部类,将类定义在方法内部
 */
public void outerFunction1() {

    class InnerClass2{
        public void innerFunction2 () {
            System.out.println("局部内部类方法");
        }
    }
    InnerClass2 in2=new InnerClass2();
        in2.innerFunction2();
}

}

package com.ilike.inner;
/**
* 喝酒接口,为了测试匿名内部类
*
* @ClassName Drink
* @Description
* @author 桑伟东
*/
public interface Drink {

//喝酒方法的声明
public void drinking();

}

package com.ilike.inner;

/**
* 内部类的测试类
*
* @ClassName TestInner
* @Description
* @author 桑伟东
*/
public class TestInner {

public static void main(String[] args) {
    /**          成员内部类测试   
     * 1.成员内部类测试    调用外部类中的内部类方法innerFunction() 
     *   依靠外部类对象,找到内部类,通过内部类对象找到内部类方法
     * 2.格式: 外部类名.内部类名 变量=new 外部类对象().new 内部类对象();
     *      变量.内部类方法
     * 
     */

    OuterClass.InnerClass1 in = new OuterClass().new InnerClass1();
    in.innerFunction();


    /**         局部内部类测试
     * 1.局部内部类测试   调用局部内部类的方法innerFunction2()
     */
    new OuterClass().outerFunction1();

    /**        匿名内部类测试
     *  1.定义实现类,重写方法,创建实现类对象,一步完成
     *  2. 格式:new 接口或者父类(){
     *       重写抽象方法
     *       }; 
     */
     new Drink() {

        @Override
        public void drinking() {
            System.out.println("喝酒对身体不好,建议少喝!!");
        }
    }.drinking();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值