java入门教程-面向对象第二部分

17 篇文章 0 订阅
17 篇文章 0 订阅

static关键字

static本身是一个修饰符,可以修饰变量、方法、内部类、代码块。静态是从类的层面来看的,已经超越了对象。

静态变量

  1. 定义: static修饰变量那么这个变量我们就称之为静态变量,又称为成员变量或者类变量。
  2. 特点: 静态变量随着类的加载而加载到了方法区中的静态区,并且在静态区中自动赋予了一个默认值。静态变量先于对象而存在,所以静态变量可以通过类名来调用,也可以通过对象来调用。该类产生的所有的对象实际上存的是该静态变量在静态区中的地址,静态变量是被所有对象所共享的。
  3. 优点:
    使属性私有化—隐藏信息,实现细节。
    使属性值更符合要求—可以对成员进行更精确的控制。
    提高了代码的安全性—类内部的结构可以自由修改
    良好的封装能够减少耦合。
  4. 静态内存流程
    在这里插入图片描述
    在这里插入图片描述

静态方法

  1. 定义: static修饰方法就叫静态方法,也叫类方法。
  2. 特点: 在类加载的时候加载到了方法区中的静态区,只是存储在静态区,在方法被调用的时候到栈内存中执行。静态区中的元素不归属于某一个对象而是归属于类。静态方法先于对象而存在的,所以静态方法可以通过类名来调用,也可以通过对象来调用。
    注意: 类只加载一次,是在第一次使用的时候才加载到方法区,而且加载到方法区中之后就不再移除了。
    在这里插入图片描述
  3. 注意事项:
    不可以:
    静态变量可以定义到静态方法中吗?
    静态方法中可以直接调用本类中的非静态方法吗?
    在主函数中可以使用this和super吗?
    静态方法可以重写(方法的覆盖)吗?
    可以:
    静态方法可以存在方法签名完全一致的静态方法吗?
    静态方法可以重载吗?

final关键字

Final可以修饰数据、方法和类。

常量

  1. 定义: 当final修饰数据(基本类型和引用类型)的时候,表示这个变量的值不可变,称之为常量。终其一生只能赋值一次。
    在Java中所说的常量往往是指静态常量。因为实质上只有静态常量才是独有的一个。
  2. 特点:
    a 常量在定义好之后不可改变,final固定的是栈内存中的数值。
    b 常量可以作为参数传递。
    c 对引用类型而言,final固定的是其在栈中的地址不可变。
    d 成员常量只要是在对象创建完成之前(构造方法/函数执行结束之前)赋初始值即可。
    e 静态成员常量(static final)只要在类加载完成之前给值即可,而且只能在静态代码块中赋值。

最终方法

  1. 定义: final修饰方法的时候,这个方法就是最终方法。
  2. 特点:
    最终方法不可以被重写,可以重载,可以被继承。
    静态方法可以被final修饰。

最终类

  1. 定义: final修饰类那么这个类就是最终类。
  2. 特点:
    最终类不可以被继承,也不能有匿名内部类形式。
    (匿名内部类后续详细说)
    由于最终类不能被继承,因此重写也是不可以的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值