• JAVA学习--内部类


    * 类的第5个成员:内部类
     

    * 1.相当于说,我们可以在类的内部再定义类。外面的类:外部类。里面定义的类:内部类
     * 2.内部类的分类:成员内部类(声明在类内部且方法外的)  vs 局部内部类(声明在类的方法里)
     * 3.成员内部类:
     *         3.1是外部类的一个成员:①可以有修饰符(4个)②static final ③可以调用外部类的属性、方法
     *             
     *         3.2具体类的特点:①abstract ②还可以在其内部定义属性、方法、构造器
     *
     * 4.局部内部类:
     *
     * 5.关于内部类,大家掌握三点:
     *   ①如何创建成员内部类的对象(如:创建Bird类和Dog类的对象)
     *   ②如何区分调用外部类、内部类的变量(尤其是变量重名时)
     *   ③局部内部类的使用 (见TestInnerClass1.java)
     *
     
     1 public class TestInnerClass {
     2     public static void main(String[] args) {
     3         //创建静态内部类的对象:可以直接通过外部类调用静态内部类的构造器
     4         Person.Dog d = new Person.Dog();//Person.new Dog();
     5         //Person.Bird b = new Person.Bird();
     6         //创建非静态的内部类的对象:必须先创建外部类的对象,通过外部类的对象调用内部类的构造器
     7         Person p = new Person();
     8         Person.Bird b = p.new Bird();//new p.Bird();
     9         b.info();
    10         b.setName("杜鹃");
    11     }
    12 }
    13 
    14 class Person{
    15     String name = "韩梅梅";
    16     int age;
    17     //成员内部类(非static的)
    18     class Bird{
    19         String name = "黄鹂";
    20         int id;
    21        
    22         public Bird(){
    23            
    24         }
    25         public void setName(String name){
    26             System.out.println(name);//杜鹃
    27             System.out.println(this.name);//黄鹂
    28             System.out.println(Person.this.name);//韩梅梅
    29         }
    30         public void info(){
    31             show();
    32         }
    33     }
    34     //成员内部类(静态内部类)
    35     static class Dog{
    36        
    37     }
    38    
    39     public void show(){
    40         System.out.println("我是show()方法");
    41     }
    42    
    43     public void method1(){
    44         class A{
    45            
    46         }
    47     }
    48 }
  • 相关阅读:
    【LeetCode】46. 全排列(回溯)
    [P2894][USACO08FEB] 酒店Hotel (线段树+懒标记下传)
    [P2680][NOIP2015T6] 运输计划 (LCA+树上差分+二分)
    静态主席树学习笔记
    [P1941][NOIP2014T3] 飞扬的小鸟 (0/1背包+完全背包)
    [P1084][NOIP2012T6] 疫情控制 (二分+贪心+LCA)
    [P3959][NOIP2017T5] 宝藏 (状压DP+DFS)
    [P2679][NOIP2015T5] 子串 (DP+滚动数组)
    [P1314][NOIP2011T5] 聪明的质检员 (二分+前缀和)
    [P1966][NOIP2013T2] 火柴排队 (求逆序对+归并排序/树状数组)
  • 原文地址:https://www.cnblogs.com/zhangfan94/p/4263313.html
Copyright © 2020-2023  润新知