举例[实例内部类, 静态内部类
来源:互联网 发布:淘宝网商银行是什么 编辑:程序博客网 时间:2024/06/06 11:09
举例[实例内部类, 静态内部类]:
public class OnlyForTest {
- public static String staticOutMember = "Static Out Member";
- private String userName;
- private int age;
- //省略Getter/Setter
- public static void main(String[] args) {
- OnlyForTest oft = new OnlyForTest();
- //A1. 在创建实例内部类实例时, 外部类的实力必须已经存在.
- OnlyForTest.Inner inner = oft.new Inner();
- //A3. 一个外部类可以有多个内部类 因此不允许外部类直接调用内部类方法或属性, 在需要时, 使用内部类实例访问内部类成员
- //而内部类进对应一个外部类, 因此可以直接使用外部类的引用.
- oft.age = oft.new Inner2().age;
- inner.setOutInstanceNmae("tom");
- oft.new Inner2().print();
- //B1: 直接访问静态类静态成员, 不需创建实例.
- System.out.println(staticInnerClass.staticInnerMember);
- new staticInnerClass().printNmae();
- }
- class Inner {
- public void setOutInstanceNmae(String s){
- //A2. 实例内部类自动持有外部类实例的引用
- userName = s;
- System.out.println("内部类直接引用外部类实例 - 内部类赋值外部类成员 " + userName);
- }
- }//end of class Inner
- class Inner2 {
- int age= 2;
- //A4. 在实例内部类中不能定义静态成员, 只能定义实例成员.
- //报错!static int staticInt = 4;
- public void print() {
- System.out.println(userName);
- //A5. 当内部类与外部类有同名的成员时,如age
- //直接使用age或shis.age表示inner2内age
- //OnlyForTest.this.age表示外部类中的age
- System.out.println(age);
- System.out.println(OnlyForTest.this.age);
- //B2. 直接访问外部类的静态成员
- System.out.println(staticOutMember);
- }
- }//end of class Inner2
- static class staticInnerClass {
- public static String staticInnerMember = "Static Inner Member";
- public void printNmae() {
- //B3:静态内部类在访问外部类实例变量时, 必须通过外部实例
- OnlyForTest o = new OnlyForTest();
- o.userName = "set by Static Inner Class";
- System.out.println(o.userName);
- }
- }//end of staticInnerClass
0 0
- 举例[实例内部类, 静态内部类
- Java静态内部类实例
- 内部类,静态内部类
- 内部类----静态内部类
- 内部类及静态内部类的实例化
- 内部类及静态内部类的实例化
- 内部类及静态内部类的实例化
- 内部类及静态内部类的实例化
- 内部类与静态内部类的实例化
- 静态内部类&非静态内部类
- 静态内部类&非静态内部类
- 静态内部类&非静态内部类
- 内部类:非静态内部类,静态内部类,局部内部类,匿名内部类详解
- 内部类---静态内部类和非静态内部类
- 内部类 静态内部类 成员内部类 局部内部类 匿名内部类
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- 内部类(静态内部类 成员内部类 局部内部类 匿名内部类)
- 内部类---(静态内部类、成员内部类、匿名内部类、局部内部类)
- 锦标赛程序的优先队列的删除
- 禁止AutoCAD联网
- 过去的2013,进行的2014
- unity基础开发----常用代码鼠标滑动,触摸事件
- Android 常用权限一览表
- 举例[实例内部类, 静态内部类
- cocos2dx之CCUserDefault及其数据进行加密解密
- 恶补java(二)——java的面向对象
- 解决svn log显示no author,no date的方法之一。
- 【转】Android中对Log日志文件的分析
- JAVA基础——API(String)
- 微软云存储更换品牌 免费空间将翻番达到15GB
- Remove duplicates from sorted list
- linux【解压缩命令】