Java内部类小程序(成员内部类,静态内部类,匿名内部类)
/**
* 测试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内部类小程序(成员内部类,静态内部类,匿名内部类)的更多相关文章
- java的小程序在html中的运行测试
java的小程序在html中的运行测试,打开vs2012,以网站模式打开,生成,调用iis临时服务器运行.
- 福利贴——爬取美女图片的Java爬虫小程序代码
自己做的一个Java爬虫小程序 废话不多说.先上图. 目录命名是用标签缩写,假设大家看得不顺眼能够等完成下载后手动改一下,比方像有强迫症的我一样... 这是挂了一个晚上下载的总大小,只是还有非常多由于 ...
- Java 获取小程序openid(基于SpringBoot)
Java 获取小程序openid(基于SpringBoot) 官方文档 wx.login 1.引入Request封装依赖 <!--Request依赖--> <dependency&g ...
- Java 编写小程序,下载指定网页上的所有图片
使用Java编写一个小程序,可以根据指定的网页地址,下载网页中的所有图片:使用到网络编程.线程池.IO和UUID的技术.具体代码如下: import java.io.File; import java ...
- java独立小程序实现AES加密和解密
一.需求: web项目中配置文件配置的密码是明文的, 现在需要修改成密文, 加密方式采用AES, 于是写了个工具类用于加密和解密. 又因为这个密码是由客户来最终确定, 所以为了部署时方便起见, 写了个 ...
- java微信小程序调用支付接口(转)
简介:微信小程序支付这里的坑还是有的,所以提醒各位在编写的一定要注意!!! 1.首先呢,你需要准备openid,appid,还有申请微信支付后要设置一个32位的密钥,需要先生成一个sign,得到pre ...
- java微信小程序解密AES/CBC/PKCS7Padding
摘要:微信小程序解密建议使用1.6及以上的环境使用maven下载jar包org.bouncycastlebcprov-jdk15on1.55加密类代码importorg.bouncycastle.jc ...
- Java网页小程序——Java Applet
Java Applet是编译过的Java程序,可以在所有支持Java的浏览器中运行. 1.Applet的使用 import java.applet.Applet; import java.awt.Gr ...
- Java截图小程序源码
Java编写的全屏截图小程序 package cnom.test.testUtils; import java.awt.AWTException; import java.awt.Dimension; ...
随机推荐
- js弹出确认框,挺全
一种: <a href="javascript:if(confirm('确实要删除该内容吗?'))location='http://www.google.com'">弹 ...
- Linq&Lumbda
var y = from model in list.Where(s=>s.product==product||product=="") ...
- Haskell解决逆波兰式
摘自<Haskell趣学指南- Learn You a Haskell for Great Good> {- 逆波兰式(revese polish notation, RPN): 操作符出 ...
- CSS优先级别计算
a.b.c.d,可以以这四种等级为依据确定CSS选择器的优先级: a-----style 行内样式 个数 +1000 b-----id 个数+100 c-----类 个数+10 d-----类型个数 ...
- Cocos2d-JS引入其他场景小实例
创建新项目,目标是把LogoNode.js场景引入app.js 新建LogoNode.js var LogoLayer = cc.Layer.extend({ ctor:function () { t ...
- LINQ之select方法选择多个字段
单个字段: var list1 = list.Select(field1 => field1.CouponID).ToList(); 多个字段: var list1 = list.Select( ...
- js - 驼峰命名
1. // 驼峰命名 console.log(hump('border-bottom-color')) function hump( str) { if (typeof str != 'string' ...
- POJ1528问题解答
#include <iostream>#include <cstdio>#include <cmath> #include <string>#inclu ...
- 什么是webshell?
webshell是web入侵的脚本攻击工具. 简单的说来,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些 asp或php木马后门文件放置在网站服务器的web目录中 ...
- 由一个Servlet 看java入门常犯的几个错误
安装完java环境后,cmd-javac 报错 ------------->环境变量配错了,最后全配成系统变量,ok了 能浪费一天的时间 写一个最简单的Servlet ,to ...