(转)java 静态内部类】的更多相关文章

内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象.所以你可以认为内部类提供了某种进入其外围类的窗口.使用内部类最吸引人的原因是:每 个内部类都能独立地继承自一个(接口的…
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合,我并不是很清楚,留下一些值得思考的问题作为记录,说不定以后能自己来填.于是就会有这篇文章啦. 常规使用方法我也不想介绍,网上一大把,我就说说比较容易错的,值得注意的地方. 注意 这篇文章只是分享一下我对内部类的一些研究与困惑吧,说不定对大家有帮助,说不定能引导大家一起思考学习.Java语法知识其实…
在Java世界里,经常被提到静态这个概念,static作为静态成员变量和成员函数的修饰符,意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见. 1.静态内部类的作用就是为了给外部类单独使用,所以无需再创建一个额外的类 2.静态内部类只能访问静态的成员和方法,不能访问非静态的 3.静态内部类可以直接实例化,如Inner i=new Inner();,而非静态内部类则需要外部类的对象去创建内部类实例. 静态内部类的特点就个静态成员已经静态方法…
参考文章:[https://www.cnblogs.com/maohuidong/p/7843807.html] 前言: 在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下. 一.学习前千的疑问: 稍微了解Java虚拟机内的加载过程的步骤,都很清楚,一个类的静态资源.一些常量都是在类加载的时候就被加载金内存中分配空间了,所以我一开始理所当…
转自:http://blog.sina.com.cn/s/blog_605f5b4f0100zbps.html 参考:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html 参考:http://stackoverflow.com/questions/16999611/hashmap-this-clear-what-does-this-mean-how-does-this-work static class 静态类(Java)…
Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又分为:常规内部类.局部内部类.匿名内部类和静态嵌套类四种. 1.静态内部类定义 静态内部类,定义在类中,任何方法外,用static定义:静态内部类只能访问外部类的静态成员. 生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别.静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner():而不需要通过生成外部类对象来生成.这样实际上使静态内部类成为了一个顶级类.…
内部类其实并不是非要声明成static的..主要还是要看实际情况决定..静态和非静态有不同的作用.. 引用一篇文章给楼主参考下吧. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的.由于静态的内部类在定义.使用的时候会有种种的限制.所以在实际工作中用到的并不多.  在开发过程中,内部类中使用的最多的还是非静态地成员内部类.不过在特定的情况下,静态内部类也能够发挥其独特的作用.  一.静态内部类的使用目的.  在定义内部类的时候,可…
内部类可以是静态(static)的,可以使用 public.protected 和 private 访问控制符,而外部类只能使用 public,或者默认. 成员式内部类 在外部类内部直接定义(不在方法内部或代码块内部)的类就是成员式内部类,它可以直接使用外部类的所有变量和方法,即使是 private 的.外部类要想访问内部类的成员变量和方法,则需要通过内部类的对象来获取. public class Outer{ private int size; public class Inner { pub…
1.静态内部类可以在外部类的静态成员中访问或者实例化(非静态内部类不可以)---优势 2.静态内部类可以访问外部类的静态成员不可以访问非静态成员(非静态内部类可以访问类的静态和非静态成员)---限制 3.静态内部类可以申明静态成员(非静态内部类则不可以申明静态成员) 4.在外部类外创建该外部类的内部静态类,不用依附于外部类的实例(而非静态内部类则需要依赖于外部类的实例)…
静态内部类(嵌套类)的对象除了没有对生成它的外部类对象的引用特权外,与其他所有内部类完全一样. 在内部类不需要访问外部类时,应该使用静态内部类(嵌套类). 与常规内部类不同的是,静态内部类可以拥有静态域和方法. 在接口中声明的内部类自动成为static和public类.…