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
黄鹂
韩梅梅
你不逼自己一把,你永远都不知道自己有多优秀!只有经历了一些事,你才会懂得好好珍惜眼前的时光!