内部类

2021-07-26  本文已影响0人  开心的小哈

内部类共分为:

一,成员内部类


public class Nibulei {
    public void outprint() {
        Nibulei.Chin chin = new Chin();
        chin.showi();
    }
    
    public static void main(String[] args) {
    Nibulei nibulei = new Nibulei();
//  nibulei.outprint();
    Nibulei.Chin chin = nibulei.new Chin();
    chin.showi();
    }
    class Chin{
        int y=0;
        Chin(){
            System.out.println("我是内部类");
        }
        public void showi() {
            System.out.println(y);
        }
    }
}

二,局部内部类

在方法中定义类
其中注意参数,如果传入参数则hi会被替换为xx,如果不传入则显示hi

import java.awt.Container;

public class Jubu {
public outinnerClass action(String x) {
    class innerClass implements outinnerClass{//局部内部类
    
        public innerClass(String s) {
            s=x;
            System.out.println(s);
        }
    }
    return new innerClass("hi");
}
public static void main(String[] args) {
    Jubu jubu = new Jubu();
    outinnerClass action = jubu.action("xx");
    
}

}
interface outinnerClass{
    
}

三,匿名内部类


public class nimingneibulei {
public outInterface action() {
    outInterface outInterface = new outInterface() {//第一种写法
        private int i=0;
        private int getag() {
            return i;
        }
    };
    return outInterface;
}
public static void main(String[] args) {
    new outInterface() {//第二种写法
    };//在new的时候就创建这个类,每次new都会创建
}
}
interface outInterface {
    
}

四,静态内部类

静态内部类可以调用main方法,一般用于调试等操作;


public class jingtaineiblei {
     static int x=100;
static class inner4{//静态内部类
    void getx() {
        x=1;
    }
    public static void main(String[] args) {//在外面会生成一个static
        System.out.println("我是静态类");
    }
}
}

五,内部类继承

固定写法


public class Jichengneibullei {
class innerClass{
    
}
public static void main(String[] args) {
    
}
}
class newClass extends Jichengneibullei.innerClass{
    public newClass(Jichengneibullei s) {
        s.super();
    }
}

上一篇 下一篇

猜你喜欢

热点阅读