博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内部类
阅读量:4049 次
发布时间:2019-05-25

本文共 1760 字,大约阅读时间需要 5 分钟。

-- Start

定义在类中的内部类

public class Test {	public static void main(String[] args) throws Exception {		Outer o = new Outer("尚波"); // 要想实例化内部类, 首先必须得到外部类对象		Outer.Inner i = o.new Inner(); // 用特殊的 new 语法来构造内部类对象		System.out.println(i.getName()); // 调用内部类的方法	}}class Outer {	private String name;	Outer(String name) {		this.name = name;	}	class Inner {		String getName() {			return name; // 内部类可以访问外部类的域		}	}}

定义在类中的静态内部类

public class Test {	public static void main(String[] args) throws Exception {		Outer.Inner i = new Outer.Inner("尚波"); // 静态内部类只和外部类关联, 和外部类对象没有关系,所以不需要实例化外部类对象		System.out.println(i.getName());	}}class Outer {	static class Inner {		private String name;		Inner(String name) {			this.name = name;		}		String getName() {			return name;		}	}}

定义在方法中的内部类

public class Test {    public static void main(String[] args) throws Exception {        Outer o = new Outer();        o.print("尚波");    }}class Outer {    Outer() {    }    void print(final String name) { // 为了使内部类的方法可以访问 name, name 必须定义为 final        // 定义内部类        class Inner {            void print() {                System.out.println(name);            }        }        // 实例化内部类        Inner i = new Inner();                // 调用内部类的方法        i.print();    }}

定义在方法中的匿名内部类

public class Test {	public static void main(String[] args) throws Exception {		Outer o = new Outer();		o.print("尚波");	}}class Outer {	Outer() {	}	void print(final String name) { // 为了使匿名内部类的方法可以访问 name, name 必须定义为 final		// 定义及实例化匿名内部类, 由于匿名内部类没有名字, 所以在定义的同时必须实例化		Printer p = new Printer() {			public void print() {				System.out.println(name);			}		};		// 调用匿名内部类的方法		p.print();	}}interface Printer {	void print();}

---
更多参见:
--
声 明:转载请注明出处
-- Last Updated on 2012-05-25
-- Written by ShangBo on 2012-05-25
-- End
你可能感兴趣的文章
Solr及Spring-Data-Solr入门学习
查看>>
Vue组件
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
<转>文档视图指针互获
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
javascript传参字符串 与引号的嵌套调用
查看>>
swiper插件的的使用
查看>>
layui插件的使用
查看>>
JS牛客网编译环境的使用
查看>>
9、VUE面经
查看>>
关于进制转换的具体实现代码
查看>>
Golang 数据可视化利器 go-echarts ,实际使用
查看>>
mysql 跨机器查询,使用dblink
查看>>
mysql5.6.34 升级到mysql5.7.32
查看>>
dba 常用查询
查看>>
Oracle 异机恢复
查看>>