• 内部类


    如何创建内部类的对象:

    package com.aff.inter;
    
    import com.aff.inter.Person.Dog;
    
    /*
     类的第五个成员:内部类
        1.类的内部定义的类
        2.内部类的分类:成员内部类(声明在类内部且方法外的 )vs 局部内部类(声明在类的方法里)
        3.成员内部类:
                           1.是外部类的一个成员: 可以有修饰符(四个)       ②static   final
                           2.具体类的特点:abstract      ②还可以在其内部定义属性,方法 ,构造器
    
        4.局部内部类
        5.关于内部类掌握三点:
                                           ① 创建成员内部类的对象
                                           ②如何区分外部类,内部类的变量
                                           ③局部内部类的使用
    */
    public class TestInnerClass {
        public static void main(String[] args) {
            // 创建静态内部类的对象,可以直接通过外部类调用静态内部类的构造器
            Person.Dog d = new Person.Dog();
    
            // Person.Bird b = new Person.Bird(); 创建不了,因为是非静态的
            // 创建非静态内部类的对象,必须先创建外部类的对象,通过外部类的对象调用内部类的构造器
            Person p = new Person();
            Person.Bird b = p.new Bird();
            b.info();
        }
    
    }
    
    class Person {
        String name;
        int age;
    
        // 成员内部类(非static的)
        class Bird {
            String name;
            int id;
    
            public Bird() {
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public void info() {
                show();
            }
        }
    
        // 成员内部类(static 静态的)
        static class Dog {
        }
    
        public void show() {
            System.out.println("show  shwo");
        }
    }

    局部内部类的使用:

    package com.aff.inter;
    
    //局部内部类的使用
    public class TestInnerCla {
    
    }
    
    class OutClass {
        // 局部内部类
        // 如下的使用方式比较少
        public void method1() {
            class InnerClass {
            }
        }
    
        // 常常使用一个方法,使其返回值为某个类或者接口的对象,而这个类或者接口在方法内部创建
        public Comparable getComparable() {
            // 创建一个实现Comparable接口的类:局部内部类
            class MyComparable implements Comparable {
    
                @Override
                public int compareTo(java.lang.Object o) {
                    return 0;
                }
            }
            // 返回一个实现类的对象
            return new MyComparable();
        }
    
        
        //匿名局部内部类对象
        public Comparable getComparable1() {
            // 创建一个实现Comparable接口的类:匿名局部内部类对象
            // 返回一个实现类的对象
            return new Comparable() {
    
                @Override
                public int compareTo(java.lang.Object o) {
                    return 0;
                }
            };
            
        }
    
    }
    输出结果:
    show  shwo
    All that work will definitely pay off
  • 相关阅读:
    开源工作流 Bonita BPM (JAVA)
    java怎么样判断一个进程是否已近结束
    struts2 Annotation 实现文件下载功能 文件名中文乱码问题
    struts2中s:radio标签的使用 Map
    Win7下声音由小逐渐变大
    JSTL EL 详解
    CHM格式 打开后不显示内容的解决办法
    jquery radio 判断是否被选中的例子
    火狐的funmoods都已经清除了,config里怎么还有他它的项目
    由MyEclipse内存不足谈谈JVM内存
  • 原文地址:https://www.cnblogs.com/afangfang/p/12576426.html
Copyright © 2020-2023  润新知