java内部类 2016年12月13号
1、在外部类的任意位置创建内部类对象的方法:
1)从外部类的非静态方法之外的任意位置创建某个内部类的对象,必须指明这个对象所在的外部类和内部类:OuterClassName.InnerClassName。如:
package cn.qdu.parcel;
/**
* 内部类的第一个例子
* @author cena 2016/12/13 at BoZhi
*
*/
public class Parcel {//外部类
class Contents{//内部类
private int i=11;
public int value(){
return i;
}
} class Destination{//内部类
private String label;
Destination(String whereTo){
label=whereTo;
}
String readLabel(){return label;}
}
//下面是外部类中定义的3个方法
public Destination to(String s){
return new Destination(s);
} public Contents contents(){
return new Contents();
} public void ship(String dest){
Contents c=contents();
Destination d=to(dest);
System.out.println(d.readLabel());
} public static void main(String[] args) {
Parcel p=new Parcel();
p.ship("Tasmaina");
Parcel q=new Parcel();
//在外部类的非静态方法之外的任意位置创建某个内部类的对象,必须具体地指明这个对象的类型:OuterClassName.InnerClassName。
Parcel.Contents c=q.contents();//定义内部类对象的方法
Parcel.Destination d=q.to("Borneo");
}
}
2)外部类的static方法建立内部类问题。如:
class Outer{//外部类
class Inner{//内部类
}
public static method(){
Outer out=new Outer();//要先创建外部类的对象
Inner in=out.new Inner();
}
}
method()方法属于外部类的静态方法,内部类Inner相当于外部类的一个非静态方法Inner(){},创建内部类对象时需要先创建外部类对象out,用外部类Outer的out对象之后才能去定义Inner对象,这个道理就如同在静态方法中不能直接调用非静态方法一样。
java内部类 2016年12月13号的更多相关文章
- 2016年12月13日 星期二 --出埃及记 Exodus 21:8
2016年12月13日 星期二 --出埃及记 Exodus 21:8 If she does not please the master who has selected her for himsel ...
- WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...
- 2016年12月18日 星期日 --出埃及记 Exodus 21:13
2016年12月18日 星期日 --出埃及记 Exodus 21:13 However, if he does not do it intentionally, but God lets it hap ...
- 北京Uber优步司机奖励政策(12月13日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 2019第一期《python测试开发》课程,10月13号开学
2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...
- 2016年12月31日 星期六 --出埃及记 Exodus 21:26
2016年12月31日 星期六 --出埃及记 Exodus 21:26 "If a man hits a manservant or maidservant in the eye and d ...
- 2016年12月30日 星期五 --出埃及记 Exodus 21:25
2016年12月30日 星期五 --出埃及记 Exodus 21:25 burn for burn, wound for wound, bruise for bruise.以烙还烙,以伤还伤,以打还打 ...
- 2016年12月29日 星期四 --出埃及记 Exodus 21:24
2016年12月29日 星期四 --出埃及记 Exodus 21:24 eye for eye, tooth for tooth, hand for hand, foot for foot,以眼还眼, ...
- 2016年12月28日 星期三 --出埃及记 Exodus 21:23
2016年12月28日 星期三 --出埃及记 Exodus 21:23 But if there is serious injury, you are to take life for life,若有 ...
随机推荐
- iOS设计模式之命令模式
命令模式 基本理解 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化:对请求队列或记录请求日志,以及支持客可撤离的操作. 苹果的Target-Action ...
- Objective-c 基础框架(初学者-总结)
一个框架其实就是一个软件包,它包含了多个类.Mac 操作系统提供了几十个框架,主要帮助开发者快速的在Mac 系统上开发应用程序.其中包括一些基础框架,就是为所有程序开发提供基础的框架,其中几个常用的类 ...
- C语言-12-日期和时间处理标准库详细解析及示例
概述 标准库 提供了用于日期和时间处理的结构和函数 是C++语言日期和时间处理的基础 与时间相关的类型 clock_t,本质是:unsigned long typedef unsigned long ...
- 深入理解CSS中的层叠上下文和层叠顺序
零.世间的道理都是想通的 在这个世界上,凡事都有个先后顺序,凡物都有个论资排辈.比方说食堂排队打饭,对吧,讲求先到先得,总不可能一拥而上.再比如说话语权,老婆的话永远是对的,领导的话永远是对的. 在C ...
- AOP这些应用场景(交叉业务)
1.统计某个方法的性能,可以在每个业务方法执行前后 记录方法执行的当前时间,执行后的时间-执行前的时间= 方法执行时间. 这样就可以在开发过程中(项目未交付给客户前)统计程序的性能. 2.安全 ,权 ...
- 20个简化开发任务的 JavaScript库
所谓JavaScript库就是预先写好的可以简化基于JavaScript的应用程序开发的,尤其是Ajax和其它以web为中心的技术的 JavaScript代码集.JavaScript主要用于写内嵌于H ...
- 调研Android平台的开发环境的发展演变
· 安卓是以linux为基础的开放源码操作系统.因为安卓的开源等原因,所以现在市场上会有大量的APP可供使用,且各个方面都功能强大. · 也许是因为开源的原因,安卓过于碎片化.每个APP互相独立. ...
- 一步步学敏捷开发:5. Scrum的4种会议
在Scrum会议中包括:计划会议.每日站会.评审会议和回顾会议. 1.Sprint计划会(Sprint Planning) 在Scrum中,Sprint计划会议有两部分:1. 决定需要完成哪些工作?2 ...
- cxf开发Restful Web Services
一.restful web services rest全称是Representation State Transfer(表述性状态转移).它是一种软件架构风格,只是提供了一组设计原则和约束条件.在re ...
- C语言的函数
"函数"在英文的翻译是"function",无论在自然科学还是计算机科学都是这个词,而"function"的本意是"功能" ...