版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA核心技术OOPI
类和对象回顾Java中的数据类型分为:原始数据类型和引用数据类型;在数据类型转换中,由低类型转至高类型,将会自动(隐式)类型转换,而从高类型转至低类型,则必须强制(显式)类型转换;Java中的数组是引用数据类型,必须由new关键字在堆中分配内存;Java虚拟机的垃圾回收机制将自动释放不再使用的内存;使用命令行参数接收来自用户的输入。相关词汇单
词说
明Class类,种类public公共的,公有的private私有的,私人的object对象,物体encapsulation封装,包装attribute属性,特征method方法member成员constructor构造方法,构造器类和对象I了解什么是面向对象面向对象的基本概念类对象封装继承多态如何定义类,如何创建对象成员运算符访问控制权限:public和private构造方法什么是面向对象?ObjectOriendtedProgramming对象以…为导向的程序设计面向对象编程就是使用对象进行程序设计,简写成OOP。面向对象的编程语言如今,面向对象的编程思想已经成为主流;面向对象的编程语言正大行其道,最具代表性的有:C++JavaC#连数据库也开始面向对象了,如Oracle。面向对象的编程思想OOP旨在计算机程序中模拟现实世界中的概念在计算机程序中用相似的实体模拟现实世界中的实体在OOP中,现实世界的所有事物全都被视为对象设计和实现软件系统的方法C语言的编程方式C语言是结构化的编程语言(StructuredProgramming,简作SP);强调精巧的数据结构和优越的算法,关注程序的运行效率;不适合于大规模的程序开发;程序模块之间协调性差,程序的重用性、安全性、健壮性和可维护性都存在较大的缺陷。SP和OOP对比SPOOP设计思路自顶向下、层次化、分解自底向上、对象化、综合程序单元函数模块对象设计方法程序=算法+数据结构程序=对象=数据+方法优点相互独立,代码共享接近人的思维方式模拟客观世界缺点数据与程序不一致维护困难客观世界的无序性概念不成熟面向对象的三大原则封装继承多态万物皆对象世界是由什么组成的?名胜人物品动物,植物……
身边的对象布兰尼朱丽叶顾客姓名:朱丽叶年龄:28体重:52千克操作:购买商品姓名:布兰尼职衔:收银员年龄:35体重:60千克操作:收款打印账单对象的特征——属性属性——对象具有的各种特征每个对象的每个属性都拥有特定值例如:布兰尼和朱丽叶的体重不一样
60kg布兰尼属性
35岁收银员布兰尼对象的特征——方法方法——对象执行的操作打单收银方法刷卡收银员布兰尼对象的属性和方法列出尼古拉斯·凯奇驾驶的这辆法拉利F360Spider的属性和方法列出小狗对象的属性和方法属性:品牌:法拉利型号:F360Spider
颜色:黄色价格:380万元方法:发动停止加速属性:
颜色:白色方法:
叫跑吃小结1说一说教室里的对象描述他们的属性和方法颜色:黑色品牌:BENQ投影姓名:张三年龄:20学习类型:白炽灯开关变亮变暗材制:木质支撑物品封装对象同时具有属性和方法两项特性对象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相承,不能分割谁看见过只有“完好的零件和颜色”而不能开动的汽车?从对象抽象出“类”抽取出下列对象的属性和方法的共同特征
轿车顾客类顾客类轿车类
…………类是模型,确定对象将会拥有的特征(属性)和行为(方法)类是对象的类型不同于int类型:具有方法
各种口味的球状冰淇淋球状冰淇淋模型小结2类和对象有什么区别呢?类是抽象的概念,仅仅是模板,比如说:“人”对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”小布什普京克林顿……“人”类特征(属性)年龄体重行为(方法)衣食住行属性事物的特性在类中用变量表示;每个对象的每个属性都拥有其特定的值;属性名称由类的所有对象共享;对象或实体拥有的特征在类中表示时称为属性。学生对象姓名年龄住址……属性方法事物的行为和动作在类中用函数(方法)表示;每个对象都有相同的动作和行为;对象执行的操作在类中表示为方法。学生对象吃饭方法睡觉上课……Java是面向对象的语言
所有Java程序都以类class为组织单元关键字class定义自定义的数据类型
public
classHello{
publicstaticvoidmain(String[]args){
System.out.println("使用Java语言");…}}Java类模板类将现实世界中的概念模拟到计算机程序中publicclass
类名{
//定义属性部分属性1的类型属性1;
属性2的类型属性2;…
属性n的类型属性n;
//定义方法部分方法1;
方法2;…
方法m;}定义类定义一个类的步骤1、定义类名2、编写类的属性3、编写类的方法类示例2-1
使用类的思想封装图书馆里的书籍:Book类属性:ISBN号书名价格是否被借阅方法:借阅书籍获取图书详细信息演示示例1:使用Eclipse创建Book类框架常见错误publicclass.Book{StringbookName;StringauthorName;intpageNum;booleanisAvailable;}类命名规则:1、不能使用Java关键字2、首字母可以为字母,也可以是“_”或“$”(建议不要这样)3、不能包含空格或“.”号代码错误如何创建和使用对象使用对象的步骤:使用new创建类的一个对象使用对象:使用“.”进行以下操作给类的属性赋值:对象名.属性调用类的方法:对象名.方法名()BookjavaBook=newBook();javaBook.ISBN=“ISN8892";//给属性赋值javaBook.borrow();//调用类的方法,该方法中的操作将被执行综合案例编写学生类,输出学生相关信息编写教员类,输出教员相关信息学生类属性:姓名年龄参加的课程兴趣方法:显示学员个人信息教员类属性:姓名专业方向教授的课程教龄方法:显示教员个人信息演示示例3:创建和使用类和对象小结3编写一个音乐类,并编写测试类显示音乐信息编写一个手机类,并编写测试类显示手机信息类的方法写出狮子对象的“跑”方法写出狮子对象的“叫”方法电动玩具狮子属性:颜色:黄色行为:跑叫按此按钮,狮子开始跑类的方法示例publicclassAutoLion{Stringcolor="黄色";
public
void
run(){System.out.println("正在以0.1米/秒的速度向前奔跑");}
publicStringbark(){Stringsound="吼";
returnsound;}}AutoLion类代码实现方法名称方法体返回类型如何定义类的方法类的方法定义类的某种行为(或功能)方法的定义方法的名称方法的主体方法返回的数据类型定义类的方法public返回值类型方法名(){//这里编写方法的主体}步骤一:定义方法名以及返回值步骤二:编写方法体方法的命名如何给方法起名字?必须以字母、‘_’或‘$’开头可以包括数字,但不能以它开头遵循的命名规范通常方法名是一个动词,如果有两个以上单词组成,第一个单词的首字母小写,其后单词首字母大写方法的返回值两种情况如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型如果方法没有返回值,返回类型为void,下面是否有错publicclassStudent{Stringname="张三";publicvoidgetName(){
returnname;}……}返回类型要匹配return
表达式;编译错误常见错误publicclassStudent{
publicdoublegetInfo(){
doubleweight=95.5;
doubleheight=1.69;
returnweight,height;}}方法至多可以返回一个值,不能返回多个值方法调用方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果方法调用:执行方法中包含的语句
对象名.方法名();方法调用小结方法之间允许相互调用,不需要知道方法的具体实现,提高了效率
情况举例1、类Student的方法a()调用Student类的方法b(),直接调用publicvoida(){b();//调用b()}2、类Student的方法a()调用类Teacher的方法b(),先创建类对象,然后使用“.”调用publicvoida(){Teachert=newTeacher();t.b();//调用Teacher类的b()}变量作用域3-1publicclassAutoLion{Stringcolor="黄色";publicvoidrun(){//方法1:跑
System.out.println("正在以0.1米/秒的速度向前奔跑。");}
publicStringbark(){//方法2:叫
Stringsound="吼";returnsound;}
publicStringgetColor(){//方法3:获得颜色属性
returncolor;}
publicStringshowLion(){//方法4:输出类的描述信息
return"这是一个"+getColor()+"的玩具狮子!叫声是"+sound;}}可以调用吗?演示示例3:变量作用域变量作用域3-2变量声明的位置决定变量作用域变量作用域确定可在程序中按变量名访问该变量的区域…for(inti=0,a=0;i<4;i++){a++;}System.out.println(a);…a的作用域仅在for循环中代码错误变量作用域3-3变量1类型变量1;变量2类型变量2;变量3类型变量3;public返回类型方法1(){
变量4类型变量4;}public返回类型方法2(){
变量5类型变量5;}publicclassAutoLion{}AutoLion类的方法别的类的方法谁能使用这些变量?方法1方法2成员变量局部变量局部变量方法调用案例编写成绩计算类(ScoreCalc)编写测试类成绩计算类属性:3门成绩(Java、C#、DB)方法:计算返回平均成绩计算返回总成绩演示示例4:方法调用面向对象的编程思维ScoreCalc类和
Test类publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.print("请输入Java成绩:");intjava=input.nextInt();……/*计算并显示输出*/inttotal=java+c+db;doubleavg=total/3;System.out.print("总成绩:"+total);System.out.print("\n平均分:"+avg);}一次还可以接受,如果还要再执行这个功能,难道还要重复再写?calcDiffTimecalcTotalScore()ScoreCalcshowTotalScore()calcAvg()showAvg()
main(){//程序入口
//计算并输出总成绩
//计算并输出平均分
}Test调用调用类的方法实现某个特定的功能,别的类不需要知道它如何实现!知道了实现此功能的类和它的方法名,就可以直接调用了,不用重复写代码!为什么需要包生活案例
文档分门别类,易于查找不同内容的文档可以放在不同的袋子中,拥有相同的名字,避免冲突易于管理包包——解决类的同名问题允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件防止命名冲突更好的保护类、数据和方法A.java包如何创建包packages1java.sg.chap7;publicclassAccpSchool{……publicStringtoString(){……}}包名使用package声明包,以分号结尾如果有包的声明,一定作为Java源代码的第一条语句包命名规范包名由小写字母组成,不能以圆点开头或结尾自己设定的包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:域名
自己设定的包名部分依不同机构各自内部的规范不同而不同packagemypackage;package
net.javagroup.mypackage;package
net.javagroup.research.powerproject;部门名项目名
package.mypackage;×用Eclipse创建包使用Eclipse创建包的两种方法:分别创建包和类:创建项目→创建包→创建类创建类的过程中创建类所在的包创建项目→创建类(在此过程中声明所属包,如无声明,则显示“缺省包”)如何导入包为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类importjava.util.*;//导入java.util包中所有类importjava.lang.*;//导入java.lang包中所有类关键字import并不陌生import
包名.类名;1、系统包(eg:java.lang)2、自定义包:net.javagroup*:指包中的所有类Hello:指包中的Hello类JavaDoc注释回顾学过的注释方式单行注释://这里是注释多行注释:/*这里是注释1
这里是注释2*/JavaDoc注释:使用“/**”开始和“*/”结束,用来注释类,方法等/**
*CalcScore类
*@authorChris
*@version1.02007/06/21
*/描述信息@author:描述作者信息@version:描述版本信息方法的JavaDoc注释
给ScoreCalc类的方法添加JavaDoc注释
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《抗代谢药》课件
- 23幼保2班期中考复习测试卷附答案
- 《小讲课糖尿病》课件
- 《殡葬用品设计》课件-可持续发展原则
- 《新型输电技术》课件
- 体质健康-theol网络教学综合平台-浙江工业大学
- 大学体育与健康 教案 网球2
- 项目建设的可行性分析
- 湖北汽车工业学院科技学院《工业设计前沿信息》2023-2024学年第一学期期末试卷
- 炼铁环保培训
- 《胶轮车操作工》(司机、检修)理论知识考试及答案
- 森林康养基地建设项目可行性研究报告
- 机械行业质量奖惩制度
- 中国航空学会-2024低空经济场景白皮书
- 23J916-1 住宅排气道(一)
- 古典诗词鉴赏学习通超星期末考试答案章节答案2024年
- 2024年新人教PEP版三年级上册英语课件 Unit 4 Reading time
- 2022年黑龙江哈尔滨中考满分作文《这也是收获》2
- 第四次全国文物普查工作推进情况汇报3篇
- 《江城子·乙卯正月二十日夜记梦》课件 -2024-2025学年统编版高中语文选择性必修上册
- 新员工岗前安全培训考试题含完整答案【各地真题】
评论
0/150
提交评论