内部类

作者: xiaoliman | 来源:发表于2017-08-07 08:38 被阅读0次
    1. 内部类: 一个类里面再定义一个类 , 里面的类叫做 内部类
      外面的类 外部类,宿主类

    2. 内部类 : 通常是为了帮助管理外部类事物的,则内部类可以访问外部类的属性和方法,即使外部类属性和方法是私有的

    3.内部类的分类:
    成员内部类: 相当于外部类的一个成员属性 或者成员方法
    静态内部类
    局部内部类
    匿名内部类
    4.使用场景: 这个内部类只可以帮助 这一个外部类实现外部类的需求
    5.先要创建外部类对象 通过外部类对象 创建内部类对象

    1. 格式:外部类对象.new 内部类();
      main:
    public class Test {
    
       public static void main(String[] args) {
           MemeberInner memeberInner = new MemeberInner();
    
           MemeberInner.Inner inner = memeberInner.new Inner();
           inner.eat();
           
           
           MemeberInner2 memeberInner2 = new MemeberInner2();
           Inner inner2 = memeberInner2.new  Inner();
           inner2.sleep();
           
       }
    }
    
    1. 成员内部类,可以用四种访问权限修饰符修饰
    2. 成员内部类中 ,不允许直接用静态的属性和方法,但是属性可以 用 final static 修饰变成常量
    3. 内部类中可以使用外部类中的属性和方法 包括私有的

    内部类1

    package com.qf.demo9;
    
    public class MemeberInner {
    
        private String name ="太和殿";
        private int age = 300;
        
        public void sleep(){
            System.out.println("一片寂静");
        }
        
        // 成员内部类
        // 可以用四种访问权限修饰符修饰
         class Inner{
            // 成员内部类中 不允许直接用静态的属性和方法
             // 但是属性可以 用 final static 修饰变成常量
            public final static     String sex = "不详";
            private double money;
            
            public  void eat(){
                // 内部类中可以使用外部类中的属性和方法  包括私有的
                System.out.println(age);
                sleep();
                System.out.println(name);
                System.out.println("吃");
            }
            
        }
        
        
    }
    

    1.外部类和内部类属性同名的时候 默认调用的是 内部类中的属性
    1.想要调用外部类的对象 创建外部类对象 . 属性
    内部类2

    package com.qf.demo9;
    
    public class MemeberInner2 {
    
        private  String name = "小花";
        private int age = 2;
        
        public void  open(){
            System.out.println("开花");
        }
        
        class Inner{
            // 外部类和内部类属性同名的时候   默认调用的是 内部类中的属性
            // 想要调用外部类的对象    创建外部类对象 . 属性
            private  String name = "小草";
            private int age = 5;
            
            public void sleep(){
                // this 指代的是内部类的对象
                
                MemeberInner2  memeberInner2 = new MemeberInner2();
                System.out.println(memeberInner2.name);
                
                System.out.println("冬眠");
            }
            
            
        }
        /**
         * 使用场景: 这个内部类只可以帮助  这一个外部类实现外部类的需求
         * 
         */
    }
    
    

    相关文章

      网友评论

          本文标题:内部类

          本文链接:https://www.haomeiwen.com/subject/ecdolxtx.html