您所在的位置: 首页>>读书频道>>管理与生活>>技术职场>>

11.3 嵌套类

http://book.51cto.com  2007-08-20 14:14  欧立奇,朱梅,段韬  电子工业出版社易飞思公司  我要评论(0)
  • 摘要:《Java程序员面试宝典》一书对程序设计面试中Java常见的题型和常用解答技巧进行了介绍,它不仅能帮助求职者快速复习相关知识点,也对现代职业人如何有效求职、面试考官如何关注求职者动态等做了详细解说。本文是关于嵌套类面试例题。
  • 标签:应聘  嵌套  面试  Java  程序员  宝典  Java程序员面试宝典

11.3  嵌套类
面试例题1:请说明static nested class和inner class的不同。
答案:
1.nested(嵌套)class(一般是C++的说法)
nested class是合成型聚集关系(Composite Aggregation)的另一种表达方式,也就是说nested class也可以用Aggregation表达出来。但是,nested class更加精确地表达了一种专用的、紧耦合的关系,尤其在代码生成时,nested class在Java中映射成inline class。比如,计算机专用开关电源类可以作为计算机类的nested class,但是,电池组类就不一定适合作为计算机类的nested class,因为,电池组类表述的是一个过于通用的对象,可能还被包含(Aggregation)于模型中的其他设备对象。class A nested in class B,则说明A是一个nested class,一般A是用来完成B中的某种重要功能的。
2.inner class(一般是Java的说法)
Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
静态内部类(inner class)意味着:创建一个static内部类的对象,不需要一个外部类对象;不能从一个static内部类的一个对象访问一个外部类对象。
面试例题2:关于下面类的定义,以下哪种说法是正确的?[研华科技2005年11月面试题]

public class Droitwich{
class one{
private class two{
public void main(){
System.out.println("two");
}
}
}
}

A.此代码不能编译成功,因为该类嵌套了不止一层
B.此代码不能编译通过,因为class two是私有的
C.此代码可以编译通过,并且在运行的时候输出字符串two
D.此代码编译没有错误
解析:
内部类或嵌套类在类层级上没有限制,所以选项A是错误的。
内部类可以是私有类,所以选项B也是错误的。
选项C的main方法不是public static void main的,并且假设命令行是java Droitwich,它不能在任何地方被调用。
答案:D

【责任编辑:雪花 TEL:(010)68476606-8007】

回书目   上一节   下一节
思科认证之CCNP考试最新资料宝典
求职必杀技 决战面试官
程序员如何成长?
Java实用开发全集
网络故障排除宝典
 
 验证码: (点击刷新验证码)   匿名发表
  • 野蛮生长

  • 作者:冯仑著
  • “地产界的思想家”冯仑纵横生意江湖20年来,第一次系统梳理出书。  三十年来中国民营企业从前公司时代发展到公司时代,21..
Copyright©2005-2008 51CTO.COM 版权所有