年底了,总结下知识点和遇到过的面试题目。

1,如何理解面相对象。

  ‘万物皆对象’说的没错,听起来挺反感的,问一个说一个。有些话觉得用自己的话讲出来肯俗点,但可以证明你理解了一点。我理解的是:之所以叫面向对象语言,可以把现实中的所有的物体都当做一个个对象来解决,每个对象都有其独立的属性和方法,每个对象之间具有一定的联系,在面向对象设计编程中,不需要考虑对象的实现细节,每个对象都有自己的任务和功能。比如:可以找身边的一些例子,比如垃圾桶,特征属性(形状,大小,颜色),方法(能装可回收、不可回收垃圾),用java语言就可以将其封装成一个类,类中就有所说的这些垃圾桶特征和方法。网上有这个例子觉得不错( 面向对象就好比是你们一家人是个整体是一个大的对象,你们家的每个人就是对象中的一个方法,你们的祖先就是你们的父类,因此你们继承了祖先(父类)的很多特性,而你们一家人和你们的祖先一起被封装了,所以别人只知道你们这个大家族(比如姓氏为王的家族)而不知道你们家(对象)的特性。你们大家族有很多的小家族(对象),也许你们家是做生意的,你大伯一家都是当兵的所以就这样多态性咯。 )简而言之面相对象就是为了将代码和现实生活结合方便理解和编写。特征:封装、继承、多态,抽象。

封装:一个类中可以包含某些属性和方法,被这个类封装,其他类中要访问可以通过找到当前类,调取里面的方法。可以理解为一个每个类都是个大箱子。通过封装,只为用户提供接口,而隐藏了内部的集体实现,例如访问权限。

继承:父类声明指向子类对象,通过引用调用父类属性和方法,单继承。一般我们会吧一些具有共同特征方法的类提取出来,其他子类通过继承就可以得到这些共性,可以使代码更简洁,重用率高,缺点耦合性高,牵一发动全。

多态:重载,一个类中包含多个同名方法,返回值不同,参数列表不同,参数列表表示(数量,顺序不同),只针对当前类,重写 :父类引用指向子类对象,可以调用父类的方法。子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写,指父类和子类,简而言之重写比如A里有say() B继承A B a = new B(); a.say();其实调用的是子类的方法,故知重写。

抽象:分抽象类和抽象方法,抽象类abstract修饰类且不允许被实例化的类,类中可以用普通方法和抽象方法体,只能通过继承重写类中的抽象方法才能被实例化;抽象方法是用abstract修饰没有方法体的方法,也只能被子类重写后实例。两者都是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处。简而言之,抽象类中可以没有抽象方法,为普通类,而抽象方法必定是一个抽象类(至于jdk新特性来没来得急研究),只能通过子类实现抽象方法来实例这个方法,若子类没有实现,其子类也是抽象类。

java基础面向对象总结(一)的更多相关文章

  1. java基础面向对象之类与对象

    java基础面向对象之类与对象 2017-01-14 1.面向对象的基本概念 以一种组建化的形式进行代码设计 1)在面向对象程序设计中包含有如下几种特性 •封装性:保护内部结构的安全性 •继承性:在已 ...

  2. 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点

    前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // ...

  3. Java基础-面向对象第三大特性之多态(polymorphism )

    Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...

  4. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  5. Java基础-面向对象第一特性之封装(Encapsulation)

    Java基础-面向对象第一特性之封装(Encapsulation) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.理解什么是面向过程和面向对象 面向过程与面向对象都是我们编程中 ...

  6. JAVA(一)JAVA基础/面向对象基础/高级面向对象

    成鹏致远 | lcw.cnblog.com |2014-01-23 JAVA基础 1.开发环境搭建 JAVA程序的执行流程 JAVA命令->要使用一个*.class文件(类文件)->通过c ...

  7. Java基础——面向对象

    Hello 大家好,我又来啦,今天我们来说说Java的面向对象. 还记得之前去面试几家公司的实习生职位,大部分面试官都问过我有关面向对象 的问题,不知道以后还会不会问,估计是不会了吧...(:3[▓▓ ...

  8. 九、Java基础---------面向对象封装、继承、多态

    封装 1.1 基本概念  封装(encapsulation)是面向对象三大特征之一,它是指将对象的状态信心隐藏在对象的内部,不允许外部直接进行访问,而是通过该类提供的方法来实现对内部信息的操作和访问. ...

  9. 面试题-Java基础-面向对象

    1.面向对象软件开发的优点有哪些? 代码开发模块化,更易维护和修改.代码复用.增强代码的可靠性和灵活性.增加代码的可理解性.面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象.下面的章节我们会 ...

  10. JAVA基础——面向对象三大特性:封装、继承、多态

    JAVA面向对象三大特性详解 一.封装 1.概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: 只能通过规定的方法访问数据. ...

随机推荐

  1. 在ensp上模拟企业网络场景并Access接口加入相应VLAN

    模拟的企业网络大概描述: 公司内网是一个大的局域网,二层交换机S1放置在一楼,在一楼办公的部门有IT部和人事部:二层交换机S2放置在二楼,在二楼办公的部门有市场部和研发部.由于交换机组成的是广播网,交 ...

  2. 【2018寒假集训 Day2】【动态规划】回文字

    回文字(palin) 问题描述: 如果一个单词从前和从后读都是一样的,则称为回文字.如果一个单词不是回文字,则可以把它拆分成若干个回文字.编程求一个给定的字母序列,最多要分割成几部分,使每一部分都回文 ...

  3. Oracle 分区表管理之组合分区(分区索引失效与性能比较)

    整体结构如下: Oracle  分区表管理之组合分区(分区索引失效与性能比较) 虽然老早就使用了分区表,终于有时间写有关分区表的内容:不是所有的场景数据量变大需要用到分区表,一般单表数据超过2g可以考 ...

  4. HT Vue 集成

    (本文中 dataModel = dm = 数据容器, gv = graphView = g2d = 2D 视图) 初始化项目 使用 vue-cli 生成项目.生成注意以下几个问题 1. 建议手动配置 ...

  5. Altium Designer 20.0.9

    Altium Designer 20.0.9 Download: http://dl3.downloadly.ir/Files/Software/Altium_Designer_20.0.9_Buil ...

  6. spring+cxf 开发webService(主要是记录遇到spring bean注入不进来的解决方法)

    这里不介绍原理,只是记录自己spring+cxf的开发过程和遇到的问题 场景:第三方公司需要调用我们的业务系统,以xml报文的形式传递数据,之后我们解析报文存储到我们数据库生成业务单据: WebSer ...

  7. SpringMVC 请求/响应乱码问题解决方案

    请求乱码解决之get乱码问题 GET请求乱码原因分析 GET请求参数是通过请求行中的URL发送给Web服务器(Tomcat)的. Tomcat服务器会对URL进行编码操作(此时使用的是Tomcat设置 ...

  8. javaScript中的indexOf使用方法

    JavaScript中的indexOf使用方法 概述 indexOf大小写敏感,其中的O要大写 对于字符串而言 indexOf返回字符串第一次出现的位置,若没有出现返回-1 1 var str = & ...

  9. vue中,使用element ui的弹窗与echarts之间的问题

    今天项目中有个需求,就是在页面中点击一个图标,弹出一个抽屉式的弹窗(弹窗是element UI的抽屉),弹窗里边是echarts呈现的数据,当我直接用echarts的时候,报错dom没有获取到: 这就 ...

  10. 利用 Flask 动态展示 Pyecharts 图表数据的几种方法

    本文将介绍如何在 web 框架 Flask 中使用可视化工具 pyecharts, 看完本教程你将掌握几种动态展示可视化数据的方法,不会的话你来找我呀- Flask 模板渲染 1. 新建一个项目fla ...