第十一谈:内部类

一、成员内部类(非静态)

创建成员内部类对象的语法:

外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
注意:
    1、成员内部类(非静态)既可以访问外部类的中的成员变量,也可以是私有的成员变量
    2、内部类都不会单独编译出一个class文件

 成员内部类的定义:在类的成员位置上定义一个类,相当于类的成员属性。

1)成员内部类中既可以访问外部类中的静态属性,也可以外部类中的非静态属性。

2)类方法(成员方法)要想去调用成员内部类中的属性,要先创建对象,通过对象去调用属性。

 例子:
public class Person{
    static String name="阳哥";  //成员变量1
    int age=24;               //成员变量2
    
    class IdCard{             //成员内部类
        String birthday="9月15日";      //属性
        public void innerFaction(){   //行为
            System.out.println("姓名:"+name);
            System.out.println("年龄"+age)
        }
    }
    
    IdCard id=new IdCard();
    public void say(){    //行为
        System.out.println("好热啊");
        System.out.println("生日"+id.birthday);
    }
    
    public static void main(String[] args){
        //IdCard id=new IdCard();//错误,必须通过Person
        Person person=new Person():
        IdCard idCard=person.new IdCard();
        idcard.innerFaction();
    }  
}

 二、静态内部类

定义:在类中定义一个前面加有static关键字的类。

注意事项:静态类可以直接访问外部的静态属性和方法,不能访问外部的非静态属性和方法。

例子: 

 

public class Child{
    //属性
    static String name="斯巴达";
    int age =24;
    //静态内部类
    static class IdCard{
        //属性
        String birthday;
        public void innerFaction(){
            System.out.println("姓名"+name);
//            System.out.println("年龄"+age); //不能访问外部的非静态属性和方法
        }
    }
    IdCard idCard=new IdCard(); //创建内部类的对象
    //方法
    public void say(){
        idCard.birthday="2023";
        idCard.innerFaction();
    }
    public static void main(String[] args){
    }
}

三、局部内部类

定义:在类的局部(方法里面或者代码块中)定义一个类

局部内部类既可以访问外部类的静态属性和方法,也可以访问外部类的非静态属性和方法

…………………………

………………

…………了解即可

四、匿名内部类

在类中定义一个没有名称,只有类体的类

一般使用于抽象类/实现类--->接口

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值