Java第六天

面向对象程序思想

一、面向过程
  分析出解决问题的步骤,然后用函数(Function )或者程序过程(Poceduere )把这些步骤步一步地实现,程序执行的过程就是按一定顺序调用函数并 且执行函数的过程。解决问题的过程就是函数执行的过程。所以面向过程(Procdure Oriented )的核心是,分析事物过程,用函数来实现。
二、面向对象
  究竟什么是面向对象?我们需要一 点咬文嚼字的精神,需要点穷理尽微的劲头。
  早晨起来面向太阳,不是只要求站立的姿势,而是要求怎么看世界的。看到了早晨的太阳在哪里,就知道了它红彤彤、朝气蓬勃的样子,还知道了前面是东,后面是西的方位,太阳为方向提供了参照。
  面向对象(Objet- Oriented, 00)也是同样的道理。面向它们,而不是背离它们,不是对它们的存在视而不见。
  面向对象,把对象当作整体,而不是撕裂的条块分割的东西,因为对象以整体存在于世。这有点像以人为本的理念。
  基于这个基本理念,面向对象语言(OOPL)中把对象的属性和操作封装起来,作为一个整体。认为对象的操作是对象自己的事情,这在思维方式和解决问题方式上是回归自然。
  基于这个理念,易于发现了对象之间的继承关系,例如学生干部类从学生类继承了许多,又新增了某些属性和操作,例如职务。这使得代码可以重用( Reusable),编程效率更高了。
三、例子
  基于这个理念,让同类操作拥有同一个名字,它们在不同语境下有不同的含义。
  例如:三角形、矩形、圆形、梯形计算面积,可以共用一个名字area,而不必取4个不同的名字,这使得软件的维护变得容易了。其实,我们还是要定义4个方法:

 double area(Trangle tri) { //计算三角形面积return 低*高/2;}double area(Rectangle rect) { //计算矩形面积return 低*高;}double area(Circle cir) { //计算圆形形面积return PI*半径*半径;}double area(Trapezoid trap) { //计算梯形形面积return 梯形面积计算公式;}

一个更加形象的例子:

import java.util.Scanner;class Circle {private double radius;Circle(double r) {this.radius=r;}public double getArea() {return Math.PI*radius*radius;}// 求面积public double getPerimeter() {return 2*Math.PI*radius;}// 求周长
}
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);double r = sc.nextDouble( ); Circle c = new  Circle(r);System.out.println(c.getArea());System.out.println(c.getPerimeter());sc.close();}
}

四、面向对象的三大特性
  1.封装性

  •   在你的计算机中,有很多文件夹,每个文件夹里有许多文件。同一个文件夹中的文件一般有相同属性:比如,都是java文件,或者都是class
    文件。每个文件是一个对象,文件夹就是一个类。具有相同属性的对象归为一个类。文件夹名字就是类名。
  •   文件对象除了具有文件名、大小、最后修改时间等属性,是不是还有对属性的操作?件可能被编辑,拷贝、删余、粘贴,这些操作,可以改变属性的值。例如,编辑文件后,文件的名字、大小和最后修改时间都发生了改变。
  •   封装(Eapsulaton ).就是在类中对本类对象有哪些属性,属性的名字、
    数据类型、可见性,以及对象有哪些操作进行集中说明。按程序语言术语,类是一种数据类型, 用类可以定义一个一个对象。
  • 对象是变量或者称为类的实例。
  • 封装,实现了数据的隐藏( data hding), 部分数据对程序的其他部分隐献。隐藏的目的是防止别人修改数据。
  • 例31中,Crle. Rctungle 和Tange类中分别封装了一些数据和方法。
    实现隐度java只需要在数据定义的语句中使用修饰符即可。
  • 例如:private int x;x数据不能在其他类中不能被直接访问,故其被“的藏”语句中的private
    就是描述变量可见性的修饰符。

  2.继承性

  • 继承。继承机制是为了支持代码的可重用性。
  • 定义新的类。可以从已有的类中组继承代码。减少了程序的总代码量和写代码时间,缩短了开发周期。
  • 例如:定义了三角形类Tiangle则定义直角三角形Rtriangle继承性可以继承Tiangle中的数据和方法。
    3.多态性
  • 多态自然语言的词多义现象,比如汉字打厂用在不同上下文中含义不同。“打酱油”是买酱油,“打苹果“是削苹果皮,“打牌”是玩牌,文确定同义的微法显然增强了“打车”则是租车。这种根据某个词的上下多志性口形式,表达多种不同的动作。增加了词的表达能力。
  • 代表是Java中方法重载和方法重写。

Java面向对象程序思想相关推荐

  1. java面向对象程序练习_5本面向经验丰富的程序员的高级Java书籍

    java面向对象程序练习 Sometimes back I wrote an article for Best Core Java Books for beginners, today I am sh ...

  2. 小赵老师课堂开课了 !天道酬勤,相信自己学到就是赚到,一起来学习吧--- java面向对象程序设计基础的知识!!!!

    大家!我是下一个pony,今天我又来更新帖子了~ 今天我们讲解的是java面向对象程序设计基础的知识~我们从以下几个方面来进行简单的讲解: ============================== ...

  3. 我们程序员眼中的对象-看完华华的文章妈妈再也不担心我找不到对象了-Java面向对象编程思想理解系列(1)

    大家好!!!我叫霜华,是一个帅到没天理 骚里骚气,热爱人生与绿色 是一个不像程序员的程序员 作为一个在java这门领域沉迷一年半的人,如今在技术栈广度和深度 还是业务能力在客观层面讲确实进步迅速 (可 ...

  4. java面向对象程序课本,Java面向对象程序设计

    出版说明 前言 第1篇 Java程序设计基础 第1章 Java语言入门 1.1 Java的诞生 1.2 Java的特点 1.3 Java程序的开发工具 1.4 Java运行环境 1.4.1 JDK的下 ...

  5. Java面向对象程序基础设计之第三章

    3.1.1 自定义包 如果在程序中没有声明包,类将被存放在default的包中,该方式不被提倡. 语法: package 包名 包命名规范: 包的命名规范应当体现出项目资源良好的划分 自定义标签类所在 ...

  6. Java面向对象程序开发——JDK8新特性

    文章目录 网络编程入门知识 JDK8新特性 Lambda表达式 以多线程为例: Lambda结合for循环: Stream流 获取一个流的2种常用的方式: 常用方法 终结方法 延迟方法 案例 网络编程 ...

  7. java面向对象程序_面向对象编程基础(java)

    面向对象编程基础 1.1 面向对象概述 在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来. 开发周期无休止的拖 ...

  8. 问渠那得清如许?为有源头活水来。——java面向对象的思想

    20169205 2016-2017-2 <移动平台应用开发实践>第2周学习总结 教材学习内容总结 本次作业要求的部分主要是Java高级语言实现面向对象编程的基本方法,其中所介绍的面向对象 ...

  9. Java面向对象编程思想

    面向对象三个特征: 封装.继承.多态 封装: 语法: 属性私有化(private).提供相对应的get/set 的方法进行访问(public). 在set/get的方法中对属性的数据 做相对应的业务逻 ...

最新文章

  1. AI一分钟 | 吴恩达和中联重科合作,进军智慧农业;百度Q2营收260亿元,净利润64亿...
  2. Linux下USB suspend/resume源码分析【转】
  3. 如何启用漫游用户功能
  4. bzoj2058: [Usaco2010 Nov]Cow Photographs(逆序对)
  5. Android之MVVM框架 - 数据绑定
  6. 制作 docker 镜像
  7. PHP实现一个轻量级容器
  8. oracle创建视图类型为日期,oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB...
  9. Java集合中List,Set以及Map等集合体系详解(史上最全)
  10. 软件测试方法和技术知识点有哪些?
  11. 笔记5:QQ群聊天机器人
  12. 编程语言学习方法总结
  13. 大芒果mysql下载_大芒果wow服务端
  14. Validation参数校验注解
  15. 汽车厂VIN码生成软件
  16. Microsoft Visual SourceSafe
  17. P6LED显示屏价格报价用材规格与技术参数
  18. 编程初学者看不懂程序的几点建议
  19. 485通讯的校验和_组态王与西门子S71200PLC无线Modbus通讯
  20. 关于localhost404打不开

热门文章

  1. Chromium源码—base基础库说明
  2. hive server2源码地址在哪_实战搭建Thinkphp二次开发威客RW平台源码粉丝关注投票发布系统...
  3. 实习入职这几天天的感受与感想
  4. [Linux] centos 6.5 httpd 自建CA 认证 实现 https 服务
  5. 微软推出三维立体地图搜索(3-D City Live Search)
  6. 《洋娃娃和小熊跳舞》吉他简谱
  7. 有关深度学习中的目标检测论文阅读
  8. springboot---web---静态资源映射
  9. 构建之法阅读笔记002
  10. [IE9] IE9正式版发布(附官方下载链接)