zoukankan      html  css  js  c++  java
  • 面向对象

    谈谈你对面向对象的理解:

      封装、继承、多态(设计模式)

      从面向对象的思想开始谈起

      用语言作为载体在谈面向对象(Java),对象和类的一些关系。

      语法简单的过一下,像一些关键字的使用神马的就不要提了

      然后说设计上的一些个人理解,说的是特性,实际点在抽象上要着重

      围绕多态进行深入,切近设计模式就可以不出来了,各种吹

      面向对象可以应用在方方面面。

    三大特性:封装、继承、多态

      封装:

        理解:

            开车时,需要知道发动机要怎样运转?(汽车的抽象堪称经典)

            开飞机时,需要自己去转动螺旋桨嘛?

        思想:高内聚(可以通过封装体现),低耦合

        宗旨:

          尽量降低对外的暴露

          做一个低调的人

        权限修饰符:public(公开、工程内)、protected(保护、一个体现内,继承)、默认(包内)、private(私有的,一个类内)。修饰熟悉、方法、类、构造器。

        语法:借助于权限修饰符适当的隐藏属性和方法

            这是封装作用的访问,属性(包括静态)&方法(包括静态)

            作用范围还包括内部类,构造器

            使用的手段,或者方法是用的权限修饰符(public,private等)

        思想:高内聚低耦合

            这是为什么有封装的主因,不能为了封装而封装

            而这个思想,不仅仅是针对面向对象,任何软件,工程设计都如此

            只是在面向对象的设计思想中,为了做到高内聚而选择一种设计

            这个设计,就是我们学习的封装特性,这个特性是面向对象的,不是Java的

        user.name=""; 和user.setName的区别?(

    使用get()和set()而不使用public的成员变量,是因为我们设计类的时候要遵循这样的原则: 提供类的人要尽量将类中有什么隐藏起来,只告诉使用者你能做什么 使用类的人不关心你的类中有什么,只关心类提供了什么功能 所以设计类的时候要尽量不提供public的成员变量,最好一个都没有,只提供接口 这条原则其实不仅是代码规范的问题,放到工作中,这就是多项目组或多部门之间合作的准则 这条原则也绝对不是某个独自编码的程序狼一拍脑袋就想出来,这是经历过有组织开发过工作的程序猿才能设计出来的。)

        思考:封装后的属性能被子类继承嘛?

        面试:

          在日常中开发中你觉得封装有哪些体现?getter&setter

          你是怎么用封装的?无需对外暴露的方法即可私有化

          你用封装做过哪些设计?静态工厂方法 of()

          还有嘛?比如单例工厂?设计模式?

       

      继承extends(单继承、多层继承): 现象(代码复用、方便扩展),思想是面向对象思想。

        super关键字:指向父类的指针、在子类中,调用父类的方法、属性、构造器;

                语法:super.name,super.run(),super(jim,23)

               super的查找顺序是找自己的直接父类

               super调用父类构造器,必现在首行。

      多态:

        理解:一个事务的多种形态。通俗理解:日常生活之我要来个人帮帮我(人是个抽象的,不存在的,具体执行的过程中具体是谁)

        现象:将子类的实例化结果指向父类的引用Person person= new Sum();

        注意:多态是针对方法,不是属性。

    private static void run(Car car){
         soutv(car.brand+car.name);      
    }
    View Code

        obj instanceof class

        总结:面向抽象编程、面向模板编程(抽象类)、面向规范编程(接口)。

         

        

    抽象类abstract:不能实例化,抽象方法不能有实现。

        子类继承抽象类的父类,必现实现抽象方法。

    接口:

      定义:

        接口是对类的一组需求描述

        接口所描述的方法不能有实现

        接口所描述的方法都是public,不写默认也是public

        接口的继承叫实现,使用关键字implements

      特性:

        接口不是类,不能进行实例化(new)

        接口允许多实现,使用逗号分开

    多态总结:

      什么时候用接口,什么时候用抽象类?接口是个规范,抽象类是个模板(一个大框架,有些行为的)

  • 相关阅读:
    求解未知矩阵的一些方法
    数二2019-19真题最简单的解法
    极坐标转化为参数方程的题目
    隐函数的不定积分
    Go 语言高性能编程
    1457. Pseudo-Palindromic Paths in a Binary Tree (M)
    0754. Reach a Number (M)
    1345. Jump Game IV (H)
    0091. Decode Ways (M)
    0498. Diagonal Traverse (M)
  • 原文地址:https://www.cnblogs.com/wangkc/p/12515705.html
Copyright © 2011-2022 走看看