oop(面向对象编程学习4)

oop(Object Oriented Programming)面向对象编程


Day07:
1.接口
1)什么是接口?
    接口是一个特殊的抽象类,接口和类平级,也是一个数据类型
2)为什么需要接口?
    2.1)接口可以让java间接的实现多继承(实现类实现接口,子类继承父类)
    2.2)接口约束了实现类的方法,提高了程序的可扩展性
    2.3)方便程序设计者搭建程序框架(架构师)
3)如何编写一个接口
    在一个java文件中,将class换成interface
4)接口的特性:(和抽象类不一样)
    4.1)接口的属性都是公有静态常量:
        所有属性默认被public static final修饰
    4.2)接口的方法都是公有的抽象方法:
        所有的方法默认都是被public abstract修饰
    4.3)特殊的抽象类,所以接口不能实例化对象
    4.4)接口没有构造方法
5)接口的实现
    5.1)我们将实现接口的类叫做实现类
    5.2)语法
        class<类名>implements<接口>{
        }
    5.3)实现类实现接口时,需要实现接口中的所有的方法,除非实现类是抽象类
    5.4)如果一个类实现多个接口的话,那么接口名用,分隔
    5.5)如果这个类既继承了父类又实现了接口,那么这个类先写extends(继承),再写implements(实现)
    5.6)父类是一种类型,接口是一种能力
        子类继承父类满足is——a原则
        实现类实现接口满足has——a原则
6)接口的注意事项:
    6.1)使用向上造型,可以将对象赋给接口,但是接口类型只能调用到接口声明的方法
    6.2)接口也可以继承接口,使用extends继承,多个接口的话,使用,分隔
实现类实现所有父类的接口
    6.3)工作中的实际运用
面向接口编程(境界比较高。。。。)
    
    PS.接口可以定义默认方法

2.抽象类和接口的区别
    1)相同点:
    不能实例化,可以编写抽象方法
    2)不同点(站在接口的角度来说):
    不能编写构造方法
    不能编写实例成员
    能多继承
    所有属性都是常量,所有方法都是抽象方法
    3)如果声明的是一种抽象的能力,使用的是接口
        如果声明的是没有对象的类型,那么使用抽象类

 

Day08:
1.多态
1)什么是多态?
    同一父类的不同子类对象对同一方法的调用,产生的不同的行为
2)为什么使用多态?
    减少代码冗余,提高程序的可维护性和可扩展性
3)怎么使用多态?
    3.1)定义一个父类
    3.2)定义子类继承父类
    3.3)子类重写父类的方法
    3.4)子类对象赋给父类引用(向上造型)
    3.5)使用父类引用调用子类重写后的方法
2.引用数据类型的强制类型转换
1)什么是类型转换
    就是将一个数据类型的引用转换成另一个数据类型
2)为什么需要类型转换?
    父类引用无法调用子类特有的成员,如果必须调用,则需要进行数据转换
3)怎么进行类型转换?
    (<类型>)<引用>
    比如:Cat c=(Cat)pet  然后c可以调用Cat类特有的成员
4)强制类型转换的注意事项:
    如果将子类A的引用强转成子类B,会发生强制类型转换异常(ClassCastException),在强转之前,需判断一下引用对象的实际类型

3.instanceof运算符
1)什么是instanceof运算符
    判断一个对象是否属于某个类型
2)为什么需要instanceof运算符
    为了防止数据类型转换异常
3)如何使用instanceof运算符
    格式:
    <对象>instanceof<类型>
    如:p instanceof Dog     运算结果输出的是boolean类型的结果

PS.封装:属性私有化,方法公有化,提高程序的安全性

 

Day09:
1.GC(Garbage Collection 垃圾回收管理机制)
1)什么是垃圾?
    程序中那些使用完毕以后不会再使用的对象(主要存在于堆中)
2)为什么需要处理垃圾?
    如果放任那些不再使用的对象存放在内存中的话,最终会发生内存溢出(内存泄漏),如果内存溢出,会将数据储存在硬盘上,然而计算机从硬盘上读取数据的速度很慢,内存溢出严重影响计算机的性能
3)怎么清理垃圾?
    其他语言清理垃圾:
    如C++:通过析构函数来释放对象(C++程序员需要花费精力来释放各种不再使用的对象)
         java:GC——垃圾回收管理机制(不用使用析构函数)
2.java垃圾处理
1)什么是GC?
    垃圾回收管理机制(可以将它想象成一个打工的小时工),是JVM中一条专门处理回收垃圾的线程(一个专门处理回收垃圾的程序)

2)GC的优缺点:
    优点:java程序员不需要管理回收垃圾
    缺点:1.GC本身是需要占运行内存的
            2.GC回收垃圾是有延迟的
            3.GC只处理java程序内容产生的垃圾

3.GC的回收原理:
    GC判断对象是否是垃圾的时会综合多种方法来判断对象是不是垃圾,其中最核心的办法就是:引用计数法
    如果希望一个局部变量尽快被回收,可以将它设置成null

4.Object类中的finalize方法(所有对象都会继承Object类中的finalize方法)在GC回收垃圾之前,会调用对象的finalize方法

5.System.gc();方法
由于GC时有延迟的,当我们想立即处理某个垃圾时,可以调用System.gc();通知GC尽快回收垃圾

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值