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; ...
随机推荐
- 安装SQL Server出现在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法
以下是错误报告: 标题: SQL Server 安装程序失败. ------------------------------ SQL Server 安装程序遇到以下错误: 在创建窗口句柄之 ...
- 比较java与c语言中数字转换成字符的不同
java java中将数字转换成字符非常方便,只要用一个"+"然后在跟一个空格行了.比如,你输入一个122 ,就会变成"122 ". import java.u ...
- 算法训练 A+B Problem
算法训练 A+B Problem 时间限制:1.0s 内存限制:512.0MB 问题描述 输入A,B. 输出A+B. 输入格式 输入包含两个整数A,B,用一个空格分隔. 输出格式 ...
- 1066 Bash游戏
1066 Bash游戏 基准时间限制:1 秒 空间限制:131072 KB 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜.假设A B都非常聪明, ...
- asp:gridview 中显示日期格式
boundfield中应该这样设置: <asp:BoundField HeaderText="发表时间" DataField="PostTime" Htm ...
- 使用sql语句查询日期在一定时间内的数据
使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年 ...
- iOS初级数据持久化 沙盒机制 归档与反归档
数据持久化就是数据保存成文件,存储到程序中的沙盒中. 沙盒构成 Document 存储用户数据,需要备份的信息 Caches 缓存文件, 程序专用的支持文件 Temp 临时文件 通过代码查找程序沙盒的 ...
- Winform项目调用asp.net数据接口
最近一个WPF项目需要改写成android项目,思路是在asp.net项目中编写一个通用接口,便于其它平台下调用数据.刚接触到这些东西的时候完全是一头雾水,最根本的原因是不明白网站中的一个网页,为什么 ...
- MOGRE学习笔记(2) - MOGRE基础知识总结
前一篇配置了MOGRE的运行环境,这里记录一些MOGRE基础知识,仅仅是最基础的一些东西.由于本人接触ogre的时间比较短,对于很多知识都是一知半解,所以理解起来不免会有一些错误,本人也希望自己在对o ...
- js 如何清除setinterval
var id=window.setInterval(function(){ },1000);window.clearInterval(id);