Java 基础 面向对象- 成员内部类/局部内部类/举例Comparable 接口的匿名内部类

笔记:

package 任务135;
/**类的 内部类,
 *1.相当于说, 我们可以在类的内部再定义类,
 * 2.成员内部类:
 *          a.是外部类的一个成员,4个修饰符:static, final ,abstract ,可以调用外部类的属性和方法
 *          b.具有类的特点:
 * 3.局部内部类:(定义在类的方法中! )
 *      常常使用一个方法,使其成为某个类或接口的对象, 而这个类或者接口在方法内部创建
 * 4.或者 new___(){}返回一个匿名的 实现这个类的对象
 * 4.重点:  1)创建 2)如何区分调用外部类和内部类的变量; 3)局部内部类的使用
*/

代码:

public class TestInnerClass {
    public static void main(String[] args) {
        Person.Dog d= new Person.Dog();  //静态的创建对象的方法
                    //非静态的内部类的对象,需要先创建外部类的对象,通过外部类的对象调用内部类的对象
        Person p=new Person();
        Person.Bird b=p.new Bird();
        b.setName("杜鹃2333");
    }
}
class Person{
    String name="韩梅梅";
    int age;
            //成员内部类,非静态的
    class Bird{
        String name="黄鹂";
        int id;
        public Bird() {
        }

        public void setName(String name) {
            System.out.println(name);
            System.out.println(this.name);
            System.out.println(Person.this.name);
        }
        @Override
        public String toString() {
            return "Bird{" +
                    "name='" + name + '\'' +
                    ", id=" + id +
                    '}';
        }
    }

    //成员内部类,静态的
    static class Dog{

    }
    public void show(){
        System.out.println("我是show 方法");
    }
    public void method1(){

    }

}

//局部内部类的使用
//常常使用一个方法,使其成为某个类或接口(Comparable)的对象, 而这个类或者接口在方法内部创建
class TestOuterClass{   //返回一个实现这个类的 对象
    public Comparable getComparable(){
        class MyComparable implements Comparable{
            @Override
            public int compareTo(Object o) {
                return 0;
            }
        }
        return new MyComparable();
    }
                        //返回一个匿名的 实现这个类的对象
    public Comparable getComparable2(){
        return new Comparable(){
            public int compareTo(Object o) {
                return 0;
            }
        };
    }
}

输出:

杜鹃2333
黄鹂
韩梅梅

猜你喜欢

转载自www.cnblogs.com/zhazhaacmer/p/9783823.html
今日推荐