第 2-2 课:各种内部类和枚举类 + 面试题

内部类不仅经常出现在各种面试题中,还会在 Java 源码中频频出现,因此只有搞明白了 Java 内部类,才能搞定面试和看懂各种 Java 源码。

内部类

Java 内部类,分为以下四种:

  • 成员内部类
  • 静态成员内部类
  • 局部内部类
  • 匿名内部类

下面分别来看这些内部类的使用。

成员内部类

定义

在一个类中定义了另一个类,则将定义在类中的那个类称之为成员内部类。成员内部类也是最普通的内部类。

使用

成员内部类的使用示例如下:

class Outer {public Outer() {System.out.println("Outer Class.");}class Inner {public void sayHi() {System.out.println("Hi, Inner.");}}
}

其中 Inner 类则为成员内部类。
而成员内部类的创建和使用,请参考以下完整的示例代码:

class InnerTest {public static void main(String[] args) {Outer out = new Outer();// 创建成员内部类Outer.Inner inner = out.new Inner();inner.sayHi();}
}
class Outer {public Outer() {System.out.println(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统层次结构_Linux文件系统层次结构问题和解答

linux系统层次结构This section contains Aptitude Questions and Answers on Linux Filesystem Hierarchy. 本节包含有关Linux文件系统层次结构的 Aptitude问答。 1) There are the following statements that are given below, which of them are correct about Linux File …

plsql developer 安装在win7 64位电脑路径问题

plsql developer 如果安装在win7 64位电脑上,安装目录不能有括号或者中文等特殊字符,默认安装路径是C:\Program Files (x86)。——

第 2-4 课:克隆和序列化 + 面试题

克隆 在开始学习克隆之前,我们先来看看下面的代码,普通的对象复制,存在什么问题? class CloneTest {public static void main(String[] args) throws CloneNotSupportedException {// 等号赋值( 基本类型)int number = 6;int number2 = number;// 修改 number2 的值num…

Java StreamTokenizer whitespaceChars()方法及示例

StreamTokenizer类whitespaceChars()方法 (StreamTokenizer Class whitespaceChars() method) whitespaceChars() method is available in java.io package. whitespaceChars()方法在java.io包中可用。 whitespaceChars() method is used to denotes that all the characters l…

Oracle-1 / Oracle及PlsqlDeveloper的设置

1、启动监听器与服务器我的电脑->管理->服务...保证“...listener...”和“...service...”两个服务开启2、客户端软件设置tools->preference->connection->Oracle home设置好Oracle所在的路径3、监听列表设置在Oracle安装目录下找到network文件夹两个文件时 li…

远程拍照并获取图片

主要功能 肉鸡程序启动后可打开摄像头迅速拍摄一张照片,通过服务器发送到主机,发送完成后删除肉鸡本地保存的图片 相关技术 socket网络编程文件操作opencv 代码 肉鸡 #define _WINSOCKAPI_ #define _CRT_SECURE_NO_WARNINGS #define _WINSOCK_DE…

第 2-3 课:抽象类和接口 + 面试题

抽象类 定义 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。简单来说,使用关键字 abstract 修饰的类就叫做抽象类。 抽象类使用 示例代码…

CentOS 6.4下操作kdump执行过程

kdump 是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture …

java jar包示例_Java包getSpecificationVersion()方法和示例

java jar包示例包类的getSpecificationVersion()方法 (Package Class getSpecificationVersion() method) getSpecificationVersion() method is available in java.lang package. getSpecificationVersion()方法在java.lang包中可用。 getSpecificationVersion() method is us…

JAVA类(手机充电、放音乐示例)

练习练习 import java.util.Scanner;//包含包public class ex1 {public static void main(String args[])//程序入口{Phone phone new Phone();//建一个手机phone.logo "SONY";//弄上个牌子phone.battery.power 100;//给电池弄上100电Scanner reader new Scanner…

linux——进程(创建、终止、等待、替换)

进程的基本操作 概念 程序运行的一个实例,其占有一定的空间。 查询某一进程当前情况 ps aux | grep 进程名终止进程 kill -9 pid; //pid指需要终止的进程pid创建 pid_t fork();该函数有两个返回值,对于子进程其返回的是0&#xf…

第 3-1 课:集合详解(上) + 面试题

先来看看集合的继承关系图,如下图所示: 其中: 外框为虚线的表示接口,边框为实线的表示类;箭头为虚线的表示实现了接口,箭头为实线的表示继承了类。为了方便理解,我隐藏了一些与本文内容无关的信息,隐藏的这些内容会在后面的章节中进行详细地介绍。 从图中可以看出,集…

Java类class isAnnotationPresent()方法与示例

类类isAnnotationPresent()方法 (Class class isAnnotationPresent() method) isAnnotationPresent() method is available in java.lang package. isAnnotationPresent()方法在java.lang包中可用。 isAnnotationPresent() method returns true when the annotation for the gi…

CCNA 学习笔记(四)--路由协议(RIP)

现在我们先复习下,什么是路由?答:当路由器(或者其它三层设备)收到一个IP数据包时,会查看数据包的IP头部中的目的IP地址,并在路由表中进行查找,在匹配到最优路由后,将数据…

第 3-3 课:泛型和迭代器 + 面试题

泛型 1)为什么要用泛型? 在泛型没有诞生之前,我们经常会遇到这样的问题,如以下代码所示: ArrayList arrayList = new ArrayList(); arrayList.add("Java"); arrayList.add(24); for (int i = 0; i < arrayList.size(); i++) {String str = (String) array…

自连接 实例

SELECT * FROM student_grade;select t1.num,t1.name,t1.chinese,t2.math,t3.english from (SELECT a.num,a.name,a.sex,b.grade as chinese FROM student_grade as ainner join student_grade as b on a.num b.num and a.course b.coursewhere b.course 语文) as t1,(SELEC…

linux——进程间通信(管道)

概念 进程间通信是指子进程与父进程间的通信&#xff0c;一般用作父进程对子进程的控制或者子进程将其动向告诉父进程&#xff0c;由于进程是一个程序执行的实例&#xff0c;进程之间本身是无法进行通信的&#xff0c;故而运用一种管道将二者联系起来。当然管道并不只限于在父子…

Java LineNumberInputStream available()方法与示例

LineNumberInputStream类的available()方法 (LineNumberInputStream Class available() method) available() method is available in java.io package. available()方法在java.io包中可用。 available() method is used to return the number of available bytes that can be …

第 3-2 课:集合详解(下) + 面试题

集合有两个大接口:Collection 和 Map,本文重点来讲解集合中另一个常用的集合类型 Map。 以下是 Map 的继承关系图: Map 简介 Map 常用的实现类如下: Hashtable:Java 早期提供的一个哈希表实现,它是线程安全的,不支持 null 键和值,因为它的性能不如 ConcurrentHashMap…

Linux下系统与硬件时钟管理

在无NTP而又处在私网的情况下、所以有效的保证时间的正确性其实可以使用此种方案来保证时间的准确性1、系统日期时间设定[rootrhel ~]# date -s "2014-11-27 21:50:00" 设置当前时间与日期Thu Nov 27 21:50:00 EST 20142、硬件时钟日期与时间设定[rootrhel /]# hwclo…