上篇文章--笔记19简要介绍了成员内部类.局部内部类和匿名内部类,下面对成员内部类再补充一些内容. 主要有以下6点: 1.成员内部类不可以有静态成员,成员变量为static final时除外 2.外部类不可以直接访问成员内部类的成员变量或调用成员内部类的成员方法 3.成员内部类可以无限制的访问外部类的成员变量.调用外部类的成员方法 4.成员内部类的成员与外部类成员同名时,内部类成员会屏蔽外部类的同名成员 5.成员内部类本身可以由访问权限修饰符修饰 6.成员内部类的成员变量和成员方法也可以由访问权…
上篇文章--笔记20补充说明了前四点,这里接着来说剩下的两点. 要点如下: 5.访问权限修饰符可以修饰成员内部类 1).访问权限修饰符对内部类的访问限制与外部类的一般成员遵循一样的规则,具体请参考笔记10: 2).这里涉及到的子类是外部类的子类: 6.访问权限修饰符可以修饰成员内部类的成员变量和成员方法 1).成员内部类可由4种访问权限修饰符修饰,每种内部类的成员方法或变量也可由4种访问权限修饰符修饰,所以分16种情况来讨论: 2).修饰类时涉及到的子类是外部类的子类:修饰内部类的成员方法或变量…
Java学习笔记之---内部类 (一)成员内部类 内部类在外部使用时,无法直接实例化,需要借助外部类信息才能实例化 内部类的访问修饰符可以任意,但是访问范围会受到影响 内部类可以直接访问外部类的成员,如果出现重名属性,优先访问内部类中定义的 可以使用外部类.this.成员的方法,访问外部类中同名的信息 外部类访问内部类信息,需要通过内部类实例,无法直接访问 内部类编译后.class文件命名:外部类$内部类.class 实例 public class People { private String…
内部类,顾名思义,即定义在某个类内部的类,称包含该内部类的类为外部类. 从定义的位置来说,分为成员内部类和局部内部类:从类的特征来说,分为匿名内部类和静态内部类. 今天先简要介绍一下前三种内部类的定义及简单使用. 如需转载请注明出处,谢谢: http://www.cnblogs.com/chanchan/p/8235169.html 1.成员内部类 成员内部类可看成外部类的一个成员,定义的位置与外部类的其他成员一样,只不过它是个类而已. 示例: 类Person中定义了一个成员内部类InnerCl…
内部类 形式:把一个类定义在一个类的内部. 分为:成员内部类和匿名内部类重点掌握 a) 成员内部类 b) 静态成员内部类 c) 匿名内部类 d) 局部内部类 (1)成员内部类: Java的语言是面向对象的语言,有一个对象必须先创建类.当你类中的某个属性是你自己特有的,某些行为是属于你这个类特有的.通过成员内部类的方式来创建出这种一次性的属性和方法 成员内部类也会适用于线程的情况下. 代码: 总结: 先创建外部类对象,再通过外部类对象.new 内部类名()的方式创建对象 School school…
编写java程序时,一般一个类(或者接口)都是放在一个独立的java文件中,并且类名同文件名(如果类是public的,类名必须与文件名一致:非public得,无强制要求).如果想把多个java类放在一个java文件中,则只能有一个public类.如下面的两个类放在同一个文件中就会报错,无法编译通过. 可以看出,因为TestOne.java文件中已经有一个public类TestOne,这时再加了一个public类TestTwo就报错了.如果将类TestTwo前面的public修饰符去掉就没有问题了…
什么是内部类 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 为什么要使用内部类 ①内部类提供了更好的封装,除了该外围类,同一个包下的其他类都不能访问 ②内部类并没有令人迷惑的"is-a"关系,他就是一个独立的实体 ③内部类可以对同一个包中的其他类隐藏起来,一般…
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 内部类(嵌套类):把类定义在其他类的内部,这个类被称为内部类(嵌套类) // 内部类的分类:(根据所在位置及形式的不同) // 1.成员内部类 // 2.静态内部类 // 3.局部内部类 // 4.匿名内部类 // 1.成员内部类:联想到成员变量和成员方法,内部类所在位置和类的成员同级 // 观察一下生成的字节码文件…
1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) { getCount("IamHandsome666"); } public static void getCount(String str) { int upper = 0; int lower = 0; int digit = 0; for (int i = 0; i < str…
集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public class Person { private String name; private int age; public Person() { super(); } public Person(String name, int age) { super(); this.name = name; this.…