zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Linux-Rsync文件同步
    Linux-PPTP服务器搭建
    Excle破解忘记保护密码的方法。
    Linux-多维度服务器调优
    postman测试钉钉审批接口
    linux 常用服务器部署
    DRF
    15.ES6模块
    14.class类
    13. async用法
  • 原文地址:https://www.cnblogs.com/zhangfan94/p/4263313.html
Copyright © 2011-2022 走看看