day10-面向对象-4

面向对象-4

static修饰符

  1. 使用该修饰符的成员是属于类的(类名.成员)
  2. 不适用该修饰符的成员是属于对象(使用时必须new对象)

注:

static 修饰的方法不能使用super和this

super和this是指向对象的

final修饰符

  1. final修饰的类没有子类是最终类
  2. final修饰的方法是最终方法,不能呗子类覆盖
  3. final修饰的变量只能赋值一次,不能重复赋值
  4. final修饰的可变参数与变量同理提高程序的安全性(数组的元素可以被修改,它类似于方法的的属性)

注:

  1. 基本数据类型:不能改变值
  2. 引用数据类型:不能改变引用地址

代码块

使用{}就表示一个代码块,每个花括号有自己的作用域

1. 局部代码

把代码成块

2. 初始化代码块

每次创建对象的时候都会执行

3. 代码块

当该类被加载到JVM中之后,立即执行一次该代码块

class Test{
    //初始化代码块
    {
        System.out.println("初始化");
    }
    
    static{
    	System.out.println("静态代码块");    
    }
    
    public static void main(String[] args){
        //局部代码块
        {
            int age = 10;
            System.out.println(age);
        }
    }
}

执行顺序:

静态代码块->初始化代码块->构造器->局部代码块

内部类

1. 静态内部类

类里使用static声明的内部类

2. 实例内部类

类里没有使用static声明的内部类

3. 局部内部类

定义在方法中的内部类

4. 匿名内部类

特殊的局部内部类,通常此类只使用一次

//抽象类
class abstract Animal{
    public abstract void say();
}
//接口
interface IFly{
    public void fly();
}
//实现
public static void main(String[] args){
    //抽象类的匿名内部类
    new Animal(){
        public void say(){
            System.out.println("说话");
        }
    }.say();
    
    //接口的匿名内部类
    new IFly(){
        public void fly(){
            System.out.println("飞");
        }
    }.fly();
}

枚举

枚举是一个特殊的类,它的实现直接继承了java.lang.Enum类,枚举也是一个特殊的单例设计

枚举的定义规范

public enum 枚举名{
    常用类型A,常用类型B,常用类型C;
    //属性
    //方法
    //...
}

用于定义必须选择 的参数

常用方法

方法作用
public final String name()枚举的名称
public final int ordinal()枚举的序列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值