/**
* 测试java内部类(成员内部类,静态内部类,匿名内部类)
* 局部内部类不常用,就不写了。
* @package :java05
* @author shaobn
* @Describe :
* @Time: 2015-9-6 下午8:32:38
*/
public class TestInner { /**
* @author shaobn
* @Describe :
* @param args
* @Time : 2015-9-6 下午8:32:09
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
testInner_1();
testInner_2();
testInner_3(); }
public static void testInner_1(){
//成员内部类生成内部类对象方式一
Outer_1.Inner_1 oi_1 = new Outer_1().new Inner_1();
System.out.println("成员内部类生成内部类对象方式一");
oi_1.testIn_1();
//成员内部类生成内部类对象方式二
Outer_1 o_1 = new Outer_1();
System.out.println("成员内部类生成内部类对象方式二");
o_1.getInner_1().testIn_1();
//成员内部类生成内部类对象方式三
Outer_1 o_11 = new Outer_1();
System.out.println("外部类访问内部类对象的成员");
o_11.visitInner_1();
}
public static void testInner_2(){
//测试静态内部类
Outer_2 o_2 = new Outer_2();
o_2.visitInner_2();
Outer_2.Inner_2.testIn_2();
}
public static void testInner_3(){
Outer_3 o_3 = new Outer_3();
System.out.println("访问匿名内部类方法方式一");
//访问匿名内部类方法方式一
o_3._testInner_3(50).show();
System.out.println("访问匿名内部类方法方式二");
//访问匿名内部类方法方式二
o_3.testInner_3(50); } }
//测试成员内部类
class Outer_1{
private int age = 10;
//测试成员内部类
public class Inner_1{
public int age = 100;
public void testIn_1(){
int age = 1000;
//访问外部类中成员变量
System.out.println(Outer_1.this.age);
//访问内部类中的成员变量
System.out.println(this.age);
//访问内部类中的局部变量
System.out.println(age);
}
}
//获取内部类对象(推荐)
public Inner_1 getInner_1(){
return new Inner_1();
}
//外部类访问内部类成员
public void visitInner_1(){
System.out.println(getInner_1().age);
getInner_1().testIn_1();
} }
//测试静态内部类
class Outer_2{
private int age = 20;
private static int length = 40;
public static class Inner_2{
private String name = "静态内部类";
private static float weight = 'A';
public static void testIn_2(){
//System.out.println(name);静态内部类中的静态方法必须要访问方法外部的静态成员变量,否则访问不允许。
System.out.println(Outer_2.length);
} }
public Inner_2 getInner_2(){
return new Outer_2.Inner_2();
}
public Class<?> _getInner_2(){
return Outer_2.Inner_2.class; }
public void visitInner_2(){
System.out.println(getInner_2().name);
System.out.println(Outer_2.Inner_2.weight);
} }
//内部类实现接口
interface SuperIner_3{
void show();
}
//测试匿名内部类
class Outer_3{
private int age = 30;
//方式一
public SuperIner_3 _testInner_3(final int height){
final int weight = 40;
SuperIner_3 si_3 = new SuperIner_3() { @Override
public void show() {
// TODO Auto-generated method stub
System.out.println(Outer_3.this.age);
System.out.println(weight);//匿名内部类只能访问final类型局部变量
System.out.println(height);
}
};
return si_3; }
//方式二
public void testInner_3(final int height){
final int weiht = 40;
new SuperIner_3() {
@Override
public void show() {
// TODO Auto-generated method stub
System.out.println(Outer_3.this.age);
System.out.println(weiht);//匿名内部类只能访问final类型局部变量
System.out.println(height); }
}.show(); }
}

局部内部类不经常用就不写了,如有错误,望大家纠正。

Java内部类小程序(成员内部类,静态内部类,匿名内部类)的更多相关文章

  1. java的小程序在html中的运行测试

    java的小程序在html中的运行测试,打开vs2012,以网站模式打开,生成,调用iis临时服务器运行.

  2. 福利贴——爬取美女图片的Java爬虫小程序代码

    自己做的一个Java爬虫小程序 废话不多说.先上图. 目录命名是用标签缩写,假设大家看得不顺眼能够等完成下载后手动改一下,比方像有强迫症的我一样... 这是挂了一个晚上下载的总大小,只是还有非常多由于 ...

  3. Java 获取小程序openid(基于SpringBoot)

    Java 获取小程序openid(基于SpringBoot) 官方文档 wx.login 1.引入Request封装依赖 <!--Request依赖--> <dependency&g ...

  4. Java 编写小程序,下载指定网页上的所有图片

    使用Java编写一个小程序,可以根据指定的网页地址,下载网页中的所有图片:使用到网络编程.线程池.IO和UUID的技术.具体代码如下: import java.io.File; import java ...

  5. java独立小程序实现AES加密和解密

    一.需求: web项目中配置文件配置的密码是明文的, 现在需要修改成密文, 加密方式采用AES, 于是写了个工具类用于加密和解密. 又因为这个密码是由客户来最终确定, 所以为了部署时方便起见, 写了个 ...

  6. java微信小程序调用支付接口(转)

    简介:微信小程序支付这里的坑还是有的,所以提醒各位在编写的一定要注意!!! 1.首先呢,你需要准备openid,appid,还有申请微信支付后要设置一个32位的密钥,需要先生成一个sign,得到pre ...

  7. java微信小程序解密AES/CBC/PKCS7Padding

    摘要:微信小程序解密建议使用1.6及以上的环境使用maven下载jar包org.bouncycastlebcprov-jdk15on1.55加密类代码importorg.bouncycastle.jc ...

  8. Java网页小程序——Java Applet

    Java Applet是编译过的Java程序,可以在所有支持Java的浏览器中运行. 1.Applet的使用 import java.applet.Applet; import java.awt.Gr ...

  9. Java截图小程序源码

    Java编写的全屏截图小程序 package cnom.test.testUtils; import java.awt.AWTException; import java.awt.Dimension; ...

随机推荐

  1. js模拟类的公有与私有 方法与变量

    var myConstructor = function(message){ //实例变量 this.message = message; //私有变量,外部不可见.用var声明的变量具有块作用域 v ...

  2. C/C++ 获取汉字拼音首字母

    #include <stdint.h> #include <stdio.h> #include <ctype.h> #include <string.h> ...

  3. php--yii2.0的安装

    1.php.ini中去掉php_openssl.dll前面的“;” 2.注意phpstudy中php版本使用5.4n 3.环境OK后,使用自己的域名访问下yii2.0中advanced中的requir ...

  4. JS实现页面回到顶部效果

    [代码] <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  5. JS删除数组条目中重复的条目

    [腾讯2015春招web前端开发练习卷] 请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组. Array.prototyp ...

  6. C# 时间与时间戳互转 13位

    /// <summary> /// 将c# DateTime时间格式转换为Unix时间戳格式 /// </summary> /// <param name="t ...

  7. [LeetCode]题解(python):049-Groups Anagrams

    题目来源 https://leetcode.com/problems/anagrams/ Given an array of strings, group anagrams together. For ...

  8. github Mac端的使用案例

    1. 本地有一个仓库,是和网页版的github连接在一起的,平时用Terminal来控制的,怎么放在github的客户端呢? 解决办法: 1.1 点击左上角的+ 号,在弹出框中选择Add,然后choo ...

  9. oracle 中的存储过程

      oracle 中的存储过程 --oracle 中的存储过程, --不带任何参数的 CREATE OR REPLACE PROCEDURE PRO_TEST AS -- AS 和is 没有任何区别 ...

  10. iOS:WebKit内核框架的应用与解析

    原文:http://www.cnblogs.com/fengmin/p/5737355.html 一.摘要: WebKit是iOS8之后引入的专门负责处理网页视图的框架,其比UIWebView更加强大 ...