浅说什么是面向对象

70 阅读2分钟

1.面向对象与面向过程的区别

面向对象更利于复用,面向过程更有利于性能。

2.面向对象的三个特点 封装 继承 多态

  • 封装 (提高了代码的复用率)
    • 明确标识出允许外部使用的变量等
      • javabean
            private  String name;
            public void setName(String name) {
            this.name = "oa_"+name;
            }
      

      这里对name赋值就是封装,这里的name变量只能通过使用set方法赋值,如果直接对name方法赋值则无法获得set方法总的执行过程,所以想要实现的效果就是提供一个方法给外部使用,外部只需要使用即可,不需要知道里面的执行过程,这就是封装的意义

      • ORM框架

      你不用在意程序是如何调用数据库的,这些细节被封装到了ORM框架中,你只需要使用就可以了,不用去在乎是如何实现的

  • 继承 (提高了代码的复用率)
    • 将具有相同作用的方法抽出来,放到基类中,这样做的好处是只需要在子类中去做自定义的方法,通用的方法放入父类
      • java代码
         class Aa{
             String setHead(String body){
             return "head"+body;
             }
         }
         class Bb extends Aa{
             String setBody(String body){
             return body+body;
             }
         }
         public class Test
         {
             public static void main(String[] args)
                 {
                         Bb b = new Bb() ;
                         System.out.println(b.setBody("123"));
                         System.out.println(b.setHead("123"));
                 }
             }
        
  • 多态 (提高了代码的可移植性)
    • 多态存在的三个必要条件(继承、重写、父类引用指向子类对象;)
      • java代码
          abstract  class Aa{
              public abstract String setHead(String body);
          }
          class Bb extends Aa{
              @Override
              public String setHead(String body) {
                  return body+body;
              }
          }
          public class Test
          {
              public static void main(String[] args)
              {
                  Aa a = new Bb() ;
                  System.out.println(a.setHead("123"));
              }
          }
        
      • 多态的说明

        多态的出现,可以更加灵活的实现代码的可移植性,如果业务发生改变只需要修改实现类,也不需要修改业务的逻辑代码。
        其实我们经常使用多态的只是不太注意
        比如 List list = new ArrayList();