JAVA第一章 课件.ppt_第1页
JAVA第一章 课件.ppt_第2页
JAVA第一章 课件.ppt_第3页
JAVA第一章 课件.ppt_第4页
JAVA第一章 课件.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,Java语言程序设计 Programming Language Java,2,教材及参考书(1),教材 朱晓龙等:Java语言程序设计 北京邮电大学出版社,2011 上机软件 JDK6.0 JCreator或Eclipse,3,教材及参考书(2),参考书 孙卫琴 :Java面向对象编程 电子工业出版社 ,2006 印旻,王行言等:Java语言与面向对象程序设计(第2版) 清华大学出版社 ,2007 朱福喜 :面向对象与Java程序设计 清华大学出版社,2009 陆迟 :Java语言程序设计 电子工业出版社 ,2002,4,考试成绩,平时成绩(30%) (到课情况、书面作业、上机练习、实验报

2、告) 期末考试(70%) 考试类别:校考试,5,1、上课按时进教室,每迟到一次扣1分 2、原则上不允许旷课,每旷课一次扣2分。特殊情况要有假条。 3、一学期旷课5次平时分扣为零分。旷课1/3不允许参加期末考试。 4、作业、实验报告少一次扣2分 5、不准在教室吃东西、男女交往得体,不准勾肩搭背,Java语言程序设计课堂教学要求 :,6,第一章 Java概述,7,1.1 Java语言简介 1.2 Java程序工作原理 1.3 Java开发环境 1.4 Java程序概述 1.5 面向对象的Java程序设计举例 1.6 Java程序的结构,8,1.1 Java语言简介,1.1.1 Java语言的起源与

3、发展 1.1.2 Java语言的特点,9,1.1.1 Java语言的起源与发展,起源:为了能够在不同消费电子产品上开发应用程序,开发出一种与平台无关、可靠性强的Oak语言。 Oak这种平台无关及安全性高的面向对象语言,适应网络需求 。于是,对Oak进行了一系列的改进,1995年,面向对象的Java语言诞生了 。其响亮的口号是“Write Once,Run Anywhere”。 Java的发展历史,10,11,1.1.2 Java语言的特点,Sun公司在“Java白皮书”中对Java的定义是:“Java: A simple,object-oriented, distributed,interpr

4、eted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,and dynamic language.”。 按照这个定义,Java语言是一种简单、面向对象的、分布的、解释的、健壮的、安全的、体系结构中立、可移植的、高性能、多线程的以及动态执行的程序设计语言。,12,Java语言的三个显著特点,1 跨平台(体系结构中立) Java程序能够在网络上任何地方执行;完全统一的语言版本,实现平台无关性;字节代码与平台无关性;访问底层操作系统功能的扩展类库,不依赖于具体系统等。典型商用系统。 2 安全性好

5、 除了Java语言具有的许多安全特性以外,Java提供了字节码校验器、文件访问限制机制、类装载器和运行时内存布局四级安全保证机制。 3 面向对象 面向对象的技术是当今软件开发的主流技术之一。Java语言是一个彻底的纯面向对象的程序设计语言。它具有面向对象的封装、继承和多态三大特点。,13,1.2 Java程序工作原理,1.2.1 Java程序工作流程 1.2.2 Java虚拟机 1.2.3 Java语言的平台无关性 1.2.4 Java平台的分类,14,1.2.1 Java程序工作流程,Java的工作流程是: 编辑Java源文件:首先,编程人员使用Java语言编写好源代码,形成源文件。文件名的

6、后缀为.java。 编译Java源文件:然后,使用Java编译器来编译Java源文件,生成一种二进制的中间码,称为字节码(byte code),形成字节码文件。文件名的后缀为.class。 运行Java程序:最后,使用Java解释器来解释执行编译生成的字节码,完成Java程序要实现的功能。,15,图1-1 Java的工作流程,16,1.2.2 Java虚拟机,Java虚拟机(JVM,java virtual machine) 负责运行Java字节码文件,负责把字节码解释成具体平台上的机器指令进行执行。它也称Java解释器。 Java虚拟机规范规定了:虚拟机能够认识的字节代码以及能实现的功能。

7、对于不同的软硬件平台(指处理器和操作系统),Java虚拟机作专门的实现。因此,在不同软硬件平台上的Java虚拟机,只要符合Java虚拟机规范,将保证字节码文件的正确执行。Java语言编译执行的过程,如图1-2所示。,17,图1-2 Java语言编译执行的过程,18,1.2.3 Java语言的平台无关性,Java语言是与平台无关的。 它没有“依据机器的不同而不同”或“由编译器决定”等字眼。 字节代码是与平台无关的。 由Java编译器产生的字节代码是二进制码,它与具体的计算机处理器代码无关。 Java虚拟机隐藏了不同平台的差异。 字节码文件运行在Java虚拟机上。Java虚拟机将字节码文件与操作系

8、统及硬件分开。,19,C语言和Java语言跨平台的区别,计算机平台(SPARC Solaris),源代码英语,计算机平台(INTEL Windows) Windows),计算机平台(Macintosh Mac OS),处理器专用代码粤语,处理器专用代码上海话,处理器专用代码陕西话,图1-3 C语言的机器代码在不同计算机平台上的相关性,编译器1,编译器2,编译器3,20,C语言和Java语言跨平台的区别,计算机平台 (Macintosh Mac OS),计算机平台 (SPARC Solaris),Java源代码英语,字节码普通话,处理器专用代 码粤语,处理器专用代 码上海话,处理器专用代 码陕西

9、话,Java编译器,Java虚拟机1,图1-4 Java的平台无关性,计算机平台 (INTEL Windows) Windows),Java虚拟机2,Java虚拟机3,21,C语言和Java语言跨平台的区别,Java语言实现了二进制代码级的平台无关,在网络上实现了跨平台的特性。 而C语言是实现了源程序代码级的跨平台。 Java语言这种“一次编写,到处运行(write once,run anywhere)”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。,22,1.2.4 Java平

10、台的分类,(1)Java SE:Java SE以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java SE包含了支持Java Web服务开发的类,并为Java EE提供基础。 (2)Java EE:这个版本以前称为J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。Java EE是在Java SE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web 2.0应用程序。 (3)Java ME:

11、这个版本以前称为J2ME。Java ME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。,23,1.3 Java开发环境,1.3.1 Java SE的开发工具包 1.3.2 Java 集成开发环境 1.3.3 Java学习与帮助资源JDK文档,24,1.3.1 Java SE的开发工具包,1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个的强大的开发库支持才行。因此,Sun在19

12、96年1月发布了JDK1.0。此后,Sun平均以两年一个新版本的速度不断更新JDK。目前,较新的版本是JDK 6。 JDK(Java SE Development Kits)就是Sun公司免费提供的Java SE开发工具包。JDK是一种开发环境,开发者利用它可以编译、运行和调试Java程序。,25,26,1.3.2 Java 集成开发环境,Java IDE(Integrated Development Environment,集成开发环境)优点: 集源代码的编辑、编译、调试、部署和管理等功能于一体, 提供友好的用户界面 帮助程序员生成应用程序框架,提高软件开发效率 常用的Java集成开发环境有

13、 : JCreator :小巧、易用、美观,是Java初级程序员的理想IDE。 Eclipse :开放源代码的、基于Java的可扩展集成开发平台。它是一款非常受欢迎的Java开发工具,使用它的Java程序员是最多的。其缺点是比较复杂 。,27,1.3.3 Java学习与帮助资源JDK文档,JDK文档包含有关Java API、Java命令行开发工具等的一系列说明和帮助文档。 API的全称是Application Programming Interface应用程序编程接口。 在JDK文档中,程序员可以了解类的继承结构、成员方法、成员变量、构造方法、静态成员的详细说明和描述信息。 JDK文档是Jav

14、a程序开发不可缺少的编程词典,是Java语言学习者最权威的参考资料。,28,所有的包,指定包中的类、接口等,29,30,1.4 Java程序概述,1.4.1 第一个Java Application程序 1.4.2 第一个Java Applet程序,31,1.4.1 第一个Java Application程序,【例1-1】输出信息为“欢迎你学习Java语言!”的Java Application程序。 /* Hello.java */ /一个Java Application程序 public class Hello public static void main(String args) Syst

15、em.out.println(欢迎你学习Java语言!); ,32,第一个Java Application程序的说明,类的定义,关键字class用来定义一个新的类,其类名为Hello。整个类定义由大括号 括起来,其内部是类体。 类Hello是一个公共类(public)。Java程序中可以定义多个类,但是最多只有一个公共类。而且这个公共类的类名必须要与程序文件名相同。,33,第一个Java Application程序的说明,main()方法有4个特点: public表示访问权限,指明所有的类都可以使用这一方法; static指明该方法是一个类方法,它可以通过类名直接调用; void指明main(

16、)方法不返回任何值。 main()方法定义园括号()中的String args是传送给main()方法的参数,参数名是任意的,通常取为args或argv,它是字符串数组String的一个对象。方法的参数用“类名 参数名”来指定,多个参数间用逗号分隔。,34,1.4.2 第一个Java Applet程序,【例1-2】输出信息为“欢迎你学习Java语言!”的Java Apple程序。 import java.awt.Graphics; import javax.swing.JApplet; public class HelloJApplet extends JApplet public void

17、paint(Graphics g) g.drawString(欢迎你学习Java语言!, 50, 20 ); ,35,然后,编译HelloJApplet类,将HelloJApplet.class文件编入Html文件中: ,36,第一个Java Application程序的说明,首先,import语句引入java.awt.Graphics类和javax.swing.JApplet类。 其次,定义一个公共类HelloJApplet,用extends指明它是JApplet的子类。Java小应用程序都是Applet类或JApplet类的子类。 最后,编写Html文件,把小应用程序的字节码文件放在标记里

18、。让小应用程序作为Html文件的一部分,由浏览器解释包含小应用程序的字节码的Html文件。,37,一般来说,开发好的HTML文件和小应用程序类文件应存放在服务器上。 当客户通过浏览器向服务器发出请求时,被请求的HTML文件就会下载到客户端,并由浏览器解释后显示在窗口上。 如果HTML文件包含小应用程序,那么浏览器就会启动Java虚拟机,并向其提供有关小应用程序的有关信息(从APPLET标记中获得)。随后,Java虚拟机从服务器下载相关的小应用程序类并执行。,38,Java Application与Java Apple的区别, 两种程序运行机理完全不同。 Java Apple不能单独执行,只能通

19、过浏览器从服务器上下载后,再由浏览器内部的Java虚拟机执行。而Java Application多通过Java虚拟机在本地或服务器上单独运行。 它们的起始类也不同: Java Application的起始类是包含main()方法的类;起始类并非一定是public。 Java小应用程序的起始类都是Applet类或JApplet类的子类,而且必须被定义成public的,否则java虚拟机将无法创建这个起始类的对象,进而无法执行该对象里的方法。为此,源文件的名字要与起始类的名字保持一致。,39,1.5 面向对象的Java程序设计举例,1.5.1 Java Application程序设计举例 1.5.

20、2 Java Applet程序设计举例,40,1.5.1 Java Application程序设计举例,【例1-3】计算正方形的周长和面积。 public class Square private double side; public void setSide(double a) side = a; public double getSide() return side; public double getPerimeter() return 4*side; public double getArea() return side*side; ,41,class SquareTest publ

21、ic static void main(String args) Square object1,object2; object1 = new Square(); object2 = new Square(); object1.setSide(1 ); object2.setSide(10); System.out.println(object1 side=+object1.getSide(); System.out.println(object1 Perimeter=+object1.getPerimeter(); System.out.println(object1 Area=+object

22、1.getArea(); System.out.println(object2 side=+object2.getSide(); System.out.println(object2 Perimeter=+object2.getPerimeter(); System.out.println(object2 Area=+object2.getArea(); ,42,程序运行结果: object1 side=1.0 object1 Perimeter=4.0 object1 Area=1.0 object2 side=10.0 object2 Perimeter=40.0 object2 Area

23、=100.0,43,可见,一个类可以概括为:类 =(数据,操作,接口) 数据描述类的属性 如在本例中,成员变量side描述正方形的属性 操作描述类的行为 如在本例中,4个成员方法描述正方形有4种行为,设置正方形边长,得到其边长、周长和面积。 接口描述操作对外的可见性 如在本例中,4个成员方法都用public修饰,因此,外界可以使用它们。 在Java语言中,将数据(成员变量)、操作(成员方法)和接口形成一个整体叫类(用类名表示),它作为Java语言的基本单位。这种构建类的过程叫类的封装。类的封装使得类成为成员变量和成员方法的保护膜,外界只能看到类的接口,不在接口中的成员变量和成员方法外界无法看到

24、,当然所有方法的实现外界更是无法看到,这种情况叫隐藏。,44,【例1-4】,【例1-4】改写例1-1,说明类和对象的关系。 class Hello public void method (String s) System.out.println(s); public class Ex1_4 public static void main(String args) String str = 你好,很高兴学习Java; Hello obj; obj = new Hello(); obj.method(str); ,45,类与对象的关系,类与对象的关系,就如同制造汽车的图纸与汽车的关系一样。制造汽车

25、的图纸设计规定了汽车应具有的性能,这样,可以依据图纸制造出大量的汽车。在这里,制造汽车的图纸相当于类,制造出来的汽车相当于对象。 类描述了一组类似对象的共同特性,规定了类的属性和行为。这一组相似的对象被称为该类的实例或该类的对象。类作为一种模式,对象是具有这种模式的具体例子。因此,类是对象的模版,对象是类的实例化。 从Java语言的角度看,类与对象的关系,就如同类型与值的关系。类是数据类型,是引用数据类型。对象用引用值来表示,引用值存放在该类型的引用型变量中。,46,【例1-5】改写例1-4,说明学习、熟悉、掌握类库的重要性。,import java.util.*; class Hello p

26、ublic void method (String s) System.out.println(s); public class Ex1_5 public static void main(String args) String str; Hello obj; System.out.print(请输入字符串); Scanner reader = new Scanner(System.in); reader.useDelimiter(n); str = reader.next(); obj = new Hello(); obj.method(str); ,47,程序运行结果: 请输入字符串:从键

27、盘输入字符串并显示出来。 从键盘输入字符串并显示出来。 可见,引用了java.util包中的Scanner类后,程序的功能比例1-4显得强大了许多。但却没有添加许多代码。因此,学习、熟悉Java类库是Java程序员的一个重要内容。 Java程序是由类构成的。对象是由类创建的,而对象不是孤立存在的,对象之间通过消息相互交流。,48,【例1-6】编程模拟两个人物的一次对话,说明对象之间通过消息相互交流。两个人物分别是红楼梦的宝玉和黛玉。 class Person String message; void speakTo (Person sb, String shortMessage) sb.set

28、Message(shortMessage); System.out.println(sb.message); void setMessage(String shortMessage) message = shortMessage; ,49,public class Ex1_6 public static void main(String args) Person 黛玉, 宝玉; 黛玉 = new Person(); 宝玉 = new Person(); 宝玉.speakTo(黛玉, 林妹妹,我好喜欢你。); 黛玉.speakTo(宝玉, 讨厌,再说这种混帐话,我就不理你了。); ,50,1.5

29、.2 Java JApplet程序设计举例,【例1-7】编写一个Java Applet,计算正方形的周长和面积。 import java.awt.*; import javax.swing.JApplet; import xiyou.chapter1.Square; public class SquareJApplet extends JApplet String str; Square o1,o2; public void init() str= new String(这是一个计算正方形的周长和面积的Java Applet。); o1 = new Square(); o2 = new Square(); o1.setSide(1 ); o2.setSide(10); ,51

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论