面向对象------内部内

本文详细介绍了Java中的内部类,包括成员内部类、静态内部类、匿名内部类和方法内部类的定义、实例化及使用规则。内容涵盖内部类访问外部类成员的方式,以及如何通过外部类访问内部类成员。同时,文章强调了内部类中静态属性的限制,并提供了代码示例进行说明。
摘要由CSDN通过智能技术生成
package Interface;

/**
 * 内部类:把一个类定义在另一个类的内部称为内部类
 *     使用:创建内部类的对象的时候,需要在内部类的前面加外部类来进行修饰
 *     1.内部类可以直接访问外部类的属性和方法
 *     2.外部类要想访问内部类,则需创建内部类的对象才可访问
 *     3.内部类中不能定义静态属性(静态当然可以)
 *     4.当内部类和外部类有相同的(属性或者方法)的时候,在内部类中可以直接访问内部类的(属性或方法)
 *     如果想访问外部类的(属性或者方法)就得用 外部类类名.this.(属性或者方法)
 *
 *     分类:
 *        1.成员内部类
 *    实例化格式:
 *     外部类.内部类 对象 = new 外部类().new 内部类();
 *        2.静态内部类:
 *     实例化格式:
 *     外部类.内部类 对象 = new 外部类.内部类();
 *        3.匿名内部类:适合一个类在使用过程中只是用一次的时候
 *     格式:new 对象(){添加未实现的方法}
 *     4.方法内部类:定义在外部类中方法里的类就称为方法内部类
 *     注意:
 *     1.方法内部类中的属性是被final修饰的(只是现在JDK版本高了,不需要显示声明)
 */
public class NeibuTest {
    private int age = 200;

    //成员内部类
    public class DE {
        //属性
        private String name;
        private int age = 10;

        public void a() {
            System.out.println(age);
            System.out.println(NeibuTest.this.age);
            b();
        }
    }
    public void b(){
        DE de =new DE();
        System.out.println(de.name);
        de.a();
    }
    //静态内部类
    static class J {
       private  static String info = "HelloWorld!";
        public void shuchu(){
            System.out.println(info);
        }
    }

    public Comparable mother() {
        //匿名内部类
      return new Comparable() {

          @Override
          public int compareTo(Object o) {
              return 100;
          }
      };
    }
    //方法内部类
    public void head(){
        /*final*/ int num = 10;
        class You{
            public void print(){
                //num = 20;无法改变
                System.out.println(num);
            }
        }
    }
}
class Demo{
    public static void main(String[] args) {
        //静态内部类实例化
        NeibuTest.J j = new NeibuTest.J();
        j.shuchu();
        //成员内部类实例化
        NeibuTest.DE de =new NeibuTest().new DE();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值