




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java 初级 第四章 面向对象(上) l什么是抽象 l类与对象及其关系 l类中定义的属性(域)与方法(操作) l对象 l构造方法 l类成员属性和方法的其它修饰符 l包(Package) 主要内容 什么是抽象 抽象的定义 抽象(abstraction)是从被研究对象中舍弃个别的、非本质的、或 与 研究主旨无关的次要特征,而抽取与研究有关的共性内容加以考察 , 形成对研究问题正确的简明扼要的认识。 动物 经过人类抽象 用一个叫”动物” 的类来概括 类与对象及其关系 类与对象及其关系 l对象是对客观事物的抽象。 l类是对对象的抽象,在语言中是一种抽象的数据类型。 l类的定义在Java中可简述为 class 类名 l它们的关系是,对象是类的实例,类是对象的模板。 上图很好地说明了类和对象之间的关系。所有的苏35战斗机都是 按照一个图纸设计出来的,其中一个飞机改装后不会对其它飞机造 成影响,但如果修改图纸,则会影响到以后生产出来的所有飞机。 类中定义的属性与方法 类中定义的属性(域)与方法(操作) 类和对象都有属性和操作,属性是事物静态特征的抽象,操作是事 物动态特征的抽象。 class FighterPlane String name; int missileNum; void fire() if (missileNum0) missileNum -= 1 ; System.out.println(“now fire a missile !”); else System.out.println(“No missile left !”); 类的属性或称为“域” 类的方法 注意: l以类为模板产生对象,实质上就是将类中定义的属性或方 法代码拷贝到生成的对象当中。 l当属性为普通数据类型时,其值就在对象内部当中;而当 为引用时,引用的对象在对象的外部。 l类中定义的属性可以被类中所有的方法所访问。 l方法中的形式参数和定义的局部变量的作用域仅限于方法 ,局部变量在使用前必须进行赋值初始化。如果局部变量 和类中的属性变量重名,则在方法中对同名变量改变的是 局部变量。 局部变量应用举例 class FighterPlane1 String name=“su30“; int missileNum; void init(String _name) String name = _name; System.out.println(name); System.out.println(); public static void main(String args) FighterPlane1 fp = new FighterPlane1(); fp.init(“su35“); 类中定义的方法的递归调用 用Java打印菲波那契数列的第10项(1,1,2,3,5,) public class TestSeq public static int fseq(int n) if(n0) System.out.println(“now fire a missile !“); missileNum -= 1; else System.out.println(“No missile left !“); public class RunPlane public static void main(String args) FighterPlane fp = new FighterPlane(); = “苏35“; fp.missileNum = 6; fp.fire(); 默认包 以上程序我们在编译时,通常将它们放置在一个文件当 中,文件名称为RunPlane.java(类前修饰符必须为 public,其它类不能有public),编译后将产生两个class, 通过运行java RunPlane得到结果; 或是将它们放置在两个java文件,对这两个文件同时编 译(javac FighterPlane.java RunPlane.java),编译后 得到两个class,通过运行java RunPlane得到结果。 这两种情况虽然没有引入包的内容,但它们都是包的一 种特殊存在形式默认包。 默认包的缺点 前面的方法只是在进行程序演示的时候使用,在工 程上这样做会出现什么问题呢?源文件和字节码文 件在一起,当源文件较多时,显然不合适。 所以好的方法首先应该将源文件和字节码文件分开 。其次,应根据源文件的类型进行分类,将它们的 字节码文件按照包的类型进行分类。 打包过程 建立相应的源程序目录 在d:myjava下建立srcresource子目录,将FighterPlane.java 存放在此目录当中。将RunPlane.java存放到srcrun目录下 。并建立和src并列的deliver,用于存放各包文件。如图所示 : 修改FighterPlane.java程序如下 package com.resource; public class FighterPlane public String name; public int missileNum; public void fire() if (missileNum0) System.out.println(“now fire a missile !“); missileNum -= 1; else System.out.println(“No missile left !“); 对FighterPlane.java进行如下方式编译 进入myjava目录,执行命令行: javac -d .deliver srcresourceFighterPlane.java 其中,-d代表将编译好的字节码文件以当前目录为基准进 行打包。由于在FighterPlane.java程序中有关键语句 package com.resource;则在当前目录下出现了deliver子 目录和resource子子目录。在java体系中把它们看作包名 修改RunPlane.java程序如下 package com.run; import com.resource.*; public class RunPlane public static void main(String args) FighterPlane fp = new FighterPlane(); = “苏35“; fp.missileNum = 6; fp.fire(); 对RunPlane.java进行如下方式编译: 进入myjava目录,执行命令行, javac -d .deliver -classpath .deliver srcrunRunPlane.java 执行RunPlane 执行命令行: java -classpath d:myjavadeliver com.run.RunPlane 其中-classpath是命令行开关(可在系统中设置环境 变量,这样就不用每次都要输入了开关命令了),表示当 前的class应该以此目录为基准去寻找指定的类,在找类的 时候,deliver.run.是包的路径,沿着这个路径能找到类 RunPlane.class(在此,你可否明白为什么java命令后面 的class文件不能带后缀的原因吗?)。 在执行过程中,RunPlane又要用到FighterPlane,它 们不在同一个包中,RunPlane又是怎样找到FighterPlane 的呢?关键是import deliver.resource.*;它以classpath所设 置的路径为基准,找到了FighterPlane,并且类前的修饰符 为public,所以能够引用。 Jar文件 Jar命令格式:Jar cvf first.jar -C deliver 这个命令行的含义是: jar和javac以及java一样都是JDK的工具集。 c(create,创建一个新文件);v(生成详细输出到标准输出上 );f(指定存档文件名,也就是后面的first.jar);deliver是将其下的 所有文件压缩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农业用地的租赁合同模板
- 临床营养学理论与实践
- 大医精诚演讲课件
- 酒店餐饮精细化管理体系构建与实施
- 湖北省重点高中智学联盟2024-2025学年高一下学期5月联考生物试题
- 2025年河南省平顶山市鲁山县部分中学九年级4月联考数学试卷
- 护理查房互动环节设计与实施
- 2025年现场急救知识试题
- 北师大4下一双手教学设计配课件
- 腹泻患者健康教育
- 2024房屋外墙保温施工合同范本
- 路基注浆加固施工方案
- 颂钵疗愈师培训
- 律师事务所律师事务所风险管理手册
- 2023中华护理学会团体标准-注射相关感染预防与控制
- DB34∕T 4410-2023 灿型水稻苗期耐热性鉴定技术规程
- 2021年浙江杭州中考满分作文《超常发挥其实很简单》
- DB1331T019-2022 雄安新区岩土基准层划分导则
- 幼儿园小班安全活动《认识消防员》课件
- NB/T 11546-2024煤矿用5G通信系统通用技术条件
- 中国传统故事山海经读书分享课件
评论
0/150
提交评论