当前位置 博文首页 > 墨辰柒的博客:Java学习第九天

    墨辰柒的博客:Java学习第九天

    作者:[db:作者] 时间:2021-08-02 21:39

    Java学习第九天知识盲点

    2021/7/16第九天
    1、创建内部类对象格式:
    外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
    外部类名.内部类名 对象名 = 外部类对象名.new 内部类型();
    2、无关类调用内部类,在外部类方法中new一个内部类对象 或 创建内部类对象
    3、内部类可以直接调用外部类方法、对象。外部类调用内部需要new内部类对象
    4、如果有重名,就近原则,this.a(本类中),外部类名.this.a(外部类中)
    5、局部内部类(只使用一次)不能有修饰符。
    6、内部类主要用于:继承抽象类/实现接口
    7、局部内部类中使用局部变量时,默认加了final无法修改(成员变量可以正常使用)。但是局部变量方法内是可以修改的。

    package day09.part;
    
    public class PartInner {
        int b=1;
        public void M1(){
            int num=10;
            num=30;//方法内可以正常使用
            //局部内部类不可加修饰符
            class M1{
                int a=1;
                public void PartIn(){//外部类和自己的成员变量可以正常赋值,运算。但是局部变量不行
                    a=a++;
                    num=10;//Variable 'num' is accessed from within inner class, needs to be final or effectively final
                    b=b++;
                }
    
            }
        }
    }
    

    8、内部类

    package day09;
    
    public class Outer {
        int a=1;
        public class Inner{
            int a=2;
            private void testIn(){
                int a=3;
                testOut();//可以直接调用外部类方法
                System.out.println(a);//三个a变量
                System.out.println(this.a);//this是这个类中的a(当前)
                System.out.println(Outer.this.a);//调用外部类Outer的当前的a
            }
    
        }
        private void testOut(){
            Inner in=new Inner();
            in.testIn();//外部类方法内必须先创建对象才能调用内部类方法
        }
    }
    

    9、静态内部类new方法

    Out.staticpart i=new Out.staticpart;
    
    cs