已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南女子学院信息技术系计算机科学与技术专业综合实训报告 第8页Java语言经典算法和Java面向对象思想的程序设计1.1实训目的1. 熟练掌握Java面向对象程序设计的基础知识。2. 熟练掌握Java中常用的Swing组件的使用方法。3.熟练掌握Java程序中图形用户界面设计的方法。 4.熟练掌握使用JDBC操作数据库的方法。 5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。通过实训能够结合实例进一步理解面向对象程序设计的基本概念,掌握程序设计的基本方法和技巧,灵活的使用包,进一步的理解接口,熟练的掌握在接口中对事件的实现。深入理解和灵活运用面向对象程序设计的基本特性,培养良好的程序设计风格,提高抽象思维、逻辑思维的能力。1.2.1基本概念一字符类型: 1. short 短整型 16位 2字节 2. int 整型 32位 4字节 3. long 长整型 64位 8字节 4. 浮点分单精度float和双精度double 5. float 单精度 32位 4字节 6. double双精度 64位 8字节 注:char 这一点比较非凡,java使用的不是ascii字符,也不是扩展的8位字符集,而是unicode字符集,unicode字符占据16位,2字节,可以表示人类所有发现的字符,也因为如此java可以比较方便的进行国际化,不知这个理解有无问题。 实际上char的值是个整数(065536),因此我们给char赋值可以用整数或者用单引号括起来的字符 顺便就看了一下UTF(unicode text format)格式,它是这样出来16位的unicode字符 前九位为0的unicode字符:一个字节 前五位为0的unicode字符:两个字节 其它:三个字节 对应的前缀编码: 0xxxxxxx Ascii码 10xxxxxx 第二或者第三个字节 110xxxxx 两字节序列中的第一个字节 1110xxxx 三字节序列中的第一个字节 二类:类与对象:类是一个逻辑结构,对象拥有物理实体也就是说类不占据内存空间,对象占据一定的内存空间可以从类对象的获取说明这个问题。 例如:Box aBoxnew Box(); 实际上这个过程分两步 Box aBox; aBoxnew Box(); 第一步是创建一个对象,返回的aBox是一个对象的引用。 第二步才是调用构造函数,为对象分配内存空间,返回的是这个内存地址的引用,这个引用被赋给了aBox。 构造函数是如何工作的呢? 构造函数没有返回值,是因为其隐含的返回类型是类本身。 默认的构造函数自动将所有的实例变量初始化为0。 实例变量即是一个类中定义的数据或变量,类的成员是指类中定义的方法和变量。 引用是个很有意思的东西。 例如:Box anew Box(); Box bnew Box(); 这个时候a和b对应各自的内存地址,假如 a=b; 这个时候a,b均指向同一个内存地址即b的内存地址。也就是说现在你更改a中的成员变量的值b的变量的值也随之改变;假如改变b中成员变量的值,a的对应变量也随之改变。引用只是一个内存的地址。 类中有个词语叫做抽象类,抽象类有很多含义和细节需要注重: 1.包含抽象方法的类必须声明为抽象类 2.抽象类的方法在子类中必须被覆盖,否则子类也必须声明为抽象类 3.抽象类不能有对象,不能new一个抽象类将其实例化 4.抽象类可以有抽象方法也可以有具体实现了的方法 5.抽象类可以创建对象引用 第五条非常有用,可以实现多态。李乾师兄曾讲解的设计模式中的工厂方法也就是抽象类的超类变量引用不同的子类对象。 由于接口都没有实现自身的方法,假如一个类没有实现接口中的方法,也必须定义为抽象类。 三接口: 接口只定义方法名,但是不实现方法。 接口可以声明变量,但是这些变量将是隐含的、最终的、静态的,不能由实现接口的类来改变。因此可以将共享常量在接口中定义,然后导入到多个类中。 可以使用接口引用来调用实现,这是什么意思呢? 例如:inerface callback() public void call(int p) class client implements callback public void call(int p) public static void (String arg) callback c=new client();c.call(1); 注重上面黑体字部分callback c=new client(), 创建了一个client对象,却声明为接口类型,这其中的意思就是c只是知道接口callback中方法,至于实现这个接口的client类还有什么其它的方法,c一概不知。这有些类似超类引用子类对象,很有用处的地方就是实现多态,很多实现这个接口的类可以用同一个接口的引用来调用。 四一些保留字的含义和运用: static:一般修饰类的成员,使该类成员独立于类的任何对象,使用类名即可调用。 使用static要注重: 1.static 方法仅可调用其它的static方法 2.只能访问static数据 3.不能以任何方式调用this或者super。(还不明白为什么) this:在任何方法中都可以使用this来调用当前的对象,this总是当前对象的一个引用。 this可以用于实例变量隐藏 所谓实例变量隐藏,就是说当一个本地变量和一个实例变量同名时,实例变量就被隐藏了。比如Box的构造函数 Box( double aWidth,double aHeight , double aDepth ) 1.2.2实训步骤软硬件环境准备:一硬件环境: CPU支持虚拟化的检测工具 网上有几种方法来确定自己的CPU是否支持虚拟化,比较常见的就是使用AMD-V工具来运行判 断。或是使用EVEREST工具,通过查看CPU下列几项来确定是否支持虚拟化: CPU是否支持硬件虚拟化,例如IntelVT技术或者AMD-V技术 CPU是否支持X64位技术CPU是否支持硬件DEP(数据执行保护)技术2 软件环境:1 windows server 2003 Ent with sp2为本本和台式机的操作系统2 VMware Workstation 6.5.0 build 118166 在本本和台式机上已安装3 VM Esx 3.5 Update 3 安装于台式机上的VMware Workstation 6.5中4 注意:B、C、VMware Workstation 6.5.0 build 118166已完成安装,且使用一直良好,相信大部分朋友都有安装的经验,在此文中将不会出现安装方法。5 Windows server 2008 Ent为运行在本本VMware Workstation上的DC的操作系统6 Windows server 2003 Ent With Sp2为运行在本本VMware Workstation上的操作系统7 VMware ESX Server 3.5.0 U3为运行在台式机上VMware Workstation上的系统8 OpenFiler 2.3为运行在台式机上VMware Workstation上的系统实现过程:1.完成了Java语言经典算法50例,经典算法50例是为我们的打下最基础的底子!2.完成了Java九大示例程序,Java九大例题是Java里一定要掌握的!3.做了很多例题。类继承的例子:package Example;class mother public static String sex; /成员变量 public void method1() /父类成员方法1 System.out.println(母亲的方法1!); public void method2() /父类成员方法2 System.out.println(母亲的方法2!); class boy extends mother /继承 public void method2() /改写父类成员方法,Java中方法均为虚方法 System.out.println(我自己的方法2!); public class Example4 public static void main(String args) boy boys = new boy(); boy.sex = 男孩; /静态变量的继承 System.out.println(继承而来的字段sex的值为:+boy.sex); boys.method1(); /来自父类的方法 boys.method2(); /自己改写后的方法 抽象类及其实现示例: package Example; /应该注意的是:继承抽象类的类,要求抽象类中的抽象方法要被实例化 abstract class personClass /抽象类 public String sex; /变量。 public abstract void method(); /抽象方法。 class man extends personClass /以抽象类为模块的类 public void method() /抽象方法的实例化 System.out.println(继承抽象类的方法被实现化了); public class Example6 public static void main(String args) man boys = new man(); /产生一个对象 boys.sex = male; /给对象一个初值 System.out.println(boys.sex); boys.method(); /调用man类中的方法 接口及其实现: package Example; interface Iinterface /定义一个接口 int i=10;/定义的变量为fianal类型; void method(); / 声明接口方法,但不能有方法体 public class Example7 implements Iinterface /实现接口 public void method() /接口的方法在此必须被重写,注意访问修饰符为public System.out.println(接口实现成功!); public static void main(String args) Example7 prog7 = new Example7(); /prog7.i=10; 不能修改的值,为final类型 prog7.method(); 抽象类与接口混合编程例子: package Example; interface myInterface /定义一个接口 void method1(); abstract class abstractClass /定义一个抽象类 public abstract void method2(); /加abstract class shixianlei extends abstractClass implements myInterface /继承抽象类,实现接口。 public String st; /定义自己的字段 public void method1() /实现接口,注意访问修饰符加public System.out.println(接口方法已加public实现); public void method2() /实现抽象方法 System.out.println(抽象类方法已实现); public class Example8 public static void main(String args) shixianlei sxl = new shixianlei(); sxl.st = 实现类的字段; System.out.println(sxl.st); sxl.method1(); /实现的接口方法调用 sxl.method2(); /实现的抽象类的方法调用 接口回调与多态性: package Example; interface Eat /定义一个接口 void eat(); class Cow implements Eat /实现接口。 public String name=牛哞哞; /定义自己的字段 public void eat() /实现接口,注意访问修饰符加public System.out.println(母牛爱吃青草); class Hen implements Eat /实现接口。 public String name=鸡咯咯; /定义自己的字段 public void eat() /实现接口,注意访问修饰符加public System.out.println(母鸡爱吃小虫); public class Example9 public static void main(String args) /多态的实现,animalEat代表不同对象,表现出不同的行为 Eat animalEat = new Cow(); /注意这种生成实例的方法,此处代表母牛 animalEat.eat();/调用母牛的方法 /System.out.println(animalE); /不能访问 animalEat=new Hen(); /注意这种生成实例的方法,此处代表母鸡 animalEat.eat(); /调用母鸡的方法 /System.out.println(animalE); /不能访问 实现中的注意事项或重难点:(1).类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。 为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素的定义: equals() hashCode() toString() clone()(implement Cloneable) implement Serializable (2).对于自己创建的每一个类,都考虑置入一个main(),其中包含了用于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。(3).学Java,首先要接触一些面向对象的概念,然后就是结合Java语言的特点去实施面向对象中的种种概念,然后再根据你具体要实现的应用去学一些相应的Framework、类库、开发环境/开发工具/工具链,然后再结合设计模式和软件工程做几个Java的实际项目。经过了这个过程,可以说你Java就已经入门了,然后你再根据你的发展需要更深入、更广泛地学一些相关理论知识、积累一些相应的实践经验。这是一个通常的学习过程。如果在这个过程之前你能够先积累一些编程的基础知识,那么你学习的速度将大大加快。在这条学习的主线之外,还会穿插着学习一些和编程语言无直接关系但关系到软件设计的理论,比如说数据结构、算法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年抚州职业技术学院单招职业技能考试必刷测试卷带答案解析
- 2026年上海财经大学浙江学院单招职业技能测试必刷测试卷及答案解析(名师系列)
- 2026年上海政法学院单招职业倾向性测试题库及答案解析(夺冠系列)
- 2026年安徽工贸职业技术学院单招职业倾向性测试必刷测试卷附答案解析
- 2026年泰州职业技术学院单招职业技能考试题库带答案解析
- 房屋建设使用协议书
- 房屋拆卸改造协议书
- 房屋按揭还款协议书
- 房屋机关合同协议书
- 房屋渣土清运协议书
- 《砼结构与砌体结构设计》第5章 砌体结构
- 糖尿病者运动处方
- HAPSITEER高级操作培训
- 优质课一等奖初中综合实践活动《制定我们的班规班约》
- GB/T 7165.1-2005气态排出流(放射性)活度连续监测设备第1部分:一般要求
- GB/T 6070-2007真空技术法兰尺寸
- GB/T 20985.1-2017信息技术安全技术信息安全事件管理第1部分:事件管理原理
- GB/T 13525-1992塑料拉伸冲击性能试验方法
- Linux网络基础课件
- 吊车施工专项施工方案
- 上海市居住证持有人办理本市常住户口申请表
评论
0/150
提交评论