面向对象的三大基本特征是:封装、继承、多态

  1. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了 数据
  2. 隐藏功能或者信息的细节,使用者只关注功能的使用,而不需要关心实现细节 继承是为了重用父类代码,同时为实现多态性作准备
  3. 关键字extends,子类可以集成父类的成员变量和成员方法
  4. java采用的是单根集成体系
  5. 多态性是发送消息给某个对象,让该对象自行决定响应何种行为。通过将子类对象引用赋值给超类 对象引用变量来实现动态方法调用。
  6. 一个事物可以有多种表现形式。
  7. 体现形式常见的有3种 父类型引用子类对象  方法重写   方法重载。
  8. 面向对象三大特征的优缺点 设计目标:高内聚低耦合 ,可维护性提高 ,重用性提高 ,扩展性增强 ,执行效率
  • 概述

  • 面向过程是一种自上而下的程序设计方法,主要思路专注于算法的实现 自上而下的设计方法,设计者用一个main函数概括出整个应用需要做的事情,然后把main方法拆解成 不同的步骤,对应不同的函数 过程式的特征是以函数为中心,用函数作为划分程序的基本单位;数据在过程式设计中处于从属的位置 过程式设计的优点是易于理解和掌握,这种逐步细化问题的设计方法与大多数人的思维方式比较接近 过程式设计是自上而下,这就要求设计者在开始时要对需要解决的问题有一定的理解,然而在问题比较 复杂时,要做到这一点比较困难;当开发需求变化时,以前对问题的理解会变得不再适用 软件代码的重用性很差,即使重用,也是简单的复制和拷贝,代码数量急剧增加。而不能直接继承和应 用 面向过程的方法将数据和过程分离,使得数据的改变很可能带来代码的变化 面向对象是一种自下而上的程序设计方法,以数据为中心,类是表现数据的单位,是划分程序的基本单 位 面向对象设计是自下而上的特性,允许开发者从问题的局部开始,在开发过程中逐步加深对系统的理 解。需求变化会作用到系统开发本身,形成一种螺旋式的开发方式 面向对象设计中,类封装了数据,而类的成员函数作为其对外的接口,抽象地描述类,用类将数据和操 作这些数据的函数放在一起,这就是面向对象设计方法的本质
  • 面向对象的概念

  • OO面向对象Object Oriented是软件开发方法 面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范paradigm,其基本思想是使用 对象、类、继承、封装、消息等基本概念来进行程序设计 从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类 的自然思维方式 开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域 不仅仅是软件,还有计算机体系结构和人工智能等 面向对象的思想已经涉及到软件开发的各个方面。如面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及经常说的面向对象的编程 实现(OOP,Object Oriented Programming) OOP使得现实世界中的概念在计算机程序中编程模块,它包括构造程序的特征以及组织数据和算法 的机制 面向对象是一种对现实世界理解和抽象的方法 传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向 对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们 都可以被看作一个小型的“机器”,即对象 OOP语言有3大特征:封装、继承及多态,所有这些特征与类的概念是息息相关的 面向对象是指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象 作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性 对象、类、实体之间的关系和面向对象的问题求解思维方式
  • 对象

  • 对象是要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事 物,还能表示抽象的规则、计划或事件。对象是一个客观存在的、唯一的实体,是一个类的动态实例, 拥有自己的标识、数据与行为 在现实世界中:是客观世界中的一个实体 在计算机世界中:是一个可标识的存储区域 现实世界中所有的事物都是对象 对象都具有某些特征,并展现某些行为 对象的状态和行为 对象具有状态,一个对象用数据值来描述它的状态 对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中 对象的两个要素 属性:用于描述对象静态特性(结构特性)的一个数据项,描述一个人可用姓名、性别、身份证号 等属性 方法(也称服务):用于描述对象动态特性(行为特性)的一个操作系列 每个人都具有工作、学习等行为特性 对象将数据和施加于数据上的操作打包成一个不可分割的最基本的模块,使得仅有该类的有限个方 法才可以操纵、改变这些数据,
  • 用Java语言对现实生活中的事物进行描述,通过类的形式来体现 类是具有共同属性和行为的对象的抽象,具有相同特性(数据元素)和行为(功能)的对象的抽象 就是类 对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象 类实际上就是一种数据类型 类是用于组合各个对象所共有操作和属性的一种机制 类是具有相同属性和行为的一组对象的集合 类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述 类可以定义为数据和方法的集合,类也称为模板,因为它们提供了对象的基本框架 一旦定义类后,就可以用这种新类来创建该类型的对象 类就是对象的模板(template ) 而对象就是类的一个实例(instance)
  • 消息和方法

  • 对象之间进行通信的结构叫做消息。发送一条消息至少要包括说明接受消息的对象名、发送给该对 象的消息名(即对象名、方法名) 类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体
  • 类和对象之间的关系

  • 类是事物的描述 类是Java程序的核心,它定义了对象的形状和本质,可以用类来创建对象。当使用一个类创建了一 个对象时,通常说给出了这个类的一个实例 类由类声明和类体构成,一般命名方法为:首字母大写,大写字母分词,例如XueSheng
    class className {
    类体;
    }

    类包含数据成员(数据、属性)和成员方法(函数)。一般建议数据成员应该是通过函数(方法)访问的 对象是类的实例,就是应用中定义的某个类的变量,例如Person p=new Person(); p就是对象 类是和问题域相关的具有相同属性和行为的对象的抽象;对象是该类事物的实例,在Java中通过 new来创建的,

  • 基本规则 1、了解业务需求,查找具体的研究目标:对象 2、使用抽象的方法将具体的研究目标转换为新的数据类型定义:类

  • //一个文件中可以定义无数个类,但是只能有一个public class,而且公共类的名称必须和文件名称
    一致
    public class Student {
    //数据成员
    private Long id; //学生编号
    private String name;//姓名
    private double high;
    //成员方法
    public void 吃饭(){
    high+=0.1;
    }
    }
    class Teach{} //非公共类
    public class Test1{
    public static void main(String[] args){
    Student s1=new Student();
    s1.吃饭();
    }
    }
    

    封装

  • 在面向对象程式设计方法中,封装Encapsulation是指一种将抽象性函式接口的实现细节部分包装、隐藏 起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问 反射机制 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于能修改自己的实现代码,而不用修改那些调用代码的程序片段
  • 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性
  • //第一步是确定研究的目标对象---可以区分的独立个体
    // 需要方法和属性
    class Student {
    //成员属性---静态特征的描述
    private boolean sex; //一般使用私有属性,共有的get/set方法
    //成员方法---提供的功能描述
    public boolean getSex(){
    return this.sex;
    }
    //不允许修改sex,所以不提供set方法
    protected void setSex(Boolean sex){ //如果在特殊情况下允许修改,可以使用范围限
    定词进行表示
    this.sex=sex;
    }
    }
    //构建对象
    Student s1=new Student();
    s1.setSex(true);
    s1.setSex(false); //是否允许取绝于限制
    

    封装有三大好处

  • 良好的封装能够减少耦合
  • 类内部的结构可以自由修改
  • 可以对成员进行更精确的控制
  • 隐藏信息,实现细节
  • 4个关键字

  • 用于进行访问控制
  • //一个文件种可以定义无数个类,但是只能有一个public class公共类
    public class Student { //类的范围限定词分为2种情况。外部类的范围限定词可以使用无范围
    限定词和public两种;而内部类上可以使用4种范围限定
    //成员属性,类种包含哪些静态特征取决于问题本身
    private Long id; //private只能在当前类中直接访问
    protected String name; //protected可以在同包或者子类中直接访问
    int age;//没有范围限定词,默认或者package限定词,只能在同包中直接访问
    public double salary;//public到处可见
    //一般规则是私有属性,共有的get/set方法

    记忆的方法

  • 类定义规则:要求类内高内聚,类间弱耦合 封装确实可以使容易地修改类的内部实现,而无需修改使用了该类的客户代码 例子:计算装修费用 查找名词:房间(多个墙) 墙(长、高) 窗户(长、宽) ......

Java面向对象概论相关推荐

  1. java面向对象-------静态初始化块

    1.构造方法用于对象的初始化!静态初始化块,用于类的初始化操作,在静态初始化块中不能直接访问非static成员. package java面向对象; /** * 测试静态初始化块 */public c ...

  2. JAVA面向对象-----final关键字

    JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率.1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4: ...

  3. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  4. 12 Java面向对象之多态

    JavaSE 基础之十二 12 Java面向对象之多态 ① 多态的概念及分类 多态的概念:对象的多种表现形式和能力 多态的分类 1. 静态多态:在编译期间,程序就能决定调用哪个方法.方法的重载就表现出 ...

  5. 猫抓老鼠-Java面向对象特点梳理

    我们先设计一个猫抓老鼠的小游戏: ⊙猫和老鼠都有名字和体重两种属性,猫有抓老鼠的方法,对应的老鼠则有逃跑的方法. ⊙首先游戏的结果是猫抓住了老鼠或者老鼠逃跑了,对于这两种情况,我们用体重来区分,若猫的 ...

  6. java面向对象特征及阐述,Java面向对象四个特征

    Java面向对象有四个特征:抽象.封装.继承.多态.其中封装.继承.多态又被称为Java的基本特征. 抽象: Java中会把客观事物抽象成一个类.类就是封装了数据以及操作这些数据的代码逻辑实体.用字符 ...

  7. 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告

    20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...

  8. 第7篇-JAVA面向对象Ⅲ

    第7篇-JAVA面向对象Ⅲ 每篇一句 :任何值得去的地方,都没有捷径 初学心得: 温故而知新 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-09| JAVA面向对象 Ⅲ] 1.J ...

  9. 谈谈java面向对象之抽象,手把手带你搞定java面试之面向对象

    计算机语言晦涩难懂,打算利用通俗易懂的文字带领大家学习java基础.如果文中有什么错误的地方,欢迎大家在评论区指正,免得我误人子弟. Question:当面试JAVA开发岗位的时候,面试官最爱问的问题 ...

最新文章

  1. ibatis的there is no statement named xxx in this SqlMap
  2. 西湖大学新冠研究登上Science封面,解析ACE2全长结构,是他们看清了新冠病毒如何入侵人体...
  3. 欢迎进入Node.js世界
  4. 简单的python抢红包脚本-Python自动抢红包,超详细教程,再也不会错过微信红包了!...
  5. 了解零信任-SDP关系
  6. 计算机操作系统作业答案,计算机操作系统作业及答案
  7. JS 数组 各项操作
  8. java学习(39):九九乘法表
  9. mysql备份还原数据库操作系统_mysql 命令行备份还原数据库操作
  10. KDevelop的使用(包括交叉编译)[原创]
  11. 抓包神器之Charles,常用功能都在这里了
  12. 汇编语言王爽 实验七
  13. 中原银行AI面试记录
  14. SaaS最通俗易懂的解释是什么?看这篇就够了
  15. 循环-05. 兔子繁衍问题(15)
  16. 五分钟理解什么是面向对象
  17. 人员离职it检查_公司软件开发人员离职信_检讨书
  18. 【超融合】818超融合发展经历了哪几个阶段!
  19. Java毕设项目:智慧校园管理系统
  20. Python爬虫之四:使用BeautifulSoup爬取微博热搜

热门文章

  1. E. DS线性表—多项式相加
  2. 四年级下册计算机技术做福字,西冷印社版四年级下册书法04集字临摹练习(一)集体备课教案教学设计...
  3. 马云很郁闷,每晚有一千万人上淘宝只看不买!
  4. Deformable Conv
  5. Tomcat设置允许跨域访问
  6. 微信小程序基础学习(WXML)
  7. 成都理工大学计算机专业种类,西南交大的计算机专业好还是成都理工大学的好?...
  8. php正则表达式替换,PHP正则表达式替换函数preg_replace
  9. matlab正弦光栅条纹及调整
  10. 均值回归理论,均值回归法则是指万物最终都将回归于其长期的均值