一、实验目的

1.掌握JDK的安装步骤(有条件的话可以在Linux系统下安装)。
2.理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法(Win98和Win2000/XP、Win7、Win8下的设置方法有所区别)。
3.熟悉记事本(或JCreator)编辑环境,编写简单的Application程序,并编译和解释执行。
4.记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。
5.复习、理解OOP的三大特征——封装、继承和多态。
6.学会使用Java编写简单的类。理解类的属性和方法。
7.掌握关键字private, protected, public的作用,掌握静态类,内部类的概念。
8.掌握多态的概念。

二、实验原理

  1. 下载最新版本的JDK,并安装。
  2. 设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。
  3. 在记事本(或JCreator)环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序。
  4. 编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。在类B中实例化类A的一个对象。分别编译类A和类B。
  5. 分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:
  1. Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。
  2. Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D的平移。
  3. Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x, int y, int z)和Point3D(Point2D p, int z),两者均可实现对Point3D的成员变量x, y, z的初始化。
  4. Point3D有一个void型成员方法offset(int a, int b, int c),该方法可以实现Point3D的平移。
  5. 在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。

三、使用硬件、软件环境

PC 计算机一台,安装Windows10操作系统。
使用JCreator,JDK1.6.0等软件

四、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)




五、实验结论、分析、思考题与心得体会

思考题:
1.什么是JVM,它的作用是什么?
JVM就是java虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能。JVM有自己完善的硬件结构,例如处理器、堆栈和寄存器等,还具有相应的指令系统。
JVM是java字节码执行的引擎,还能优化java字节码,使之转化成效率更高的机器指令。JVM中类的装载是由类加载器和它的子类来实现的,类加载是java运行时一个重要的系统组件,负责在运行时查找和装入类文件的类。不同的平台对应着不同的JVM,在执行字节码时,JVM负责将每一条要执行的字节码送给解释器,解释器再将其翻译成特定平台换将的机器指令并执行,这样就实现了跨平台运行。
2.如何理解PATH和CLASSPATH,,如何设置它们。
Windows中需要设置两个环境变量PATH和CLASSPATH。PATH变量指出java提供的可执行文件的路径,是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。CLASSPATH指出java包的路径,作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。
设置PATH变量,需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待。设置CLASSPATH变量,需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中。
3.Java中子类对象的创建过程的详细步骤是什么?
在第一次进行子类实例化时,执行顺序为:初始化父类专静态成员变量、子类静态成员变量、父类非静态成员变量、父类构造函数、子类非静态成员变量、子类构造函数;如果不是第一次进行实例化,则执行顺序为:父类非属静态成员变量、父类构造函数、子类非静态成员变量、子类构造函数。
4.什么是面向对象的多态性,在程序中如何体现的?
多态就是同一操作作用于不同的对象时,可以有不同的解释,产生不同的执行结果。
在父类写一个虚方法或抽象方法,子类去重写父类的方法,在调用的时候系统会根据对象运行时的类型决定调用哪个方法,使程序变得简洁明了。

心得体会:
在本次实验中,充分感受到,相较于c语言来说,Java更加贴近人类的思维,而且应用的范围更广。Java不再局限于某一个系统,而是为了适应不同的系统,而有不同的虚拟机,体现出Java广泛的适用范围。而Java的继承性和多态性,避免了重复写代码的问题,使代码更加的简洁、明了,更加地便于阅读和使用。
而且Java语言相较于c语言,更加地安全,便于使用。Java中部分变量无法直接修改,使得安全性更强,重写和重载的方法使得Java面向对象的特点突出,不同的对象有不同的特点和方法,这正是Java语言的优越性之一。

合肥工业大学宣城校区Java技术实验一 Java开发环境的安装与配置相关推荐

  1. 合肥工业大学宣城校区计算机组成原理实验 单周期 CPU 设计与实现

    本实验使用的是Verilog,离谱的是CSDN居然找不到Verilog的代码块,只能使用c语言的代码块了. 一.实验目的: 通过设计并实现支持 10 条指令的CPU,进一步理解和掌握CPU 设计的基本 ...

  2. 合肥工业大学宣城java实验报告,(合肥工业大学宣城校区JAVA作业问答题.doc

    (合肥工业大学宣城校区JAVA作业问答题 第一章 1.Java 语言有哪些特点? 答:Java 语言的特点有:简单性.面向对象技术.分布性.健壮性.安全性.体系结构中立.可移植性.解释执行.高性能.多 ...

  3. 合肥工业大学宣城校区计算机大赛,初赛公示_2020年全国高校计算机能力挑战赛...

    姓名 学校 奖项 彭正元 重庆大学 西南赛区 一等奖 肖念昕 阜阳师范大学 华东赛区 一等奖 鲁兆成 山东财经大学 华东赛区 一等奖 杨志杰 西北师范大学 西北赛区 一等奖 韩宇博 河南大学 华中赛区 ...

  4. 合肥工业大学宣城校区计算机大赛,合肥工业大学宣城校区“建行杯”计算机设计大赛 颁奖典礼举行...

    4月11日下午,合肥工业大学宣城校区"建行杯"计算机设计大赛颁奖典礼在教学楼114室举行.宣城校区领导陈朝阳.田作淳.蒋传东.胡学钢及各部门负责人.各系部主任,学校教务部副教务长张 ...

  5. 合肥工业大学计算机与信息学院学生会宗旨,合肥工业大学宣城校区第一届学生会成立大会召开...

    11月1日晚,合肥工业大学宣城校区第一届学生会成立大会在宣城校区教学一号楼116室召开.宣城校区党委书记.管委会主任陈朝阳,党委副书记.管委会副主任蒋传东,管委会副主任胡学钢,综合办公室主任霍效忠.学 ...

  6. 合肥工业大学宣城校区Java技术实验四 Java Web编程

    (本实验只完成了一部分,属于半成品) 一.实验目的 1.掌握Java Web服务器Tomcat的安装.配置. 2.学会简单的HTML表单设计,表单提交. 3.掌握JSP中的request对象.sess ...

  7. 合肥工业大学宣城校区数据挖掘实验 分类任务

    (文章最后有全部源代码) 一.实验要求 1.1实验目的 1)理解分类任务: 2)考察学生对数据预处理步骤的理解,强化预处理的重要性: 3)基模型可以调用已有的包,训练学生熟悉数据挖掘的基本框架: 4) ...

  8. 合肥工业大学宣城校区计算机大赛,合工大宣城校区学子!全国冠军!

    原标题:合工大宣城校区学子!全国冠军! 4月18日至21日,2019国家机器人发展论坛暨RoboCup机器人世界杯中国赛在浙江省绍兴市举行. 我校代表队夺得足球仿真2D项目全国冠军(一等奖),这是我校 ...

  9. 合肥工业大学宣城校区Java技术实验二 基于GUI的网络通信程序设计

    一.实验目的 1.掌握Java中GUI程序的编写,包括事件监听机制. 2.掌握Java的网络通信编程,ServerSocket,Socket类的使用. 3.掌握Java中多线程的编程,Thread类, ...

最新文章

  1. 入行AI,你需要一本Python机器学习入门
  2. 突破电信3G宽带对网页浏览的上网限制
  3. 2020自然指数重磅发布:中科院第一,中国科大、北大跻身前十
  4. AI对人类社会的真正威胁
  5. 为什么很多程序员面试造火箭,入职拧螺丝?
  6. Linux内核进程管理基本概念-进程、运行队列、等待队列、进程切换、进程调度
  7. 移动端像素概念,viewport,适配
  8. 为什么说一次一密加是密抗窃听无条件安全的?
  9. 笔记-企业管理知识-知识管理
  10. http --- HTTPS是在安全的传输层上发送的HTTP
  11. #20071-[NOIP2020模拟赛B组Day6]礼物购买【二分】
  12. 戴尔电脑正在准备自动修复_戴尔如何建立社区为开放的未来做准备
  13. Android Studio插件安装
  14. 本地未安装Oracle数据库,如何连接远程Oracle数据库
  15. 【转】成为一名推荐系统工程师永远都不晚
  16. 苹果手机投屏到Windows
  17. ManoMotion⭐二、Unity手势识别插件简介,及效果录屏
  18. 德莱联盟(判断两个线段是否相交)
  19. 自然语言处理不属于计算机科学,自然语言处理是一门融语言学、计算机科学和什么于一体的科学...
  20. npm ERR! code EINVAL npm ERR! EINVAL: invalid argument, read

热门文章

  1. Python爬虫,某创意网站灵感视频采集下载
  2. Python3.6 车牌识别代码源码
  3. 会员积分体系付费会员的运营优化方法
  4. 2014年中国十大物联网公司排名
  5. 微软首席执行官鲍尔默简历
  6. 计算机组成原理之运算方法和运算器
  7. Leetcode-Mysql题目及知识点总结(597. 好友申请 I:总体通过率)
  8. JAVA大学生科技创新项目管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  9. linux 启动rsyslog服务_linux服务之rsyslog
  10. Latex表格固定列宽并设置靠左、居中或靠右