当前位置: 首页 > news >正文

java之内部类

最近学了java,对内部类有一点拙见,现在分享一下

所谓内部类(nested classes),即:面向对象程序设计中,可以在一个类的内部定义另一个类。

内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类

如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)

显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类

而心脏又在人体当中,正如同是内部类在外部内当中

java代码:

//外部类

class Out {

    private int age = 12;

     

    //内部类

    class In {

        public void print() {

            System.out.println(age);

        }

    }

}

 

public class Demo {

    public static void main(String[] args) {

        Out.In in = new Out().new In();

        in.print();

        //或者采用下种方式访问

        /*

        Out out = new Out();

        Out.In in = out.new In();

        in.print();

        */

    }

}

运行结果为:12

从上面的例子不难看出,内部类其实严重破坏了良好的代码结构,但为什么还要使用内部类呢?

因为内部类可以随意使用外部类的成员变量(包括私有)而不用生成外部类的对象,这也是内部类的唯一优点

如同心脏可以直接访问身体的血液,而不是通过医生来抽血。

转载于:https://www.cnblogs.com/yuan233/p/6979745.html

相关文章:

  • html5 Web Workers.RP
  • TensorFlow 生成 .ckpt 和 .pb
  • salesforce 简单的PDF报价单打印
  • 1.8 Oracle 登陆时报错信息:无监听程序 我的程序猿之路:第八章
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • iOS UISlider的使用
  • CSS 各种形状
  • 用php 生成 excel 表格
  • .Net 路由处理厉害了
  • mybatis中批量插入以及更新
  • robots.txt的语法和写法详解
  • STL 标准模板库
  • Servlet 详解
  • I/O流
  • 菜鸟学习Redis(二)——Redis集群
  • 「译」Node.js Streams 基础
  • 【Leetcode】104. 二叉树的最大深度
  • axios 和 cookie 的那些事
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • java概述
  • js ES6 求数组的交集,并集,还有差集
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • node和express搭建代理服务器(源码)
  • PHP 小技巧
  • session共享问题解决方案
  • Vue 重置组件到初始状态
  • Vue实战(四)登录/注册页的实现
  • 用简单代码看卷积组块发展
  • 交换综合实验一
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​iOS实时查看App运行日志
  • ​queue --- 一个同步的队列类​
  • ​什么是bug?bug的源头在哪里?
  • #pragma预处理命令
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (3)选择元素——(17)练习(Exercises)
  • (42)STM32——LCD显示屏实验笔记
  • (arch)linux 转换文件编码格式
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (二)c52学习之旅-简单了解单片机
  • (二)斐波那契Fabonacci函数
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)jdk与jre的区别
  • (转)大型网站的系统架构
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • (状压dp)uva 10817 Headmaster's Headache
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ./configure,make,make install的作用
  • .NET CLR Hosting 简介
  • .NET Framework 4.6.2改进了WPF和安全性