JAVA基础Day09

复习

  • 面向对象的三大特征:封装、继承、多态
  • 封装包含了类的封装和属性的私有化。类的封装指的是如何去定义一个类;方法的封装是对方法的提取;属性的私有化是来保证数据的合法性
  • 继承:在Java中通过extends关键字来完成继承关系。被继承的类称之为父类/超类,继承的类称之为子类/派生类。通过继承子类可以使用父类中部分的方法和属性。需要注意,在Java中,类和类之间是单继承
  • 在子类中,可以通过super关键字来表示父类对象。在创建子类对象的时候会先创建父类对象
  • 多态:包含了编译时多态(方法的重载)和运行时多态(向上造型,方法的重写)
    1. 向上造型:父类声明,子类实现 - 能干什么看父类,怎么执行看子类
    2. 方法的重写:在父子类中,存在方法签名完全一致的方法 - 两等两小一大
  • 权限修饰符:public > protected > 默认 > private

面向对象

一、static关键字

  1. static:静态。这个关键字本身是一个修饰符,可以修饰方法、变量、代码块和内部类
  2. static修饰的变量称之为静态变量/类变量
    1. 类在第一次被使用的时候才加载,之后会驻留在内存中
    2. 静态变量在类加载的时候就被初始化,所以静态变量是先于对象存在,因此静态变量可以不通过对象来调用而是通过类来调用
    3. 由于静态变量是存储在方法区的,所以是被所有对象共享的
    4. 如果某一个特征是某个对象独有的,那么此时这个属性就是非静态的;如果某一个特征是大家共有的,此时就需要设置为静态

     

  3. static修饰的方法称之为静态方法/类方法
    1. 静态方法在类加载的时候加载到方法区中的静态区
    2. 静态方法也是先于对象存在的,所以静态方法也可以通过类名来调用
    3. 案例:单例模式
    4. 非静态属性不能在静态方法中使用
  4. 被static修饰的代码块称之为静态代码块。静态代码块只在类加载的时候执行一次
  5. 执行顺序:父类静态 -> 子类静态 -> 父类非静态 -> 子类非静态
  6. 静态方法中不能直接使用非静态方法,非静态方法必须通过对象来调用

二、final关键字

final:修饰符,可以修饰变量,方法和类 final修饰的变量称之为常量,意味着赋值之后不能改变。常量一般需要定义的时候给定值。一般各种编号类(学号、身份证号等)、范围等不能改变的属性可以定义成final修饰的 - 如果final修饰的是基本类型,那么这个值不能变;如果final修饰的引用类型(数组,对象),那么指的是地址不变

  1. final还可以修饰方法,被修饰的方法称之为最终方法 - final修饰的方法可以重载但是不能被重写
  2. final可以修饰类,此时这个类称之为最终类 - 最终类不能被继承

三、abstract关键字

  1. abstract可以修饰类和方法。被abstract修饰的类称之为抽象类;被abstract修饰的方法称之为抽象方法
  2. 抽象方法一定放在抽象类中,但是抽象类中可以没有抽象方法
  3. 练习:

                        定义一个类表示图形(Shape),任何一个图形都有周长(girth)和面积(area)。为这个                          图形类提供两个子类:矩形(Rectangle)和圆形(Circle)。矩形下提供子类正方形(Square)

             4.抽象类不能被实例化

             5.子类继承抽象类之后需要覆盖/重写父类中的抽象方法                

             6.抽象方法不能被final/static/private修饰

             7.最终类一定不是抽象类

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值