内部类和静态内部类

碰到单例模式过来学内部类,然后归纳总结一下

嵌套类

在百度百科上是这样定义的:

嵌套类(Nested Class),是 Java 中对类的一种定义方式。嵌套类分为两种:静态嵌套类和非静态嵌套类。非静态嵌套类,又称为内部类(Inner Class)。

内部类

内部类(Inner Class),是 Java 中对类的一种定义方式,是嵌套类的一个分类,即非静态嵌套类(Non-Static Nested Class)。内部类(非静态嵌套类)分为成员内部类、局部内部类和匿名内部类三种。

成员内部类

注意: 1.成员内部类可以访问外部类所有的属性和方法。但是外部类要访问成员内部类的属性和方法,必须要先实例化成员内部类。
2.成员内部类里面不能包含静态的属性和方法。
3.访问非静态的(即没有用static修饰的),都必须有对象,比如我们的age属性,而我们的成员内部类作为一个非静态成员,它的实例化也必须依赖对象。所以是outclass.innerclass gamecard=student.new innerclass();

public class outclass {
    public static String name;
    public int age;
    public class innerclass{
        String IDCard;
        String password;
        public void print(){
            System.out.println(name+":");
            System.out.println(age+":");

        }
    }
    public static void main(String[] args) {
         outclass student=new outclass();
         //成员内部类的实例化过程 
         
        outclass.innerclass gamecard=student.new innerclass();
    }
}

匿名内部类

当一个内部类需要继承或实现,而且只用一次的时候,调用时直接用无参构造,并重写方法

接口

 public interface Person {
    void indentity();
}

测试类

public class test {
    public static void main(String[] args) {
        Person person=new Person() {
            @Override
            public void indentity() {
                System.out.println("I am a student");
            }
        }
        person.indentity();
    }
}

静态内部类

注意:1.静态内部类就是在成员内部类多加了一个 static 关键字。
2.静态内部类只能访问外部类的静态成员变量和方法(包括私有静态)
3.静态内部类属于外部类本身的,所以实例化不需要外部类对象。类中的静态组件都不需要对象,直接通过类本身进行构造。比如我们常见的静态类方法:类名.方法() 。就可以调用这个方法了。

public class outclass {
    public static String name;
    public int age;
    public static void test(){
        System.out.println("调用静态内部类");
    }
    public static class innerclass{
        String IDCard;
        String password;
        public void print(){
            System.out.println(name+":");
            test();
        }
    }
    public static void main(String[] args) {

         //静态内部类的实例化方法,和外部类一样
        innerclass gameid=new innerclass();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值