代码编织梦想

内部类

  • 内部类就是在一个类的内部在定义一个完整的类,比如,A类中定义一个B类,那么B类相对于A类来说就称为内部类,而A类相对B类来说就是外部类

    class Outer(){
        class Inner)(){
            
        }
    }
    
  • 编译之后可生成独立的字节码文件;上述代码会生成两个.class文件,Outer.class和Outer$Inner.class

  • 内部类可直接访问外部类的私有成员,而不破坏封装

  • 可为外部类提供必要的内部功能组件

成员内部类

  • 在类的内部定义,与实例变量、实例方法同级别的类

  • 外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象

  • 当外部类,内部类存在重名属性时,会优先访问内部类属性

    • 若此时需要访问外部类属性

    • Outer.this.id;
      //外部类名称.this.属性名
      
  • 成员内部类不能定义静态成员;但可以包含静态常量

静态内部类

  • 在成员内部类的基础上增加Static关键字
  • 不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员

局部内部类

  • 定义在外部类方法中,作用范围和创建对象范围仅限于当前方法
  • 不能修饰为Static
  • 局部内部类访问外部类当前方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰为final

匿名内部类

  • 必须继承一个父类或者实现一个接口
  • 定义类、实现类、创建对象的语法合并,只能创建一个该类的对象
  • 点:减少代码量
  • 缺点:可读性差
public class Outer {
    private int id=10;
    public void Out(){
        System.out.println("这是外部类的方法");
    }
    //局部内部类
    public void Method(){
        class Inner{
        }
    }
    //成员内部类
    public class Inner{
        public void in(){
            System.out.println("这是内部类的方法");
        }
        //内部类可以访问外部类的一些私有方法
        public void getID(){
            System.out.println(id);
        }
    }
}
//一个java类中可以有多个class类,但是只能有一个public class
class A{

}
///
//内部类和外部类实例化
		//外部类
        Outer outer = new Outer();
        //成员内部类 通过外部类来实例化
        Outer.Inner inner = outer.new Inner();
        inner.in()
public class Application {
    public static void main(String[] args) {
        //匿名内部类
        //Apple apple = new Apple();
        //匿名对象的使用,不用把实例保存在变量中!!!
       
        new Apple().go(); 
    }
}
class Apple{
    public  void  go(){
        System.out.println("GO!");
    }
}
).go(); 
    }
}
class Apple{
    public  void  go(){
        System.out.println("GO!");
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41841385/article/details/129677985

详解 java 内部类___hiro__的博客-爱代码爱编程

*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 文章目录 前言注普通内部类静态内部类匿名内部类局部内部类内部类的嵌套深入理解内部类内部类和多重继承内部类和内存泄露 前言

Java内部类(一篇就够)-爱代码爱编程

在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 一、内部类基础: 1、成员内部类: 成员内部类看起来像是外部类的一个成员,所以内部类可以拥有private、public等访问权限修饰;当然,也

java内部类写法_java内部类怎么写-爱代码爱编程

一。内部类基础 二。深入理解内部类 三。内部类的使用场景和好处 四。常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正。 一。内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下

java new 一个内部类_java内部类-爱代码爱编程

java内部类的几种类型:成员内部类,静态内部类,方法内部类,匿名内部类。 成员内部类:成员内部类是类内部的非静态类。成员内部类不能定义静态方法和变量(final修饰的除外)。这是因为成员内部类是非静态的,类初始化的时候先初始化静态成员,如果允许成员内部类定义静态变量,那么成员内部类的静态变量初始化顺序是有歧义的。例子如下: 运行结果为:访问外

java 内部类怎么new_java内部类有什么作用?-爱代码爱编程

Java内部类真的很难理解,但有必要搞懂,因为内部类让外部类更丰富多彩了,就好像一个人的心中还可以住着另外一个人。 01、内部类的定义 顾名思义,内部类就是放在另外一个类的内部定义的类。非常重要的一点是,内部类能够访问外部类的所有成员,包括private修饰的。 来看程序清单1-1: public class Wanger { private

java声明内部类_Java 内部类详解-爱代码爱编程

什么 定义在一个类内部的类,称为内部类(累不累),如下: public class A { private int c = 1; public class C { public void test() { System.out.println("c:" + c); } } } C称为A的内部类,简称内部类 A称为C的外部类,简称外

java的内部类和外部类_java内部类 和外部类的区别-爱代码爱编程

下面说一说内部类(Inner Class)和静态内部类(Static Nested Class)的区别: 定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明 为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的

java 内部类怎么调用成员变量_JAVA内部类之成员内部类-爱代码爱编程

JAVA有一个特殊的类形式——内部类(这个词有点为难普通话不好的南方朋友)。今天我们就来聊聊内部类的一种:成员内部类。 如何定义成员内部类 那要如何定义成员内部类呢。 既然叫成员内部类,说明和成员变量是有类似的地方。从代码的层次结构上来看他是和成员变量处于相同层级的。 我们来举个例子。 上图代码中,在类OutClass中定义了一个成员

Java内部类可以public吗,Java 内部类-爱代码爱编程

Java 内部类 什么是内部类? 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。 主要用以下几种 成员内部类 局部内部类 匿名内部类 静态内部类 Java 成员内部类示例 访问权限 private 访问权限 protected 访问权限 public 访问权限 package 访问权限

JAVA内部类、外部类-爱代码爱编程

一、内部类                内部类就是将一个类A定义在类B里边,里边的那个类A称为内部类,外边的类B称为外部类                成员内部类定义格式:class 外部类{                                                         class 内部类{          

java内部类最全详解-爱代码爱编程

1、成员内部类 内部类与外部类的关系 a.成员内部类的创建需要依赖于外部类对象-(成员方法必须通过对象调用),在没有外部类实例之前无法创建成员内部类对象 b.内部类与外部类相对独立,不是is a 的关系(发动机-汽车) c.私有属性的互相访问,内部类可以直接访问外部类,而外部类访问内部类需要内部类的对象来访问 d.创建内部类的语法 1.在外

java内部类 (详细讲述java内部类)_码农的秃头之旅的博客-爱代码爱编程

Java 内部类   文章目录 Java 内部类 基本介绍类的五大成员局部内部类 属性方面:匿名内部类:局部内部类和匿名类的区别: 继承父类的匿名类:明天更新最后两个内部类 晚安小伙伴们!!!   基本介绍 一个类的内部又完整的嵌套了另一个结构,被嵌套的类称为 内部类(inne