Java OOP(Object Oriented Programming)个人理解及总结


  • 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)
  • 其三大特征:封装,继承,多态;
    • 封装:解决数据的安全问题。
    • 继承:解决代码的重用问题。
    • 多态:解决程序的拓展问题。

封装(Encapsulation)
  • 个人理解:将该类的代码和数据包装,隐藏起来,形成一个保护屏障;同时要想访问该的代码和数据,必须通过严格的接口控制;

  • 优点:

    • 减少耦合(具体包括哪些耦合?代码,功能)。
    • 便于修改自身结构。
    • 便于内部管理(成员变量),高度的中央集权。
    • 简洁方便,便于调用。
    • 例如:常用的JavaBean;
      • 先定义该类的(私有)属性,以及相关的公用方法
      • 在调用该类时,直接创建该类的实例对象,调用公用方法即可;便可达到上述优点

继承
  • 个人理解:为了解决相同,类似的问题,将二者相似,共有的属性行为,提取出来进而新建父类,通过继承的方式解决代码量大且臃肿;同时可以增加后期代码可维护性;
  • 格式
class father {

}


class daughter extend father {

}
    • Java不支持多继承,多继承通过接口实现;
    • Java支持多重继承,即可理解为爸爸继承爷爷,孙子继承爸爸,进而实现孙子继承爷爷;
    • 子类无法继承父类私有方法;
    • 子类可以拥有自己私有方法,同时可以对父类进行拓展;
    • Java所有类都继承与java.lang.Object;
  • 关键字使用:

    • super 和 this:前者用来引用当前对象的父类;后者用于对自己的引用;
    • final 最终类,无法被继承;
  • 对于构造器,不懂(需要的朋友可以自行学习,并推荐给本人);


多态
  • 个人理解:面对一行为,具有多种不同表现形式,多态性是对象多种表现形式的体现;

  • 作用:使程序具有良好的拓展,可以对所有类的对象进行通用处理;

  • 理解,从未使用过,概念模糊;

  • 多态的实现方式:

    • 重写
    • 接口
    • 抽象类和抽象方法
  • 补充:
    对于重写与重载:

    • 参数列表与被重写方法的参数列表必须完全相同;
    • 重载在一个类中,方法名字相同,参数不同,返回类型可相同也可不同;
    • 代码参考:
public class Overloading {
    public int test(){
        System.out.println("test1");
        return 1;
    }
 
    public void test(int a){
        System.out.println("test2");
    }   
 
    //以下两个参数类型顺序不同
    public String test(int a,String s){
        System.out.println("test3");
        return "returntest3";
    }   
 
    public String test(String s,int a){
        System.out.println("test4");
        return "returntest4";
    }   
 
    public static void main(String[] args){
        Overloading o = new Overloading();
        System.out.println(o.test());
        o.test(1);
        System.out.println(o.test(1,"test3"));
        System.out.println(o.test("test4",1));
    }
}
Console:

    test1
    1
    test2
    test3 
    returntest3
    test4
    returntest4

在这里插入图片描述

  • 总结:
    • 方法重载,同类下多个同名方法,参数数量不同,类型不同,次序不同;
    • 方法重写,子类存在与父类同名方法,参数个数,类型相同,返回值相同。
    • 前者是一个类的多态性体现,后者则是子类与父类的一种多态性表现;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值