`
davidxiaozhi
  • 浏览: 243938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天学一点(内部类)

阅读更多

每天学一点,今天正好学习学习内部类,长时间不用,好动东东忘光了。总结一下吧,所谓内部类就是在类的内部申明另一个类,因为只有当前类能够访问到内部类,所以内部类相对来说是非常安全的,另外内部类可以继承和实现 其他类和接口,所以可以用多个内部类变相的实现多继承(其实接口就可以模拟多继承)。另外用内部类可以实现闭包的功能。

内部类大概包括普通内部类、静态内部类(也叫嵌套类)、匿名内部类。下面给几个例子

 

CommoneInnerClass是一个普通的内部类、InnerClass为一个静态内部类、在main方法里分别为二者的创建访问方式

 

 

package com.ec.test.innerclass;

public class OuterClass {
    public static class InnerClass{
    	
    }
    public  class CommoneInnerClass{
    	
    }
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//静态内部类的内部创建
		OuterClass.InnerClass ob=new OuterClass.InnerClass();
		//静态内部类在内部创建可以省略为如下和静态方法调用似的
		InnerClass ob1=new InnerClass();
		//普通内部类创建 需要外部类实例
		OuterClass.CommoneInnerClass obj3=new OuterClass().new CommoneInnerClass();
		//匿名内部类的创建 匿名内部类没有名字只有一对大括号 
		Thread t=new Thread(){
			public void start(){
				System.out.println("你好啊");
			}
		};
		t.start();
		//内部类可以模拟多继承,实现类似闭包的功能,更加具有安全性,因为只有外部类才能访问内部类
	}
	public void test(){
		new CommoneInnerClass();
	}

}

 

   匿名内部类、通过匿名内部类可以模拟闭包等功能

 

//匿名内部类的创建 匿名内部类没有名字只有一对大括号 
		Thread t=new Thread(){
			public void start(){
				System.out.println("你好啊");
			}
		};

静态内部类和普同内部类的区别,静态内部类可以有静态的属性和方法。而普通的不行

 

 在使用匿名内部类时,要记住以下几个原则:

 ·匿名内部类不能有构造方法。

 ·匿名内部类不能定义任何静态成员、方法和类。

 ·匿名内部类不能是public,protected,private,static。

 ·只能创建匿名内部类的一个实例。

 ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。

 ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。

 

  匿名类和内部类中的中的this :

  有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。

  这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。

 

1
5
分享到:
评论
2 楼 haohao-xuexi02 2011-03-14  
很详细嘛。
1 楼 vigorsoft 2011-03-14  
学习了。。。

相关推荐

    Javaweb开发学习手册

    在使用网络资源进行学习时,这一点尤为重要,因为网络上的确存在大量没有得到授权或违反版权的内容。用户在使用时,需要确认资源的来源合法,以及自己是否有权使用。 接着,手册中出现了“Java学习群”的信息,这是...

    塑造一流的企业内部培训师.doc

    课程开篇首先介绍企业培训的最新发展趋势,这一点至关重要,因为它决定了培训师在教学内容和方法上的调整。在这个部分,培训师可以了解到如何结合企业的实际需求,选择适合的培训工具和方法。此外,课程还深入探讨...

    Vue.js每天必学之内部响应式原理探究

    Vue.js通过在初始化时对所有响应式属性添加getter和setter来实现这一点。当某个属性被访问时,它的getter会被触发,如果这个属性是响应式的,那么此时它可以进行依赖收集。当属性被修改时,它的setter会被调用,这会...

    每天背一背神清气爽.zip

    2. 集合框架:熟悉List、Set、Map等接口及其实现类的使用场景和内部机制。 3. 多线程和并发编程:了解线程的生命周期、同步与锁机制、并发集合和原子操作等。 4. Java I/O流:掌握字节流和字符流的区别,以及如何...

    锋利的jQuery实例

    更复杂的,如`$("div .innerClass")`可以选取所有在div内的拥有.innerClass类的元素。 二、DOM操作 jQuery提供了简洁的API来操作DOM(文档对象模型)。例如,`$(element).html()`可以获取或设置元素的HTML内容,`$...

    Java.Web开发学习手册

    最后,内容中提供了一个解决方案,即加入特定的Java学习群(java学习群:***),在那里,每天晚上8:30到11:30有来自腾讯、百度、阿里等企业的首席架构师进行免费讲课。这透露出几点重要的信息:首先,参与高质量的...

    每天写出好代码的5个建议

    - **遵循编码规范**:无论是团队内部还是特定项目中,都应该有一套统一的编码标准和规范,这有助于提高代码的一致性和可读性。 - **代码审查**:定期进行代码审查可以帮助发现潜在的问题并及时修复,同时也促进了...

    每天一个Case(010).pdf

    标题和描述中提到的“每天一个Case(010).pdf”和“每天一个Case(010)本Case来自于CCIELab的H1CFG系列问题”表明了文档是关于CCIELab中一个名为H1CFG的系列案例研究。这个案例系列可能被用于教育或者专业培训,...

    LINGO软件的学习

    学完本节后,你对基于建模技术的集如何引入模型会有一个基本的理解。 2.1 为什么使用集 集是LINGO建模语言的基础,是程序设计最强有力的基本构件。借助于集,能够用一个单一的、长的、简明的复合公式表示一系列相似...

    Bootstrap每天必学之滚动监听

    activate方法则用于激活对应的导航链接,它会清除之前的激活状态,然后根据当前滚动位置计算应该激活的链接,并通过添加"active"类来实现高亮。 以上就是在Bootstrap框架中实现滚动监听的核心知识点,包括Scrollspy...

    2020年大学生办公室文员毕业实习总结学习总结.doc

    在这个过程中,我深入理解了办公室工作的核心,尤其是公司内部的规则、办公室文化和有效沟通的技巧。 首先,实习期间,我意识到细心是办公室文员工作的关键。在日常工作中,我负责处理大量的文件,每个细节都至关...

    六年级数学成正比例的量PPT教案学习.pptx

    这个概念不仅在数学学科内部有其重要地位,同时它在现实生活中也广泛存在,是解决实际问题的重要工具。今天我们将通过“六年级数学成正比例的量PPT教案学习”这个主题,深入探讨这一重要的数学概念。 成正比例的量...

    从0开始学习支付系统搭建-核算对账核心

    为了确保这一点,支付公司必须及时与银行进行各种业务的资金核对。资金核对依赖于银行的清算对账系统。银行流入的资金由银行控制资金结转清算和对账时间。客户通过银行向支付机构充值的资金,银行实时通知支付机构...

    PERL语言编程

    <br/>因为 Perl 既强大又好用,所以它被广泛地用于日常生活的方方面面,从宇航工程到分子生物学,从数学到语言学,从图形处理到文档处理,从数据库操作到网络管理。很多人用 Perl 进行快速处理那些很难分析或...

    文员类面试经验整理

    ### 文员类面试经验整理 #### 一、面试常见问题及回答技巧 1. **自我评价中的缺点**:“你认为自己的缺点是?” - 正确回答:可以从成长的角度来回答这个问题,例如,“我有时候可能会过于追求完美,导致在某些...

    【Java设计模式】你对单例模式了解多少,一文深入探究

    目录单例模式懒汉式单例模式未初始化问题解决Double Check 双重检查方案一:不让第二步和第三步重排序-DoubleCheck方案二:基于类初始化-静态内部类饿汉式饿汉式与懒汉式最大区别序列化破坏单例模式原理枚举单例基于...

    学习型家庭标兵事迹材料.docx

    知识是社会发展的动力,这一点在他们的家庭中得到了充分的体现。他们深知,书籍是知识的载体,通过阅读,他们能够吸收前人的智慧,扩展视野,丰富思想。因此,他们共同致力于营造一个充满学术气息的家庭环境,购置...

    2019软件工程师个人总结.doc

    这一点让我明白,无论拥有何种学历,持续学习和不断积累实战经验才是保证长期竞争力的关键。 对于职业规划,我认识到了方向的明确性对于个人发展的重要性。面对可能的选择,如深化专业技术能力、转向管理岗位或开创...

    Ext 开发指南 学习资料

    4.8. 关于表单内部控件的布局问题 4.8.1. 什么都不做,默认的平铺布局 4.8.2. 分裂,分列 4.8.3. fieldset是个神奇的东西 4.8.4. 当某一天,需要往form加个图片什么的,该咋办? 4.9. 还要做文件上传哟 4.10. 非想非...

    财税实务开票软件月末提醒(附办税日历).doc

    每天学习一点新的内容,通过实践找到自身的薄弱环节,定制适合自己的学习计划,是提高专业技能的有效途径。同时,保持对新政策、新规定的敏感性,能够帮助财务人员适应不断变化的业务环境,为企业提供更优质的财务...

Global site tag (gtag.js) - Google Analytics