首页 > 其他分享 >内部类

内部类

时间:2024-09-11 22:36:21浏览次数:1  
标签:部类 内部 成员 System println out

内部类分四种:

  • 成员内部类

  • 静态内部类

  • 局部内部类

  • 匿名内部类

示意图:

图片名称

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

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

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

public class Outer {        // 外部类
    public class Inner {    // 内部类
        
    }
}

既不是外部类也不是内部类的类统称为外部其他类。

可以在外部其他类中创建内部类的对象, 并调用它的方法.

内部类表示的事物是外部类的一部分。

内部类单独出现没有任何意义。

例如:

需求: 写一个 Javabean 类描述汽车。

属性: 汽车的品牌, 车龄, 颜色, 发动机的品牌, 使用年限。

可以定义一个车类:

图片名称

但是还不是太好,因为发动机是一个独立的个体,和车还是有点区别的,所以和发动机相关的属性,不应该和车定义在一起。于是可以将发动机的属性拿出来,再定义一个发动机类:

图片名称

但是这样还是不是太好,因为发动机如果单独出现,是没有什么实际意义的。所以最好的解决方案就是把发动机这个类定义在车这个类的里面:

图片名称

内部类的访问特点:

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

  • 外部类要访问内部类的成员,必须创建对象,外部类不能直接访问内部类的成员。

什么时候用到内部类: 如果 B 类表示的事物是 A 类的一部分, 且 B 类单独存在没有意义, 那么就可以将 B 类设计为 A 类的内部类. 例如汽车的发动机, 人的心脏, ArrayList 的迭代器.

程序示例:

package InnerClass;

public class Car {
    String carname;
    private int age;
    String carColor;

    public void show() {
        System.out.println(carColor);      // 外部类的成员方法中,获取外部类的成员变量,没有任何问题
        // System.out.println(engineAge);  // 报错。外部类要访问内部类的成员,必须创建对象。
        Engine e = new Engine();  // 创建内部类的对象
        System.out.println(e.engineName);  // 使用内部类的对象访问内部类的成员变量
    }

    class Engine {
        String engineName;
        int engineAge;

        public void show() {
            System.out.println(engineName);     // 内部类中访问内部类的成员变量,完全没问题
            System.out.println(carname);        // 内部类可以直接访问外部类的成员,包括私有。
            System.out.println(age);            // 内部类可以直接访问外部类的成员,包括私有。
        }
    }
}

标签:部类,内部,成员,System,println,out
From: https://www.cnblogs.com/Chengkai730/p/18409159

相关文章

  • 章10——面向对象编程(高级部分)——内部类
    重点掌握匿名内部类的使用!1、内部类可以随意访问外部类的成员,包括私有的属性,而外部类不可以。2、内外部类有重名属性时,内部类的访问采用就近原则,如想访问外部的成员,则用外部类名.this.属性名。内部类分类,四种局部内部类第七条解释:Outer02.this本质是一个外部类的对象。......
  • 搭建企业内部的大语言模型系统
    大纲开源大语言模型大语言模型管理私有大语言模型服务部署方案开源大语言模型担心安全与隐私?可私有部署的开源大模型商业大模型,不支持私有部署ChatGPTClaudeGoogleGemini百度问心一言开源大模型,支持私有部署MistralMetaLlamaChatGLM阿里通义千问常用开源大模型列表开源大模型分支......
  • 搭建企业内部的大语言模型系统
    大纲开源大语言模型大语言模型管理私有大语言模型服务部署方案开源大语言模型担心安全与隐私?可私有部署的开源大模型商业大模型,不支持私有部署ChatGPTClaudeGoogleGemini百度问心一言开源大模型,支持私有部署MistralMetaLlamaChatGLM阿里通义千问常......
  • visual studio 2022 ,一打开项目就提示各种 内部错误,功能不可用
    原文链接:https://blog.csdn.net/weixin_45589116/article/details/133956055解决方法:  红色框中部分去掉 ......
  • 零到一学Java:内部类
    前言距今为止,我们了解的都是普通类的定义,那就是直接在IDEA或eclipse中直接新建一个class。新建完成后,你就会拥有一个class文件的定义,这种操作太简单了,时间长了就会枯燥,我们年轻人多需要更新潮和骚气的写法,好吧,既然你提到了那就使用内部类吧,这是一种有用而且骚气......
  • 如何进行文件外发管控?如何限制企业内部文件外发?一文揭晓答案
    文件外发管控的重要性:文件外发管控至关重要,它直接关系到企业信息安全与合规性。通过严格管控文件外发行为,企业能有效防止敏感信息泄露,保护核心数据资产不受侵害。这不仅有助于维护企业声誉和客户信任,还能确保业务连续性和竞争力。同时,符合法律法规要求,避免法律风险和罚款。因......
  • 企业怎样管控员工外发文件|企业如何限制内部文件被随意外发?
    在当今数字化时代,企业内部文件的安全管理成为了企业运营中不可或缺的一环。随着员工在日常工作中频繁地使用电子邮件、云存储、即时通讯工具等渠道进行信息交流和文件共享,如何有效管控员工外发文件,防止内部文件被随意外发,成为企业面临的重要挑战。本文探讨企业如何构建一套全......
  • 从知识孤岛到知识共享:内部知识库如何促进团队协作
    在当今快速变化的商业环境中,企业内部的知识管理和协作能力成为决定其竞争力的关键因素之一。然而,许多企业面临着“知识孤岛”的困境,即各部门和团队之间信息交流不畅,知识和经验难以有效传递和共享,导致资源浪费、决策效率低下和创新受阻。一、企业内部的知识孤岛现象知识孤......
  • 问:关于内部类,知道这些就够了~
    内部类是一种强大的特性,允许我们在一个类的定义中嵌套另一个类的定义。内部类提供了更好的封装性,可以将逻辑上相关的类组织在一起,并且可以直接访问外部类的成员。一、成员内部类成员内部类是定义在外部类中的非静态类。作为外部类的一个成员,它可以无条件地访问外部类的所......
  • 5个惊人策略:打造完美的企业内部知识库
    引言:在这个快速变化的商业环境中,拥有一个结构化和高效的内部知识库不再是可选项,而是企业成功的必需品。SaaS(SoftwareasaService,软件即服务)平台的兴起,为企业打造这样的内部知识库提供了强有力的技术支持和灵活的部署方案。通过SaaS平台,企业可以实现知识的集成、共享和利......