/**
* 内部类详解
*
* @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. vue 钩子函数中获取不到DOM节点

    原文链接:https://jingyan.baidu.com/article/f96699bbfe9c9d894f3c1b4b.html 两种解决方案: 1:官方解决方案: 受到 HTML 本身的一些 ...

  2. python - re正则匹配模块

    re模块 re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re ...

  3. 介绍一下 NDK?

    1.NDK 是一系列工具的集合 NDK 提供了一系列的工具,帮助开发者快速开发 C(或 C++)的动态库,并能自动将 so 和 java 应用一起打包成 apk.NDK 集成了交叉编译器,并提供了相应 ...

  4. 使用ViewPager实现广告自动轮播的效果

    package com.loaderman.viewpgerlunbodemo; import android.os.Bundle; import android.os.Handler; import ...

  5. 找回从pycharm中删除的文件及文件夹

  6. spingboot之Java邮件发送

    注意: 该项目的工具类可以直接应用于项目 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> < ...

  7. maven pom.xml设置jdk编译版本为1.8

    <build> <finalName>myweb</finalName> <plugins> <!--JDK版本 --> <plugi ...

  8. Git 提交 .gitignore文件

    问题描述 不知道小伙伴有木有遇到这种情况:想在工程里增加 .gitignore 文件,用于在以后提交后,过滤哪些文件或者目录. 但是,在当前工程的根目录下,执行如下执行命令后,依然不能把 .gitig ...

  9. LeetCode.1010-歌曲总长度可被60整除的对数

    这是小川的第377次更新,第405篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第239题(顺位题号是1010).在歌曲列表中,第i首歌曲的持续时间为[i]秒. 返回其总 ...

  10. heartbeat高可用

    一.基本了解 1.Hearbeat和keepalived区别Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称V ...