static、new子类对象、final、抽象方法 抽象类、接口

一、static
    1. static修饰的属性称为类属性:
    class St{
        int x;//成员属性   只有通过对象才能访问  如果不实例化对象将没有成员变量
        //成员属性属于对象  每一个对象都有自己独立的一份
        static int y;    //类属性
        //类属性属于类  一个类只有一份,所有的对象共享
    }
        
    类属性 可以 直接通过 类名.属性名  进行访问
        当然也可以通过对象.属性名  进行访问 
        
        局部变量不能声明为static
    
    2. static修饰的方法称为类方法
        类方法中没有隐含的this引用变量
        不能直接访问成员变量 和 调用成员方法
        只能访问类属性 和 调用 类方法
        
        成员方法中有this引用变量,this引用变量引用正在调用该方法的对象
        能够访问到该对象的成员属性 和 调用成员方法  
        也能够访问类属性 和 调用 类方法 
        
        
        类属性 和 类方法  是所有的对象共享的(only one)
    
    
    new对象时:
        普通语句块 ->  构造方法
        
    3. static语句块    
        static{//静态语句块  只会执行一次   最开始执行的
            //作用:一般用于加载图片、视频、等资源 
        }
        静态语句块是在类加载时被调用   肯定是等于所有语句块和构造方法先执行
        
        类加载时是一行一行代码加载
        
    new子类对象:  执行过程
        父类的静态语句块->子类的静态语句块->父类的语句块->父类的构造方法->子类的语句块->子类的构造方法
    
        
    二、final
        1. final修饰的变量的值不能改变
            final int x = 10;
            x = 20;//Error
            final int y;
            y = 10;
        2. final修饰成员变量
            只能选择以下初始化的方式:
            1.直接初始化
            2.语句块中初始化
            3.构造方法中初始化
                只能在其中之一,不能同时
        3. final修饰方法   不能被子类重写
        4. final修饰的类  不能被继承  断子绝孙类
        5. final和static一起修饰变量称为 常量  一般用大写字母表示 
            只能选择  直接初始化  或者  在静态语句块中初始化
            在编译之后,会直接用 值  来替换 常量   提高运行效率
            
            普通的变量 得去内存中取值 才能使用
            
    
    三、抽象方法  抽象类 
        abstract修饰的方法为抽象方法
            可以没有方法体(方法只需要声明不需要实现)
        拥有抽象方法的类称为抽象类(用abstract修饰的类)
        
        抽象类 不能 实例化对象 
        
        象类可以有成员属性
        抽象类可以有构造方法
        抽象类中可以有普通的成员方法
        
        抽象类的意义:
        1.提供一个公共的基类    子类对象都是父类类型的对象
        2.提供了统一的调用接口(抽象方法)    子类重写该方法
        3.封装子类共同拥有的属性和方法

    四、接口
        interface
        interface 接口名{

            //没有成员属性
            //只能声明常量   和  抽象方法
            int x;//默认是  static final 
            void show();   //默认是  public abstract
        }
        
        JAVA中的类的继承是单一继承   一个儿子只会有一个爸
        但是,一个类可以实现多个接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值