Java编程那些事儿71——内部类简介

8.10 内部类(Inner Class)

内部类是Java语言中的一种特殊的语法,简单的来说,就是在一个类的内部再声明一个类,这些声明在类内部的类就被称作内部类。在实际声明时,内部类可以声明在类的内部、类的方法内部,也可以声明在类的构造方法内部,内部类声明的语法格式和一般类的声明一样,只是内部类声明时可以使用static修饰符进行修饰。

对于内部类的相关使用,本部分不做深入的介绍,只是进行简单的说明,辅助建立内部类的概念,能够进行一些基本的使用。

下面是一个简单的内部类的示例代码:

/**

* 内部类基本使用示例代码

*/

public class OutClass {

 int i = 0;

 public class InnerClass{

  public void test(){

   i++;

  }

 }

}

在该示例代码中,类InnerClass声明在了类OutClass的内部,所以InnerClass被称为内部类,而OutClass则被称为InnerClass的外部类。

该代码编译以后,将生成两个class文件,一个是OutClass.class,另外一个是OutClass$InnerClass.class。这里需要说明的是,内部类也被编译成一个独立的类文件,类文件的名称为:外部类类名$内部类类名.class。

在内部类中,可以很方便的访问外部类的属性i,而外部类不能直接引用内部类中的属性和方法,语法中提供了一套专门的格式来访问内部类中的属性和方法,这些语法这里就不作介绍了。

内部类是Java语言诞生以后新增的一个语法,设计该语法的初衷主要有两个:

1、隐藏内部类的实现

也就是将只有被外部类使用的功能隐藏在内部类的内部,其它类访问这个内部类时的语法会比较复杂,从而在一定程度了避免了其它类对于内部类的访问。

2、内部类可以访问外部类的所有属性和方法,避免了参数传递

在内部类中,可以访问外部类中的所有属性和方法,private访问控制符修饰的属性和方法也可以被内部类访问,这样将方便内部类的编写,避免了参数传递,也减少了外部类需要向其它类开放的属性和方法的数量。

时间: 2024-11-17 00:52:40

Java编程那些事儿71——内部类简介的相关文章

Java编程那些事儿84——IO简介

第十一章 I/O处理 I/O(Input/Output)是输入和输出的简称,在Java语言中所有和输入输出有关的都属于IO处理技术,例如包含文件的读写和网络数据的发送等. 其实整个计算机实现功能时最主要的就是IO,用户使用鼠标.键盘等输入设备向程序输入数据,程序进行一定的逻辑处理,然后再将处理结果以一定的形式显示到显示器等输出设备上. I/O处理技术是Java语言中实现文件操作.内存操作.控制台输入以及网络编程的基础,但是由于I/O技术本身的设计原因,也使得I/O处理技术的难度比较大,需要花费比

Java编程那些事儿52—方法声明

第七章 方法 方法(method),在面向过程的语言中称作函数(function),在汇编语言中称作子程序,是一个代码功能块,实现某个特定的功能.在实际的程序开发中,方法是一种基础的组织代码的方式.本部分就介绍方法相关的概念.相关语法以及实际使用时需要注意的问题. 7.1 方法概述 方法的概念来源于数学上的函数,在数学中,当数据具有一定的规律时,就是用一个函数来代码该数字的规律,例如f(n)=n则代表1.2.3.--这样的一个数列.在数学上n是参数,对于确定的n值只有一个f(n)的值和它对应.

Java编程那些事儿25—位运算符

4.5 二进制运算符 由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符. 使用二进制的运算符,可以直接在二进制的基础上对数字进行操作,执行的效率比一般的数学运算符高的多,该类运算符大量适用于网络编程.硬件编程等领域. 二进制运算符在数学上的意义比较有限. 在Java代码中,直接书写和输出的数值默认是十进制,Java代码中无法直接书写二进制数值,但是可以书写八进制和十六进制数字,八进制以数字0开头,例如016,十六进

Java编程那些事儿3——你适合学习程序设计吗?

 Java编程那些事儿3--你适合学习程序设计吗?作者:陈跃峰出自:http://blog.111cn.net/mailbomb          程序设计是一个技术活,所以不是适合所有的人.现在很多人听说程序设计人员待遇如何如何的好,都一窝蜂的来学习程序,其实这个现象很不正常,因为程序不一定适合你.其实对于一个人来说,适合你的才是最好的.         就像现在很多小孩子都被家长逼着去学钢琴啊什么,有些小孩根本没有艺术细胞的,所以学习的效果就是差强人意了.         其实程序设计最需要

Java编程那些事儿4——如何学好程序设计?

  Java编程那些事儿4--如何学好程序设计?作者:陈跃峰出自:http://blog.111cn.net/mailbomb          俗话说"兴趣是最好的老师",但是只靠兴趣是远远不够的,还需要付出艰辛的努力.程序设计是一种技能,需要在较短的时间内学会,就不能像学习汉语一样,通过十几年甚至更长的时间来学好,也不能像英语那样进行业余学习,以至很多大学毕业的人英语水平也不敢恭维,也达不到实用的程度.         那么如何学好程序设计呢?或者更现实一点,如何在短时间内成为一个

Java编程那些事儿1——序言

 序言          从大学毕业到现在,马上就六年了,这六年中从事过开发,也从事培训工作,相比而言,参加培训工作的时间要长一些.由于工作的特点,遇到了各种各样的学生,在学习编程时遇到了一系列的问题,也有很多迷茫的时候,希望通过编写本书,把相关的问题进行一下总结,把自己的经验和大家进行分享.当然由于一些知识也只是个人见解,也希望大家积极指正,帮助编程的初学者,以及程序开发人员深刻理解基础的概念,更好的学习编程和从事开发工作.         编写一本书,总要有个名字吧,姑且把书名叫做<Java

Java编程那些事儿93——多线程基础

第十二章 多线程 当计算机处于DOS时代时,程序几乎是没有界面的,而且由于计算机运行速度等原因,那个时代的计算机只能启动一个程序,只有当该程序退出以后才可以执行其它的程序.但是随着计算机性能的提高,以及软件的丰富,如果计算机还只能同时执行一个程序的话,那么计算机恐怕是很多人都不能接受的. 这种在任何一个时间点,可以有多个程序同时执行,或者有多个程序逻辑同时执行的能力,成为并发执行. 现在计算机早已进入到并发执行的时代,对于程序编程来说,进行并发执行的程序编写也就被称作并发编程,在Java语言中,

Java编程那些事儿57—面向对象基础

第八章 面向对象 在程序中,最核心的是数据结构和算法,不同的程序需要根据需要设计不同的数据结构,然后依赖程序的功能以及数据结构设计对应的算法,这种设计方式是程序的底层设计,也就是解决具体的功能. 当程序项目复杂到一定程度时,就不仅要专注于底层的设计,更要对程序的结构进行设计,面向对象(Object-Oriented,简称OO)就是一种常见的程序结构设计方法. 面向对象思想的基础是将相关的数据和方法放在一起,组合成一种新的复合数据类型,然后使用新创建的复合数据类型作为项目的基础. 8.1 面向对象

Java编程那些事儿101——网络编程概述

第十三章 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输