[JavaSE进阶笔记]day03 static和内部类

目录

static

内部类

匿名内部类


static

        static静态(对象共享)的意思,修饰成员方法和成员变量(类方法和类变量)

        修饰成员变量时表示这个成员变量被所有的对象共享,改一个对象的此变量会同时改变其他对象的该变量        

        静态内容会在方法区单独存入静态区,并为静态内容初始化。类的对象中不再保存静态内容,而会存放一个静态标记,通过静态标记找到静态区的内容,节省了内存空间。

        可以直接通过类名.的方式进行访问修改(建议),用对象调用时底层JVM自己转换为类名调用

        因为静态内容优先初始化,所有非静态成员方法可以访问所有的静态和非静态成员变量和方法。而静态成员方法只能访问静态的成员变量和静态的成员方法。且静态方法中不能使用this关键字

        静态代码块:使用{}括起来的叫代码块,用static修饰的称为静态代码块,即格式为static{方法体}。静态代码块仍然属于静态内容,无法使用非静态内容,用于静态成员变量的赋值并初始化项目。静态代码块随着字节码文件的加载而加载,在创建对象的时候会调用,且优先于构造方法执行,但只在创建第一个对象的时候调用。在调用类中的静态内容时也会执行静态代码块。

内部类

        一个事物中包含了另外一个或多个事物

        目的:将内部类隐藏起来而不想让外界直接看到,提高安全性

        内部类格式:

        public class 类名{

        修饰符 class 类名{

        }

        }

        内部类可以直接调用外部类的成员(包括私有),外部类想用内部类的成员必须创建对象

        内部类分为成员内部类和局部内部类

        成员内部类可以用public,private,protected以及static修饰。外界想使用成员内部类(修饰符为public的情况):格式:外部类名.内部类名 对象名=外部类对象名.new 内部类名(实参..);其中的外部类对象名可以改为new 外部类名称(实参...) 使用内部类的成员方法:内部类对象名.方法名

        内部类可以访问外部类的成员变量(包括私有)

        (修饰符为private的情况):需要在外部类创建一个方法,方法中创建内部类的对象,并调用方法

        (修饰符为static的情况):new 外部类名.内部类名(实参..)的方式创建

        局部内部类是在方法里面定义类,此时不需要修饰符,直接class+类名,使用时需要在方法内,局部类之外创建局部类的对象调用局部类的方法

匿名内部类

        可以省去写一个实现类,直接通过接口来调用接口方法

        创建接口实现类对象的/父类的子类对象的快捷方式

        格式:new 类名或接口名(){

        重写方法;

        };最后有一个分号

        是局部内部类的一个特殊形式~

        本质上是一个对象,这个对象继承了类或实现了接口

        想要调用重写的方法,需要在{}之后加个.方法,这样可以匿名内部类中的调特有方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值