版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java简介董东计算机与网络空间安全学院1第1章Java简介1.1面向对象的程序设计 1.2开发环境 1.3在命令提示符窗口设计程序 1.4使用jGRASP设计程序 1.5使用Eclipse设计程序 1.6Java程序结构 1.7代码风格 1.8注释2冯•诺伊曼体系结构31.1面向对象的程序设计进入九十年代后,计算机的发展呈现出特征跨平台网络化嵌入式硬件环境的变化对计算机语言提出了新的要求。比如:能够运行在各种消费类电子产品上,如手机、平板电脑、洗衣机、空调、微波炉等。能够处理多线程;能够以“面向对象”的思维模式(paradigm)编写程序,以简化大规模复杂应用的开发。4Java语言设计理念:编写一次,到处运行(writeonce,runanywhere)发展1996年1月,Sun公司发布了Java的第一个开发工具箱JDK1.0版本1999年6月,Sun公司发布了第二代Java平台(简称Java2)2005年6月,Sun公司发布JavaSE6从此,各种Java版本中不再有“2”:J2SE改为JavaSE;J2EE改为JavaEE;J2ME改为JavaME。2009年,Sun公司被甲骨文(Oracle)公司收购56JavaEE已经被转移至Eclipse基金会,并更名为JakartaEE。OpenJDK成为Java标准实现的主要开源参考实现1.1面向对象的程序设计面向对象的程序设计Object-OrientedProgramming,OOP一种问题求解的范式创建对象,让对象做些事情某对象p上预定义了若干功能,称为“方法”另外一个对象q访问对象p的功能称为“方法调用”或者“消息传递”具有相同特征的对象的抽象称为“类”问题求解在现实生活中无处不在7面向对象问题求解举例学生小明饿了,想要吃饭。这就产生了问题。为了解决这个问题,小明来到餐厅,跟餐厅服务员说,“要一碗牛肉面”。餐厅服务员对后台的厨师大声喊:“一碗牛肉面!”在这个场景中涉及了三个对象:小明、餐厅服务员、厨师。这三个对象合作解决“小明肚子饿”的问题。首先小明向餐厅服务员发出了消息,启动了餐厅服务员的工作;餐厅服务向厨师发送消息,启动了厨师的工作;厨师完成工作后把结果(一碗面)传递给服务员,服务员把这一碗面交付给小明,并收款;小明吃到肚子里,“肚子饿”问题解决。8面向对象的问题求解模式就是现实生活中的“对象+消息”。问题求解范式在运行时刻,有很多为了求解同一个问题而相互合作的对象,这些对象之间通过发送消息实现合作。“对象”是现实世界的事物在计算机中的映射。现实世界的任何事物,无论是看得见的还是看不见的,都可以映射到计算机中的“对象”:一本书、一部手机、一辆汽车、一门课等。9面向对象
=类
+对象
+消息
+继承属性和行为10一辆小汽车属性发动机排量(displacement)型号(model)车身颜色(color)行驶速度(speed)功能加速(accelerate)鸣笛(honk)刹车(brake)举例定义Car类属性方法定义MyCar类创建汽车对象让其鸣笛11问题:创建一个汽车对象,并让其鸣笛。Car.javaMyCar.java类和对象12类图类图是统一建模语言(UnifiedModellingLanguage,UML)中重要的图之一。整个矩形框表示“类”。这个矩形框分成了三部分,分别描述类的名字、类的属性以及类的行为。类图不仅可以描述一个类及其组成;还可以描述类与类之间的关系。类之间的关系有:继承(inheritance)关联(association)实现(realization)依赖(dependency)13继承继承关系建模现实世界中的“is-a”关系定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行可以加入若干新的属性和行为修改原来的属性和行为使之更适合子类需要14实现一个类实现了另外一个类中声明的行为。在UML类图中使用末端是空心三角箭头的虚线表示。接口(interface)和接口的实现类的配合体现了开闭原则:对扩展开放;对修改封闭。也就是说,要在不改动当前类的情况下增加新的功能。在接口中展示了简单的API接口;在实现类中提供的复杂的功能实现。例如驾驶员看到的是方向盘、刹车踏板、油门踏板、车速仪表盘等;而汽车如何传导信号给刹车片刹车、发动机如何加速等实现细节被隐藏了。15封装封装性是面向对象的程序设计的主要特征之一。对访问者隐藏对象的状态或内部表示称为“封装”。类私有包私有16多态通过相同类型的引用把相同的消息发送给不同的对象产生不同的效果,这种现象称为“多态”。17面向对象程序设计解决具体问题的一般思路18面向对象程序设计
解决具体问题的一般过程19Java程序从静态角度看,Java程序就是类的集合;从运行时刻看,Java程序是对象的结合。设计Java程序,就是设计若干类。一般每个类对应一个.java磁盘文本文件201.2开发环境Java语言的开发环境包括:Java开发工具箱(JavaDevelopmentKit,JDK)编译器(compiler)解释器(interpreter)装入器(loader)调试器(debugger)集成开发环境(IntegratedDevelopmentEnvironment,IDE)EclipseVisualStudioCodejGrasp21jGrasp安装官方网站下载页面,下载bundedwithJava21版本/user-cgi/grasp/grasp.pl?;dl=download_jgrasp.html22jGraspbundedOpenJDK2123设计Java程序的过程设计若干类,并将其分别保存为相应的.java文本文件,即扩展名为.java,文件名与类名相同;编译这些源文件,生成相应的以.class为扩展名的文件。这些.class文件称为字节码文件;启动Java虚拟机(JVM),将字节码文件装入虚拟机运行;如果在编译时刻或者运行时刻发生任何错误,则修改源文件,重新编译和运行。24Java平台25JDK26/cn/java/technologies/downloads/#jdk21-windows设置Windows11环境变量定义JAVA_HOME在资源管理器中打开安装JavaJDK的目标文件夹,该文件夹称为JAVA_HOME;设置资源管理器显示地址栏以及在地址栏中显示完整路径,并从地址栏中复制该文件夹的完整路径;从资源管理器中右击“此电脑”,从弹出菜单中选择“属性”;在弹出的“设置”对话框中选择“系统|关于”;单击“高级系统设置”链接,弹出“系统属性”对话框;单击“环境变量”,单击“新建”,在弹出对话框中的“变量名”文本框中输入:JAVA_HOME;在“变量值”文本框中粘贴;三个确定:单击“确定”按钮依次关闭三个对话框。2728123设置Windows11环境变量编辑环境变量PATH打开“环境变量”对话框,选择系统变量Path,单击“编辑”按钮。在“编辑环境变量”对话框中单击“新建”。输入%JAVA_HOME%\bin三次单击“确定”按钮,依次关闭对话框29设置Windows11环境变量30设置Windows10环境变量PATH在资源管理器中打开安装JavaJDK的目标文件夹;设置资源管理器显示地址栏以及在地址栏中显示完整路径,并从地址栏中复制bin文件夹的完整路径;在桌面上右击“我的电脑”,从弹出菜单中选择“属性”;在弹出的“系统属性”对话框中选择“高级”选修卡,单击“环境变量”按钮;在弹出的“环境变量”对话框的“系统变量”列表框中选择变量PATH,单击“编辑”;在“编辑系统变量”对话框中单击“变量值”文本框使其获得输入焦点,在键盘上按“Home”键是插入的定位在行首;使用Ctrl+v粘贴bin文件夹的完整路径,再键入英文标点符号中的分号“;”与其它路径隔开。单击“确定”按钮关闭所有对话框。311.3在命令提示符窗口设计程序首先使用文本编辑器,如Windows记事本,编辑若干类,并将其保存为与类的名字相同的.java源文件(sourcecode);然后使用命令javac编译这些.java源文件,生成相应的.class字节码文件。最后,使用命令java启动Java虚拟机(JVM),将字节码文件装入虚拟机运行。32在命令提示符窗口设计程序33例子设计一个计算器,能够完成加减乘除功能设置被加数10,加数2,输出和1234Calculator.javaTest.java例子设计程序计算2个平面图形圆的面积。35计算圆的面积两个对象:圆半径不同同样的方法计算面积创建两个“圆”对象分别让这两个对象计算面积36计算圆的面积告诉计算机什么是“圆”?有半径radius通过π*r2计算面积37例子38例子39例子40例子41例子42例子43命令提示窗口中文乱码chcp65001UTF-8.java保存为UTF-844Java项目一般地,一个Java项目中含有若干包;一个Java包中含有若干类。一个类是由若干成员组成,这些成员包括变量和方法。Java程序只能从约定的main方法开始执行。45JAR文件46JAR文件47注意Java语言对字母的大小写敏感。一般一个类对应一个.java文件,类名与文件名严格相同,包括大小写。一个源文件中可以有多个类,但至多有一个public的类,并且public的类名必须与文件名相一致。类名的首字母大写,不建议使用汉字作为类名。481.4jGrasp49控制结构窗口CSDjGrasp界面50设置CSD字体和字号51先取消默认再设置新值设置工作文件夹52新建Java类53编译和运行54编译光标插入点所在的源文件main方法开始运行进入调试状态RunI/O窗格1.5使用Eclipse设计程序 551.6Java程序结构56错误类型一个源文件也称为一个编译单元(compilationunit)编译器识别的错误称为编译时刻错误(compile-timeerror)由负责装入和启动虚拟机解释执行程序的命令java所识别出的错误称为运行时刻错误(run-timeerror)如果程序在编译时刻和运行时刻均没有发生错误,但是运行结果并不正确,则程序中存在逻辑错误(logicalerrors)571.7代码风格命名约定留白块风格58命名约定类名:大驼峰命名法只有一个单词类名首字母大写。如果类名中包含多个单词,则每个单词的首字母大写如RuntimeException成员名:小驼峰命名法只有一个单词的变量名和方法名中的字母均小写。如果变量名或方法名中含有多个单词,则除了第一个单词外,其它单词首字母大写如executeQuery()常量名的所有字母大写。如果名字中含有多个单词,则使用下划线隔开。如MAX_VALUE。59名字要有意义StackOverflow的创始人JoelSpolsky说,“起一个好名字应该很难,因为,一个好名字需要把要义浓缩在一到两个词。”“Creatinggoodnamesishard,butitshouldbehard,becauseagreatnamecapturesessentialmeaninginjustoneortwowords.”60留白“留白”是绘画中的术语,指在一幅画中要有空白。源代码中也要有空白,以形成清晰的逻辑结构。虽然留白不会影响程序的正确性,但影响程序的可读性。三种留白的方法缩进空行空格61缩进缩进(Indentation)使用平面空间的布局关系反映了程序部件间的逻辑关系(比如包含关系)62publicclassCalculator{privateinta;privateintb;
voidsetA(intx){a=x;}
voidsetB(inty){b=y;}
intadd(){returna+b; }
intminus(){returna-b;}}空行不同代码片段应使用空行隔开。例如每个方法有使用空行与前一个方法隔开。63空格每个二元运算符的前后都有一个空格(blank)。例如:a+b;//Goodstylea+b;//Badstyle提倡使用空格而不是使用制表符(\t)实现代码风格。使用4个空格缩进而不是使用制表符Java语句把空格、制表符,回车、换行都看作空白符(whitespace)。编译器忽略空白符64块风格块是使用一对大括号“{}”括起来的一组语句。有两种块风格:next-line风格end-of-line风格65块风格next-line风格为块另起一行并把开括号“{”放在新行的行首:66classA{voidaMethod(){//Dosomething}}块风格end-of-line风格不为块另起一行,而是直接把开括号“{”置于行尾:67classA{voidaMethod(){//Dosomething}}关键是保持一致1.8注释实现注释(implementationcomment
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025汽车买卖的撤销合同范本
- 2025授权服务合同范本全书
- 2025年短视频内容合作合同协议(含收益)
- 2025年短视频流量置换合作协议
- 2025关于家居装修涂料采购合同范本
- 2025年户外广告租赁合同
- 2025长沙市办公室租赁合同范本
- 遗赠抚养协议书与遗嘱效力
- 委托拍卖协议书
- 快手查询粉丝协议书
- 危险化学品废弃物处理记录表附填报说明(依据《国家危险废物名录(2021版)》及《固废法》)
- 2024-2025部编版初中七年级上册《道德与法治》全册教案
- 共和国勋章课件
- 2025年度考研政治全真模拟试卷及答案(共八套)
- 2025河南省农副产品销售合同
- 心肺功能康复训练课件
- 游艇转让协议书范本
- 驾驶员招聘面试真题集
- 2025年社区工作者考试试题(附答案)
- 价值链视角下四川长虹电器股份有限公司营运资金管理分析
- 邮政安保管理办法
评论
0/150
提交评论