JAVA——内部类

本文详细介绍了Java中的内部类类型(成员、静态、局部和匿名),它们的访问权限,获取对象的方式,以及静态内部类的特点和匿名内部类的应用实例。强调了内部类如何作为外部类的一部分,并讨论了`this`关键字的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

使用场景:

内部类的分类:

1.成员内部类——了解

获取成员内部类对象:

获取成员外部类对象:就近原则

2.静态内部类——了解(static修饰的内部类)

3.局部内部类——了解

4.匿名内部类——重点掌握


类的五大成员:属性,方法,构造方法,代码块,内部类

内部类——在一个类的里面,再定义一个类

举例:在A类的内部定义B类,B类就被成为内部类

使用场景:

内部类表示的事物是外部类的一部分,内部类单独出现没有任何意义

比如:汽车发动机,人体心脏,ArrayList的迭代器等等

内部类的访问特点:

内部类可以直接访问外部类的成员,包括私有

外部类要访问内部类的成员,必须创建对象

内部类的分类:

1.成员内部类——了解

写在成员位置的,属于外部类的成员,可以被一些修饰符修饰,如:private,默认,protected, public,static等

JDK16之前不能定义静态变量,JDK16开始才可以定义静态变量

获取成员内部类对象:

方式一:在外部类中编写方法,对外提供内部类的对象

方式二:直接创建格式: 外部类名.内部类名 对象名 = 外部类对象.内部类对象

获取成员外部类对象:就近原则

        a

        this.a

        外部类名.this.a

2.静态内部类——了解(static修饰的内部类)

静态内部类只能访问外部类中的静态变量和静态方法,如果想要访问非静态的需要创建对象

创建静态内部类对象的格式:

外部类名.内部类名 对象名 = new 外部类名.内部类名();

        Outer.Lnner oi = new Outer.Lnner();

调用非静态方法的格式: 先创建对象,用对象调用

调用静态方法的格式: 外部类名.内部类名.方法名();

3.局部内部类——了解

1.将内部类定义在方法里面就叫做局部内部类,类似于方法里面的局部变量

2.外界无法直接使用,需要在方法内部创建对象并使用

3.该类可以直接访问外部类的成员,也可以访问方法内的局部变量

4.匿名内部类——重点掌握

匿名内部类的本质上就是隐藏了名字的内部类

格式:         new 类名或接口名(){

                        重写方法;

                    }

举例:        new Inter(){

                            public void show(){

                            }

                  }

如以前写的Swim接口:

                public interface Swim{

                        public abstract void swim();

                }

编写类去实现接口——实现类

                public class Student implements Swim(){

                        @Override

                         public void swim(){

                                System.out.println("重写的游泳方法);

                        }

                }

编写匿名内部类——隐藏了名字的内部类,并非没有名字 可以写在成员位置,也可以写在局部位置

1.继承/实现

2.方法重写

3.创建对象

                new Swim(){ // ——实际上是匿名内部类的对象

                        @Override

                        public void swim(){

                                System.out.println(""重写的游泳方法);

                        }

                };

扩展:this关键字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值