外语类 | 雅思 托福 四级 六级 专四专八 | 学历类 | 成考 高考 自考 考研 | 工程类 | 监理 质量 结构 安全 | 一级建造师 二级建造师 | 考试论坛
医学类 | 护士 药师 医师 外贸类 报关员 | 职业类 | 保险 司法 证券 导游 | 会计类 | 初级 中级 高级 注会 | 会计证考试 公务员考试 | 计算机类
考试动态 | 报考指南 | 公共基础 | 指导专业 | 历年真题 | 模拟试题 | 心得技巧 | 考试培训 | 考试论坛
考试中国—计算机频道网址:it.kswchina.com 这里有:计算机的各种等级和认证考试,一级,二级,三级,四级等多种等级认证的考试资料。
您现在的位置: 考试中国 >> 计算机 >> JAVA认证 >> 指导专业 >> 正文 考试网中国:www.kswchina.com
深入理解嵌套类和内部类
更新时间:2008-11-21  JAVA认证考试  收藏此文  收藏"考试中国"

    一、什么是嵌套类及内部类?

    可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:

    静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为

    内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:

    其一、在一个类(外部类)中直接定义的内部类;

    其二、在一个方法(外部类的方法)中定义的内部类;

    其三、匿名内部类。

    下面,我将说明这几种嵌套类的使用及注意事项。

    二、静态嵌套类

    如下所示代码为定义一个静态嵌套类,

public class StaticTest {
private static String name = "javaJohn";
private String id = "X001";
static class Person{
private String address = "swjtu,chenDu,China";
public String mail = "josserchai@yahoo.com";//内部类公有成员
public void display(){
//System.out.println(id);//不能直接访问外部类的非静态成员
System.out.println(name);//只能直接访问外部类的静态成员
System.out.println("Inner "+address);//访问本内部类成员。
}
}
public void printInfo(){
Person person = new Person();
person.display();
//System.out.println(mail);//不可访问
//System.out.println(address);//不可访问
System.out.println(person.address);//可以访问内部类的私有成员
System.out.println(person.mail);//可以访问内部类的公有成员

}
public static void main(String[] args) {
StaticTest staticTest = new StaticTest();
staticTest.printInfo();
}
}

    在静态嵌套类内部,不能访问外部类的非静态成员,这是由Java语法中"静态方法不能直接访问非静态成员"所限定。

    若想访问外部类的变量,必须通过其它方法解决,由于这个原因,静态嵌套类使用很少。注意,外部类访问内

    部类的的成员有些特别,不能直接访问,但可以通过内部类来访问,这是因为静态嵌套内的所有成员和方法默认为

    静态的了。同时注意,内部静态类Person只在类StaticTest 范围内可见,若在其它类中引用或初始化,均是错误的。

[1] [2] [3] 下一页

责任编辑:仰易
回全站首页      计算机考试专题--点击进入
相关文章
Java反射机制系列(一) 初识Java Reflection
Java语言的中文问题解决之道
注意JAVA中的ResultSet
Java中字符之间的转化
新Java管理工具HypericHQ4.0发布
纯Java实现ICMP的ping命令
给Java中的List排序
Hibernate Set排序
栏目推荐
微软认证真题
· 微软认证考试:70064Windows95考生回顾
· 微软的面试题及答案(超变态但很经典
· 微软认证考试:70064Windows95考生回顾
· 微软认证考试:70064Windows95考生回顾
· 微软认证考试:70064Windows95考生回顾
· [MCSE真题]正确配置IP地址以排错考题
Oracle认证真题
· 八、管理信息基本概念
· CCNA最新模拟考试题
· 网络管理员6道企业实战难题
· 思科Cisco认证最新真题50道:TCP/IP
· 关于Cisco路由协议题和答案(中文)
· Cisco试题库:ccna最新真题
Linux认证真题
· Ubuntu架设asp.net服务器
· ubuntu常用命令集合
· 利用多核多线程进行程序优化
· 从Linux命令行更新Twitter和FriendFe
· 对话 UNIX: 更多 shell 脚本技术
· 不必害怕Ubuntu的命令行
JAVA认证真题
· JAVA题库:JAVA面试题目整理
· SCJP认证套题解析之二
· SCJP认证套题解析之一
· SCJP考试题310-025(第二套)
· SCJP考试题310-025(第二套<1>)18-147
· SCJP考试题310-025(第二套<3>)51-91/
网站简介 | 服务条款 | 汇款方式 | 广告合作 | 发布优势 | 招聘人才 | 隐私保护 | 合作伙伴 | 友情链接 | 网站导航 | 帮助中心 |
COPYRIGHT (C) 2003-2008 BEIJING KSWCHINA.COM INC ◎ 考试中国 ALL RIGHTS RESERVED.网站法律顾问:姚克枫律师
《中华人民共和国电信与信息服务业务》信息产业 京ICP备06046971号 技术支持:嘉瑞恒通(北京)科技有限公司。