课堂练习11 面向对象编程 2023年6月27日 上午3:03 • 人工智能 • 阅读 95 本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java 开发_环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的 _开发_环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领读者从基础到各个知识点进行学习。全书内容由浅入深,并辅以大量的实例说明,书本阶段性地提供了一些实验指导。 本书提供了所有实例的源代码以及 _开发_过程中用到的软件下载地址,供读者学习参考使用。 本书为学校教学量身定做,供高校面向对象技术相关课程使用,对于缺乏项目实战经验的程序员来说可用于快速积累项目 _开发_经验。 本书是中南大学精品教材建设中的一本特色教材,为高校计算机相关专业提供面向对象技术和UML的讲解。本书采用Java _语言_进行描述,针对Java技术标准编程进行详细的讲解,以简单通俗易懂的案例,逐步引领读者从基础到各个知识点进行学习。本书涵盖了JavaSE _开发_环境配置、程序设计基础、面向对象相关技术、常用API、UML基础知识。在章节中穿插了上机习题,并提供了答案,用于对该章内容进行阶段性总结演练。 作者长期从事教学工作,积累了丰富的经验,其”实战教学法”取得了很好的效果。本书适合教学。书中章节安排适当,将习题融于讲解的过程中,教师可以根据情况选用,也可以进行适当增减。 本书的知识体系结构如下所示,遵循了循序渐进的原则,逐步引领读者从基础到各个知识点进行学习。 上篇面向对象技术 第1章Java入门 第2章程序设计基础: 变量及其运算 第3章程序设计基础: 流程控制和数组 第4章实验指导1 第5章类、对象和成员 第6章封装 第7章继承和多态 第8章实验指导2 第9章异常处理 第10章Java常用API 第 _11_章Java IO操作 第12章多线程 _开发 第13章反射技术 第14章实验指导3 下篇UML 第15章UML入门 第16章用例图 第17章类图和对象图 第18章实验指导4 第19章顺序图、协作图、状态图和活动图 第20章包图、构件图和部署图 第21章实验指导5 本书提供了全书所有实例的源代码,供读者学习参考使用,所有程序均经过了作者精心的调试。 由于时间仓促和作者水平有限,书中的错误和不妥之处敬请读者批评指正。 有关本书的意见反馈和咨询,读者可在清华大学出版社相关版块中与作者进行交流。 郭克华 2013年 11_月 目录 上篇面向对象技术 第1章Java入门 1.1认识Java 1.1.1认识编程 _语言 1.1.2Java的来历 1.1.3Java为什么流行 1.1.4Java的三个版本 1.1.5编程前的准备工作 1.2安装JDK 1.2.1获取JDK 1.2.2安装JDK步骤 1.2.3安装目录介绍 1.2.4环境变量设置 1.3 开发_第一个Java程序 1.3.1如何编写源代码 1.3.2如何将源代码编译成.class文件 1.3.3如何执行.class文件 1.3.4新手常见错误 1.4用Eclipse _开发_Java程序 1.4.1Eclipse的概念 1.4.2安装Eclipse 1.4.3如何建立项目 1.4.4如何 _开发_Java程序 1.4.5如何维护项目 1.5小结 第2章程序设计基础:变量及其运算 2.1认识变量 2.1.1变量的定义 2.1.2变量有哪些类型 2.2如何使用变量 2.2.1如何使用整型变量 2.2.2如何使用浮点型变量 2.2.3如何使用字符型变量 2.2.4如何使用布尔型变量 2.2.5基本数据类型之间的类型转换 2.2.6基本数据类型和字符串之间的转换 2.2.7变量的作用范围 2.3注释的书写 2.4Java中的运算 2.4.1算术运算 2.4.2赋值运算 2.4.3关系运算 2.4.4逻辑运算 2.4.5运算符的优先级 2.5小结 第3章程序设计基础:流程控制和数组 3.1判断结构 3.1.1为什么需要判断结构 3.1.2if结构 3.1.3switch结构 3.2认识循环结构 3.2.1为什么需要循环结构 3.2.2while循环 3.2.3dowhile循环 3.2.4for循环 3.2.5循环嵌套 3.2.6break和continue 3.3数组 3.3.1为什么需要数组 3.3.2如何定义数组 3.3.3如何使用数组 3.3.4数组的引用性质 3.3.5数组的应用 3.3.6多维数组 3.4小结 第4章实验指导1 4.1关于变量和数据类型的实践 4.2流程控制和数组的综合实践 第5章类、对象和成员 5.1认识类和对象 5.1.1为什么需要类 5.1.2如何定义类 5.1.3如何使用类实例化对象 5.1.4如何访问对象中的成员变量 5.1.5对象的引用性质 5.2认识成员函数 5.2.1为什么需要函数 5.2.2如何定义和使用成员函数 5.2.3函数参数的传递 5.2.4认识函数重载 5.3认识构造函数 5.3.1为什么需要构造函数 5.3.2如何定义和使用构造函数 5.4静态变量和静态函数 5.4.1为什么需要静态变量 5.4.2静态变量的常见应用 5.4.3认识静态函数 5.4.4静态代码块 5.5小结 第6章封装 6.1使用封装 6.1.1为什么需要封装 6.1.2如何实现封装 6.2使用包 6.2.1为什么需要包 6.2.2如何将类放在包中 6.2.3如何访问包中的类 6.3使用访问控制修饰符 6.3.1什么是访问控制修饰符 6.3.2类的访问控制修饰符 6.3.3成员的访问控制修饰符 6.4使用类中类 6.5小结 第7章继承和多态 7.1使用继承 7.1.1为什么需要继承 7.1.2如何实现继承 7.1.3继承的底层本质 7.2成员的覆盖 7.2.1什么是成员覆盖 7.2.2成员覆盖有何作用 7.3使用多态性 7.3.1什么是多态 7.3.2如何使用多态性 7.3.3父子类对象的类型转换 7.4抽象类和接口 7.4.1为什么需要抽象类 7.4.2为什么需要接口 7.5其他内容 7.5.1final关键字 7.5.2Object类 7.6一些工具的使用 7.6.1将字节码打包发布 7.6.2文档的使用 7.7小结 第8章实验指导2 8.1单例模式的设计 8.1.1需求简介 8.1.2不用单例模式的效果 8.1.3最原始的单例模式 8.1.4首次改进 8.1.5再次改进 8.1.6思考题 8.2利用继承和多态扩充程序功能 8.2.1需求简介 8.2.2实现方法 8.2.3出现的问题 8.2.4改进 8.2.5测试 第9章异常处理 9.1认识异常 9.1.1生活中的异常 9.1.2软件中的异常 9.1.3为什么要处理异常 9.1.4异常机理 9.1.5常见异常 9.2异常的就地捕获 9.2.1为什么要就地捕获 9.2.2如何就地捕获异常 9.2.3如何捕获多种异常 9.2.4用finally保证安全性 9.3异常的向前抛出 9.3.1为什么要向前抛出 9.3.2如何向前抛出 9.4自定义异常 9.4.1为什么需要自定义异常 9.4.2如何自定义异常 9.5小结 第10章Java常用API 10.1数值运算 10.1.1用Math类实现数值运算 10.1.2实现随机数 10.2用String类进行字符串处理 10.3用StringBuffer类进行字符串处理 10.4基本数据类型的包装类 10.4.1认识包装类 10.4.2通过包装类进行数据转换 10.5认识Java集合 10.5.1为什么需要集合 10.5.2Java中的集合 10.6使用一维集合 10.6.1认识一维集合 10.6.2使用List集合 10.6.3使用Set集合 10.6.4使用Collections类对集合进行处理 10.6.5使用泛型简化集合操作 10.7Java中的二维集合 10.7.1使用Map集合 10.7.2使用Hashtable和Properties 10.8小结 第 _11_章Java IO操作 _11.1认识IO操作 11.2用File类操作文件 11.2.1认识File类 11.2.2使用File类操作文件 11.2.3使用File类操作目录 11.3字节流的输入输出 11.3.1认识字节流 11.3.2如何读写文件 11.3.3如何读写对象 11.4字符流的输入输出 11.4.1认识字符流 11.4.2如何读写文件 11.4.3如何进行键盘输入 11.5和IO操作相关的其他类 11.5.1用RandomAccessFile类进行文件读写 11.5.2使用Properties类 11.6小结 第12章多线程 开发 12.1认识多线程 12.1.1为什么需要多线程 12.1.2继承Thread类 _开发_多线程 12.1.3实现Runnable接口 _开发_多线程 12.1.4两种方法有何区别 12.2控制线程运行 12.2.1为什么要控制线程运行 12.2.2传统方法的安全问题 12.2.3如何控制线程的运行 12.3线程同步安全 12.3.1什么是线程同步 12.3.2一个有问题的案例 12.3.3如何解决 12.3.4小心线程死锁 12.4认识定时器 12.4.1为什么需要定时器 12.4.2如何使用定时器 12.5小结 第13章反射技术 13.1为什么要学习反射 13.1.1引入配置文件 13.1.2配置文件遇到的问题 13.2认识Class类 13.2.1什么是Class类 13.2.2如何获取一个类对应的Class对象 13.2.3如何获取类中的成员信息 13.3通过反射机制访问对象 13.3.1如何实例化对象 13.3.2如何给成员变量赋值 13.3.3如何调用成员函数 13.4何时使用反射 13.5动态异常处理框架 13.5.1框架功能简介 13.5.2重要技术 13.5.3框架代码编写 13.5.4使用该框架 13.6小结 第14章实验指导3 14.1字符频率统计软件 14.1.1软件功能简介 14.1.2重要技术 14.1.3项目结构 14.1.4代码编写 14.1.5思考题 14.2文本翻译软件 14.2.1软件功能简介 14.2.2重要技术 14.2.3项目结构 14.2.4代码编写 14.2.5思考题 14.3用享元模式优化程序性能 14.3.1为什么需要享元模式 14.3.2重要技术 14.3.3代码编写 14.3.4思考题 下篇UML 第15章UML入门 15.1认识UML 15.1.1为什么需要UML 15.1.2UML的来历 15.2用Rational Rose进行UML建模 15.2.1什么是Rational Rose 15.2.2安装Rational Rose 15.2.3如何使用Rational Rose 15.2.4UML图的种类 15.3小结 第16章用例图 16.1认识用例图 16.1.1为什么需要用例图 16.1.2什么是用例图 16.2详解用例图 16.2.1系统边界 16.2.2参与者 16.2.3用例 16.2.4箭头 16.2.5注释 16.2.6用Rational Rose画用例图 16.2.7用例规约 16.3一个案例 16.3.1案例描述 16.3.2画出用例图 16.3.3写出用例描述 16.4小结 第17章类图和对象图 17.1认识类图 17.1.1为什么需要类图 17.1.2什么是类图 17.2详解类图 17.2.1类 17.2.2箭头 17.2.3注释 17.2.4用Rational Rose画类图 17.3对象图 17.4小结 第18章实验指导4 18.1用例图练习 18.1.1软件功能简介 18.1.2识别系统中的参与者和用例 18.1.3画出用例图 18.1.4用例描述 18.2类图练习 18.2.1练习1: 根据代码画出类图 18.2.2练习2: 根据需求构建类图 18.3思考题 第19章顺序图、协作图、状态图和活动图 19.1顺序图 19.1.1什么是顺序图 19.1.2详解顺序图 19.1.3用Rational Rose画顺序图 19.2协作图 19.2.1什么是协作图 19.2.2详解协作图 19.2.3用Rational Rose画协作图 19.3状态图 19.3.1什么是状态图 19.3.2详解状态图 19.3.3用Rational Rose画状态图 19.4活动图 19.4.1什么是活动图 19.4.2详解活动图 19.4.3用Rational Rose画活动图 19.5小结 第20章包图、构件图和部署图 20.1包图 20.1.1什么是包图 20.1.2详解包图 20.1.3用Rational Rose画包图 20.2构件图 20.2.1什么是构件图 20.2.2详解构件图 20.2.3用Rational Rose画构件图 20.3部署图 20.3.1什么是部署图 20.3.2详解部署图 20.3.3用Rational Rose画部署图 20.4小结 第21章实验指导5 21.1顺序图、协作图练习 21.1.1功能简介 21.1.2创建顺序图 21.1.3创建协作图 21.2状态图、活动图练习 21.2.1功能简介 21.2.2创建状态图 21.2.3创建活动图 21.3包图、构件图和部署图练习 Original: https://blog.csdn.net/Junds0/article/details/127813438Author: Ssaty.Title: 课堂练习11 面向对象编程 原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/654115/ 转载文章受原作者版权保护。转载请注明原作者出处! 人工智能 赞 (0) 0 生成海报 【自取】最近整理的,有需要可以领取学习: Linux核心资料大放送~ 全栈面试题汇总(持续更新&可下载) 一个提高学习100%效率的工具! 【超详细】深度学习面试题目! LeetCode Python刷题答案下载! LeetCode Java版刷题答案下载! LeetCode C++ 版本,抓紧保存! LeetCode GO语言 刷题答案下载! 大家都在看 阿尔兹海默病智能诊断 摘 要 阿尔茨海默病(Alzheimer′s Disease,AD)是一种以认知和智力损害、行为能力下降为特点的神经退行性疾病,目前其确切病因不明,并缺少有效的治疗方案。阿尔茨海默… 人工智能 2023年7月26日 0082 使用labelme以任意形状标注多个目标后将目标逐一抠图并保存到本地 1.使用labelme进行标注 这里使用两张图片进行标注,需要注意以下几点: 1.图片的名称需要时英文字母命名; 2.标注目标的命名为类别. 标注完成直接将对应的json文件保存到… 人工智能 2023年7月19日 00113 高斯滤波(Gauss filtering) 1.概念介绍 高斯滤波是一种 线性平滑滤波,适用… 人工智能 2023年7月30日 00102 神经网络权重是什么意思,神经网络权值和阈值 BP神经网络中初始权值和阈值的设定 1、首先需要了解BP神经网络是一种多层前馈网络。2、以看一下在matlab中BP神经网络的训练函数,有梯度下降法traingd,弹性梯度下降法t… 人工智能 2023年7月29日 0064 【文章阅读】Frustratingly Simple Few-Shot Object Detection 简单的少镜头目标检测 论文:https://arxiv.org/abs/2003.06957 代码:https://github.com/ucbdrive/few-shot-obj… 人工智能 2023年6月17日 0082 SSD项目代码解析(pytroch)(一) 一、前言 SSD(Single Shot MultiBox Detector)是一种单阶段实时目标检测模型,在问世之初,取得了非常好的性能和实时检测能力,一度是最受欢迎的目标检测架… 人工智能 2023年7月23日 0090 非监督学习,sklearn聚类,降维,决策树 聚类 聚类:对数据集进行分类,比如y=0,y=1,y=2等 1.1 kmeans聚类(k=4) 聚类:分为四类,所以K=4 from sklearn.cluster import … 人工智能 2023年5月31日 00101 【超详细】支持向量机(SVM)数学推导 目录 一、硬间隔SVM(Hard Margin SVM) 二、对偶问题(Dual Problem) 1.将有约束问题转变为无约束问题 2.强对偶关系 3.计算拉格朗日函数的最小值 … 人工智能 2023年6月24日 00122 图像标注工具Labelimage的安装及使用教程 #个人的菜鸟级经验记录,供有需要的朋友参考 此处默认已安装anaconda,并创建好了自己所需的虚拟环境。 1.点击【Anaconda Prompt】,打开Anaconda命令行界… 人工智能 2023年6月17日 0079 【使用Pytorch实现ResNet网络模型:ResNet50、ResNet101和ResNet152】 使用Pytorch实现Resnet网络模型:ResNet50、ResNet101和ResNet152 介绍 什么是 ResNet? ResNet 的架构 使用Pytorch构建 R… 人工智能 2023年6月15日 0090 tensorflow基础学习-anaconda方式安装tensorflow(gpu-1.15.0版本) 前言 关于anaconda方式安装tensorflow(cpu版本)之前已经有博客写过了。这一次更新一下anaconda方式安装tensorflow(gpu版本),他们的区别在于T… 人工智能 2023年5月25日 00103 30系显卡配置tensorflow1.x环境 说明:nvidia 30系显卡仅支持cuda11.0及以上版本,对应cudnn最低版本为8.0,tf版本为2.4.0在win系统中无法实现30系显卡运行tf1的代码 该教程使用的环… 人工智能 2023年5月24日 00114 YOLOX-目标检测算法(代码解读) YOLOX简洁且高效,分享具体实现过程。部分代码可以迁移,很具有参考价值。 测试比较简单,首先看demo.py。 -运行需要指定三个参数:–path:测试图片路径–exp_file… 人工智能 2023年6月17日 00138 小啾带你开天眼 之 开启py-OpenCV摄像头及视频处理【Python-Open_CV系列(十二)】 小啾带你开天眼 之 开启py-OpenCV摄像头及视频处理【Python-Open_CV系列(十二)】 文章目录 1.调用摄像头 – 使用VideoCapture类 2… 人工智能 2023年6月20日 0082 【爬虫+可视化】Python爬取疫情并可视化处理数据(爬虫入门案例) 大家好,我是一只小白鼠,一只爱吃饼干的小白鼠。今天给大家讲讲关于爬取,以及如何爬取疫情数据并可视化。 上篇说到python绘制数码管,今天说如何用python简单爬虫。 知识点 爬… 人工智能 2023年7月5日 00100 NLP学习D4-李宏毅自然语言处理L1&L2 学习tf是因为莫烦在用;昨天差不多看完了,想看李宏毅老师的课,结果发现他用的是pytorch,所以还需要再学下pytorch,找了教程。那就多线程工作叭! —̵… 人工智能 2023年5月28日 00112