/**
* 内部类详解
*
* @author shao
*
*/
public class InnerClass { public static void main(String[] args) {
Man p = new Man("丽丽");
Man.Son son = p.new Son("小丽丽");
son.play();
Man.Girl girl = new Man.Girl();
girl.play();
p.work();
p.getMoney().fun();
} } class Man { private String wife;
private String house = "房子";
private static String girlOwn = "嫁妆是必须的"; public Man(String wife) {
this.wife = wife;
} public void work() {
// 从不向儿子索取
// System.out.println("工作"+toy); // 局部内部类,与局部变量类似 ,用法与成员内部类一样
class Sleep {
public String sleep() {
return "该睡觉了~~~~";
}
} System.out.println(new Sleep().sleep()); } public static String fun() {
return "天天上班挣钱";
} public Money getMoney() { /*
* 匿名内部类是一种特殊的局部内部类,没有类名,只适合一次并且不需要多次创建的类。 匿名内部类是唯一一种没有构造方法的类。
* 匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写,在android开发中经常用到。事件监听等 。
*/
return new Money() { @Override
public void fun() {
System.out.println("就涨过一次工资。。。。哎");
} };
} /*
* 非静态内部类,可以调用引用类的成员变量,但引用类,不可以调用 内部 类的成员变量。
*/
class Son { private String wife;
private String toy; public Son(String wife) {
this.wife = wife;
} public void play() {
System.out.println(wife + ",是我妈咪的儿媳妇~");
System.out.println(Man.this.wife + ",是我妈咪");
System.out.println("我是儿子,可以继承资产..." + house + "--哈哈——");
System.out.println(fun() + "也是我的钱。");
}
} /*
* 当一个静态内部类存在,并不一定存在对应 的外部类对象 可以看成外部类(引有类)的一个静态成员
*/
static class Girl { private String dress; public void play() { // 静态内部类不可以访问外部类的成员变量
// System.out.println("我也不需要房子"+house);
System.out.println(girlOwn + ",这个再不能给哥哥了~"); }
} public interface Money {
void fun();
}
}

java 内部类复习的更多相关文章

  1. Java内部类复习

    package com.t_06; import org.junit.Test; import com.t_06.StaticClass.StaticInnerClass; /** * 一个类的定义放 ...

  2. java基础复习记录

    java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...

  3. Java内部类final语义实现

    本文描述在java内部类中,经常会引用外部类的变量信息.但是这些变量信息是如何传递给内部类的,在表面上并没有相应的线索.本文从字节码层描述在内部类中是如何实现这些语义的. 本地临时变量 基本类型 fi ...

  4. Java内部类详解

    Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...

  5. 黑马----JAVA内部类

    黑马程序员:Java培训.Android培训.iOS培训..Net培训 黑马程序员--JAVA内部类 一.内部类分为显式内部类和匿名内部类. 二.显式内部类 1.即显式声明的内部类,它有类名. 2.显 ...

  6. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  7. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  8. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  9. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

随机推荐

  1. idea 下运行安卓项目

    修改 gralde 路径修改安卓sdk路径进入project structure 设置 Project settings / Project /project SDK 选择 Android API 2 ...

  2. 使用ajax获取servelt数据乱码

    修改tomcat编码 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout=" ...

  3. struts1使用select标签

    今天使用struts1标签的时候总是出错,后来查了一下,好像不能和什么标签混用.就只用了html原来的标签实现 <select name="newsType_id"> ...

  4. latexdiff中的大坑:字符编码问题

    最近用latex写文章,要用到修订模式,于是采用latexdiff命令生成修订版pdf.这原本是一个非常简单方便的方法,却隐藏着字符编码的问题,初次用可能会遇到意想不到的问题,让人很烦,比如,生成出来 ...

  5. 自定义View等级滑动条的实现

    package com.loaderman.beautyseekbarviewdemo; import android.os.Bundle; import android.support.v7.app ...

  6. Python_元组、字典内建方法详解

    目录 目录 前言 软件环境 元组Tuple count 查询一个元素在Tuple中的数量 index 查询元素在Tuple中的索引号 元组的遍历 字典Dictionary 创建一个字典对象 简单的创建 ...

  7. 使用PowerShell远程连接WinServer

    最近做一个项目后台,涉及到多台服务器,当程序更新的时候,由于用的是WinServer,无法像Linux使用SSH批量更新,用Windows的mstsc的远程一个一个连接又太麻烦了.查找了一下资料,发现 ...

  8. HTTP Status 500 ? Internal Server Error

    getWriter()和getOutputStream()不能同时调用 HTTP Status 500 ? Internal Server Error Type Exception Report Me ...

  9. java:Mybatis框架2(基于mapper接口的开发,多种查询,复合类型查询,resultMap定义,多表联查,sql片段)

    1.mybatis02: mybatis-config.xml: <?xml version="1.0" encoding="UTF-8"?> &l ...

  10. python学习之数据类型(set)

    3.9 集合(set) 3.9.1 介绍 ​ 集合是一个无序且不重复的元素集合.元素必须是可哈希的(int,str,tuple,bool).可以把它看作是dic的key的集合.用{}表示. ​ 注意: ...