1、程序设计的三种基本结构

顺序结构

顺序结构表示程序中的各操作是按照它们在源代码中的排列顺序依次执行的

选择结构

选择结构表示程序的处理需要根据某个特定的条件选择其中的一个分支执行。选择结构有单选择双选择和多选择三种形式

循环结构

循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才停止循环。在循环结构中最主要的是:在什么情况下执行循环?哪些操作需要重复执行?循环结构的基本形式有两种:当型循环和直到型循环

2、面向对象的三个基本特征

继承

继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法

封装

封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能

多态

多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着个类型的对象在执行同一个方法时,可能表现出多种行为特征

抽象

除以上三种之外,抽象也是面向对象的重要部分,抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是考虑部分问题。例如需要考察 Person对象时,不可能在程序中把 Person的所有细节都定义岀来,通常只能定义 Person的部分数据、部分行为特征——而这些数据、行为特征是软件系统所关心的部分。

基于对象

基于对象不同于面向对象,基于对象也使用了对象,但是无法利用现有对象模板产生新的对象类型,继而产生新的对象,也就是说基于对象没有继承的特点。而多态也需要继承,所以基于对象也无多态。javascript就是基于对象的编程语言,它使用一些封装好的对象,调用对象的方法,设置对象的属性

Java——理解面向对象的更多相关文章

  1. Java 雇员管理小练习(理解面向对象编程)

    在学习集合框架的时候,初学者很容易练习到学生管理系统.雇员管理体统等练习题.在学习集合框架之前,基本上Java基本语法都学完了,集合框架也从侧面的检验对前面学习的理解.下面用一个曾经做过的练习题,回顾 ...

  2. 《疯狂Java讲义》学习笔记——第2章 理解面向对象

    面向对象的三种基本特征:继承,封装,多态 UML(统一建模语言) 2.1 面向对象 2.1.1 结构化程序设计简介 图2.1  结构化软件的逻辑结构示意图 从图2.1可以看出,结构化设计需要采用自顶向 ...

  3. 全面理解面向对象的 JavaScript (share)

     以下分享自:  http://www.ibm.com/developerworks/cn/web/1304_zengyz_jsoo/   简介: JavaScript 函数式脚本语言特性以及其看似随 ...

  4. 全面理解面向对象的 JavaScript

    前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学 ...

  5. java学习面向对象之异常之一

    一.异常的概述: 什么是异常?在我们编写java程序的时候,会出现一些问题,比如内存溢出啊或者数组索引超出最大索引啊,这些编程当中出现的这些个问题就是异常.但是异常也分为可以处理的和不可以处理的.比如 ...

  6. Java与面向对象

    一.面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应 ...

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

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

  8. 摘抄--全面理解面向对象的 JavaScript

    全面理解面向对象的 JavaScript JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或 ...

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

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

随机推荐

  1. Struts2-学习笔记系列(8)-异常处理

    后台抛出自定义异常 public String execute() throws Exception { if (getUser().equalsIgnoreCase("user" ...

  2. Python Requests-学习笔记(5)-响应状态码

    我们可以检测响应状态码: r = requests.get('http://httpbin.org/get') r.status_code 为方便引用,Requests还附带了一个内置的状态码查询对象 ...

  3. ASP.NET Core 3.1+MySQL 部署到docker上面使用docker-compose+DockerFile

    一.新建DockerFile文件 选择Linux版本 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR ...

  4. std::string::copy函数

    size_t copy (char* s, size_t len, size_t pos = 0) const;

  5. JPA入门例子(采用JPA的hibernate实现版本) --- 会伴随 配置文件:persistence.xml

    JPA入门例子(采用JPA的hibernate实现版本) 分类: j2se2011-03-30 16:09 45838人阅读 评论(9) 收藏 举报 jpahibernate数据库jdbcjava框架 ...

  6. 运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接

    运用JAVA的concurrent.ExecutorService线程池实现socket的TCP和UDP连接 最近在项目中可能要用到socket相关的东西来发送消息,所以初步研究了下socket的TC ...

  7. 数据结构和算法(Golang实现)(9)基础知识-算法复杂度及渐进符号

    算法复杂度及渐进符号 一.算法复杂度 首先每个程序运行过程中,都要占用一定的计算机资源,比如内存,磁盘等,这些是空间,计算过程中需要判断,循环执行某些逻辑,周而反复,这些是时间. 那么一个算法有多好, ...

  8. CVE-2019-0232 远程代码执行漏洞-复现

    0x00 漏洞介绍 该漏洞是由于Tomcat CGI将命令行参数传递给Windows程序的方式存在错误,使得CGIServlet被命令注入影响. 该漏洞只影响Windows平台,要求启用了CGISer ...

  9. G. 大树的水塘

    已知每块石头中的规格是1×1×1,水塘的长度为N,宽度为1,在第i位置,大树放了ai个石头 设大树建造的水塘蓄水量为V 请你求出在长度和宽度不变的情况下,建造一个蓄水量不小于V的水塘最多可以节约多少石 ...

  10. 数据结构与算法--堆(heap)与栈(stack)的区别

    堆和栈的区别 在C.C++编程中,经常需要操作的内存可分为以下几个类别: 栈区(stack):由编译器自动分配和释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈. 堆区(heap ...