第三章 JAVA面向对象编程-1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章Java面向对象编程2回顾一、Java数据类型Java中的数据类型分为两个类别:原始数据类型(基本数据类型)、引用数据类型(复合数据类型)数据转换有两种类型:自动类型转换和强制类型转换二、Java标识符命名检查下面这些是否是合法的变量名变量命名的几点建议(知名取义、类名、静态属性,属性、方法)三、Java运算符(有哪些,运算规则)四、Java支持控制语句编程结构:if,switch,for,while,do-while$lastnamediscount%zipcodeint3本章目标掌握类和对象的特征(重点)理解抽象和封装(理解)理解对象与类之间的关系及差异(难点)掌握包的创建和导入(重点)理解继承及其特点(理解)运用JAVA程序实现继承(重点)理解多态及其特点设计(理解)运用JAVA程序实现多态(理解)掌握访问修饰符和方法修饰符(难点)4程序发展阶段面向对象是一个比较先进的设计思路,在之前实际上有种开发设计,称为面向过程,也是程序发展的主要的两个阶段。其区别在于:用一个例子来解释,如一个木匠要做一个盒子,那么做这个盒子的出发点会有两种方式:面向对象:先想好要做的盒子,之后再去找相应的工具去做。面向过程:不去想要做什么样的盒子,随意取用工具。面向过程:专著于解决问题面向对象要经过完整的分析、设计之后才可以进行开发:5面向对象与面向过程的区别面向过程注重于算法,通过函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。缺点:没有面向对象易维护、易复用、易扩展面向对象优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护缺点:性能比面向过程低6面向对象的程序开发实际上分三种OOA(面向对象分析)是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。OOD(面向对象设计)是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。面向对象设计(OOD)是一种软件设计方法,是一种工程化规范。OOP(面向对象编程)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。7面向对象编程OOP目的在计算机程序中模拟现实世界中的概念在OOP中,现实世界的所有事物全都被视为对象能够在计算机程序中用类似的实体模拟现实世界中的实体是设计和实现软件系统的主要方法8面向对象三个特征1.封装:对外部是不可见的,它可以保护程序中的某些内容,对外部提供某些接口。2.继承:是用来扩展功能的,最低都是大于或等于父类的相关功能。3.多态:指一个方法只能有一个名称,但可以有多种状态,即程序中可以定义多个同名的方法。9oop的核心oop的核心是对象对象表示现实世界的一个实体,它为不同的目的而存在。对象具有两个用途:1.有助于了解现实世界2.为计算机应用程序提供了应用基础10•万事万物皆对象世界是由什么组成的?名胜人物品动物,植物……什么是对象?11身边的对象布兰尼朱丽叶顾客姓名:朱丽叶年龄:28体重:52千克操作:购买商品姓名:布兰尼职衔:收银员年龄:35体重:60千克操作:收款打印账单12对象的特征——属性属性——对象具有的各种特征每个对象的每个属性都拥有特定值例如:布兰尼和朱丽叶的体重不一样60kg布兰尼属性35岁收银员布兰尼13对象的特征——方法方法——对象执行的操作打单收银方法刷卡收银员布兰尼14对象的概念对象面向对象编程的核心为计算机应用程序提供实用基础完成特定任务表示现实世界中的实体“对象是存在的具体实体,具有明确定义的状态和行为。”15描述下列对象?列出尼古拉斯·凯奇驾驶的这辆法拉利F360Spider的属性和方法列出小狗对象的属性和方法属性:品牌:法拉利型号:F360Spider颜色:黄色价格:380万元方法:发动停止加速属性:颜色:白色方法:叫跑吃16小结1说一说教室里的对象描述他们的属性和方法颜色:黑色品牌:BENQ投影姓名:张三年龄:20学习类型:白炽灯开关变亮变暗材制:木质支撑物品17什么是“类”抽取出下列对象的属性和方法的共同特征顾客18类顾客类轿车类…………类是模子,确定对象将会拥有的特征(属性)和行为(方法)类是对象的类型不同于int类型:具有方法各种口味的球状冰淇淋球状冰淇淋模子数据类型特征声明使用基本数据类型没有方法inti=8;i++;引用数据类型具有方法Studentstu=newStudent();stu.age++;19类的概念类以共同特性和操作定义实体类是用于组合各个对象所共有操作和属性的一种机制形状类动物类汽车类类的示例“类是具有相同属性和行为的一组对象的集合”20练习哪些是类?哪些是对象?学校大学四川文理学院21小结2类和对象有什么区别呢?类是抽象的概念,仅仅是模板,比如说:“人”对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”小布什普京克林顿……“人”类特征(属性)年龄体重行为(方法)衣食住行22小结类是概念模型,定义对象的所有特性和所需的操作对象是真实的模型类和对象类定义实体对象是实际的实体类是对象的原型所有属于同一个类的对象都具有相同的特性和操作23Java是面向对象的语言所有Java程序都以类class为组织单元关键字class定义自定义的数据类型publicclassHelloAccp{publicstaticvoidmain(String[]args){System.out.println(使用Java语言理解程序逻辑);…}}24Java类模板类将现实世界中的概念模拟到计算机程序中publicclass类名{//定义属性部分属性1的类型属性1;属性2的类型属性2;…属性n的类型属性n;//定义方法部分方法1;方法2;…方法m;}25属性事物的特性在类中表示为变量每个对象的每个属性都拥有其特有的值属性名称由类的所有实例共享住址姓名属性年龄“在类中表示对象或实体拥有的特性时称为属性”促销员对象26方法方法操作的实际实现如何执行所请求的操作的规范方法指定操作对象数据的方式在得到操作请求时指定如何做的算法“对象执行的操作称为方法。”27方法的示例缝衣服的步骤量尺寸得到工具缝衣服方法缝制衣服裁缝28常见错误publicclass.Book{StringbookName;StringauthorName;intpageNum;booleanisAvailable;}类命名规则:1、不能使用Java关键字2、首字母可以为字母,也可以是“_”或“$”(建议不要这样)3、不能包含空格或“.”号代码错误29以“人”类为例:演示30类和对象的示例雇员收银员系统管理员仓库管理员促销员采购经理31抽象处理事物复杂性的方法只关注事物的重要细节,而忽略事物的次要细节。32抽象:去除对象中与主旨无关的次要部分,而仅仅抽取出与研究有关的内容(数据抽象)抽象有两类:一类是过程抽象,另一类是数据抽象。过程抽象将整个系统的功能划分为若干部分,强调功能完成的过程和步骤数据抽象把系统中需要处理的数据和这些数据上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型包含了数据,也包含了针对这些数据的授权操作。面向对象的软件开发采用数据抽象的方法来构建程序的类、对象和方法。33抽象的示例递交报告速递公司在回执确认上签名返回回执确认史密斯大夫将报告送往目的地包装并密封报告34数据抽象抽取出关键数据抽取出属性和方法“根据具体的应用抽取出类的相关关属性和操作。”35数据抽象的示例属性NameStudentNOSeatNumber方法getName()getStudentNO()Student类getSeatNumber()36在Java中实现类类的修饰字:[public][abstract|final]缺省方式为friendly[类的修饰字]class类名称[extends父类名称][implements接口名称列表]{变量定义及初始化;方法定义及方法体;}37一个完整的java源程序应该包括下列部分:package语句;//该部分至多只有一句,必须放在源程序的第一句import语句;/*该部分可以有若干import语句或者没有,必须放在所有的类定义之前*/publicclassDefinition;//公共类定义部分,至多只有一个公共类的定义,java语言规定该java源程序的文件名必须与该公共类名完全一致classDefinition;//类定义部分,可以有0个或者多个类定义interfaceDefinition;//接口定义部分,可以有0个或者多个接口定义38例如一个java源程序可以是如下结构,该源程序命名为HelloWorldApp.java:packagejavawork.helloworld;/*把编译生成的所有.class文件放到包javawork.helloworld中*/importjava.awt.*;//告诉编译器本程序中用到系统的AWT包importjavawork.newcentury;/*告诉编译器本程序中用到用户自定义的包javawork.newcentury*/publicclassHelloWorldApp{......}/*公共类HelloWorldApp的定义,名字与文件名相同*/classTheFirstClass{......}//第一个普通类TheFirstClass的定义classTheSecondClass{......}//第二个普通类TheSecondClass的定义......//其它普通类的定义interfaceTheFirstInterface{......}/*第一个接口TheFirstInterface的定义*/......//其它接口定义39定义类和创建对象类的命名规则:不能为Java中的关键字不能包含空格或点号“.”可以下划线“_”、字母或“$”符号开头classBook{StringbookName;StringauthorName;intnopages;booleanavailable;}40创建对象对象(实例instance):以类为模板创建的具体实例(实际个体)创建某个类的具体对象(类似变量声明)类名欲创建的对象名=new类名[构造函数](参数表);例如:Strings=newString(“Hello!”);声明成员变量(member)的语法[修饰符]数据类型变量名;引用方式:对象名.变量名41类中的方法6-1方法的定义方法的名称参数列表方法的主体方法返回的对象类型或原始类型42类中的方法6-2语法returntypemethodname(type1arg1,type2arg3,…){setofstatements}其中,returntype是方法返回值的数据类型methodname是用户自定义的方法名称方法的参数列表是一组变量声明。43类中的方法6-3不能为Java中的关键字不能包含空格或点号“.”可以下划线“_”、字母或“$”符号开头方法的命名规则:44类中的方法6-4classBook{StringbookName;StringauthorName;intnopages;booleanavailable;voidisAvai

1 / 58
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功