1、Java语言程序设计,教师:段鹏飞,课程简介,课程名称:Java语言程序设计 学时:32/16次 (1-16周)+8学时实验 考核方式:闭卷考试 成绩:平时成绩30%+考试成绩70% 教师:段鹏飞 QQ群号:737514899 联系方式:Tel 15972100809Email 课程网站:http:/ 基础知识 Java基本结构 面向对象基本理论 类和对象 初始化和访问控制 继承与多态 第二部分 技术专题 异常 IO 线程与多线程 GUI,课程安排,参考教材,翁恺 编著. Java语言程序设计教程(第二版).浙江大学出版社,2013年1月第2版 英 巴恩斯(Barnes D.J) 著;翁恺
2、译. 实用Java教程:基于BlueJ的对象优先方法(第3版).人民邮电出版社,2009年1月 (美)梁勇 著,李娜 译. Java语言程序设计:基础篇(原书第8版). 机械工业出版社, 2011.,学习方法,不用拍照,所有课件都会上传至课程网站 课堂中多听,课本预习和复习用 多写程序,不要怕出错,争取和所有Bug混个脸熟 Eclipse运行Java程序时点 图标 练习用网络资源解决问题,8,9,学习目标,掌握Java的语法结构,能够使用Java编写基本程序理解面向对象程序设计的思维能够用Java解决现实生活中的问题,Java语言概述,什么是Java? Java的发展 Java程序介绍 Jav
3、a程序运行环境,什么是Java?,编程语言(Programming Language) 运行平台(Platform) 印度尼西亚爪哇岛,名字起源,名字起源,Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。 Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。 SUN和JAVA的标识也正是一杯正冒着热气的咖啡。,印度橡树,1991.4 Sun开发新的语言,James Gosling取名时看到窗口橡树,即命名为Oak。 后改名为Java。,Java语言概述,什么是Java? Java的发展 Jav
4、a的特点 Java程序运行环境,编程语言排名,编程语言排名,C vs C+,Android vs iPone,Java的历史,诞生Java之父 - James Gosling嵌入式设备 发展 2009年4月,Oracle以74亿美元收购Sun公司 JDK1.5更名Java Platform 5.0 最新版本 2014年3月19日, Oracle发布Java 8.0的正式版 2014年11月甲骨文公司发布了Java 9.0的新特性,20,Java运行平台(Platform),Java平台的发展 Java Development Kit 1.0.2 1.1.1 1.1.6 1.1.7 1.1.8
5、1.2.1 Java 2 SDK 1.2.2 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2. 1.8.0 Java平台的三个版本(1999.6): J2SE/J2EE/J2ME http:/ Standard Edition J2EE: Enterprise Edition J2ME: Mirco Edition,25,Java运行平台(Platform),J2SE Platform (Java 2 Standard Edition) Java Runtime Environment (JRE) Java虚拟机、库函数、运行Java应用程序和Applet所必须文件 Java 2
6、SDK (Development Kit)JRE的超集,包含编译器和调试器等用于程序开发的文件 Java虚拟机、Java应用编程接口和系统平台的关系,Java平台体系,Java 2 Plantform Enterprise Edition(J2EE):用于开发企业服务器端应用程序。 Java 2 Plantform Standard Edition(J2SE):用于开发一般台式计算机应用程序。 Java 2 Plantform Micro Edition(J2ME):用于开发嵌入式、信息家电产品应用程序。,Java语言概述,什么是Java? Java的发展 Java的特点 Java程序运行环境
7、,程序设计语言分类,汇编语言 运行效率高 编程难度大 编译型语言 编译形成目标代码 连接器进行连接 形成可执行文件:exe文件存放的是x86机器语言指令 解释性语言 运行效率低 跨平台优势 脚本语言 bat批处理文件 JavaScript扮演越来越重要的角色,29,JavaScript、Python,Java虚拟机,Java虚拟机是针对不同的软硬件平台做专门的实现。,编译运行的过程,31,Java语言的特点,跨平台Cross Platform/可移植PortableJava VM数据类型的统一Unicode是16位编码标准 运行效率慢的原因 快的原因趋势是追求开发效率而不是追求执行效率,32,
8、Java语言的特点(续),稳定没有指针垃圾回收机制数组有下标检查 简单与C+比较比较纯粹的OOP 动态JVM初始化对象,不需要的就不加载,33,Java编程语言的特点,强类型 编译和解释 自动无用内存回收功能 面向对象 与平台无关 安全性 分布式计算 多线程,Java编程语言的特点,无用内存自动回收机制,Java编程语言的特点,int maxSoFar=0,price=1; /最大值maxSoFar的初值为0/price是输入的值 while(price0) /循环输入price的值if (pricemaxSoFar) /输入的值price大于最大值maxSoFarmaxSoFar=price
9、; /则maxSoFar的值为price的值String input=JoptionPane.showInputDialog(“Enter the next price“); /继续输入priceprice=Double.parseDouble(input); /把字符串input转换成整数priceSystem.out.println(“The maximum is ”+maxSoFar); /打印最大值maxSoFar ,面向过程编程,Java编程语言的特点,Max max=new Max( ); /max是类Max的一个对象 while(price0) max.updateMax(pri
10、ce); /对象max调用updateMax方法,更新最大值price=max.getPrice( ); /对象max调用getPrice获得下一个price的值 System.out.println(“The maximum is “+max.getMax( );/对象max调用getMax方法获得最大值,并打印出来,面向对象编程,Java编程语言的特点,与平台无关 Java编译器产生的字节码(bytecode)可运行在异种网络环境中(不同的硬件系统和不同的操作系统) Java程序在不同的平台中行为一致,不存在数据类型的不一致等现象,Java编程语言的特点,安全性 取消了指针的不安全性,增强
11、了程序的健壮性 内存管理简单,“new”构造对象,对象释放(automatic garbage collection) 可靠的语言: compile-time checking和run-time checking 网络环境的应用不会产生恶意行为,为Java程序构造一个个(Sandbox,具有安全策略的限制),提高了安全性,为什么选择Java?,简单易学 (Get started quickly) 写较少的代码 (Write less code) 写更好的代码 (Write better code): garbage collection (防止内存泄漏),面向对象、JavaBeans构件机制、
12、其他API复用代码,减少bugs 开发程序更快 (Develop programs more quickly) 避免平台依赖性 (Avoid platform dependencies with 100% Pure Java) 编写一次,随处运行 (Write once, run anywhere) machine-independent bytecodes 发布软件更容易 (Distribute software more easily): 指对软件的更新,利用动态加载功能,一处改动,自动更新,不用重新编译整个程序,Java语言概述,什么是Java? Java的发展 Java的特点 Java
13、程序运行环境,Java程序运行环境,获得 JDK 7 下载地址 安装 jdk-7u79-windows-i586.exe,Java环境变量设置,右击【我的电脑】-【属性】-【高级】-【环境变量】,如图:,Java环境变量设置,选择【新建系统变量】-弹出“新建系统变量”对话框,在“变量名”文本框输入“JAVA_HOME”,在“变量值”文本框输入JDK的安装路径,单击“确定”按钮,Java环境变量设置,在“系统变量”选项区域中查看PATH变量,如果不存在,则新建变量 PATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起始位置添加“%JAVA_HOME%bin;” ,单击确定按钮,Ja
14、va环境变量设置,在“系统变量”选项区域中查看CLASSPATH 变量,如果不存在,则新建变量CLASSPATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起始位置添加“.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;”,Java程序运行环境,检查Java运行环境设置 C:java Usage: java -options class args. (to execute a class) or java -jar -options jarfile args. (to execute a jar file) C:javac Usage:
15、javac C:java version,第一个Java程序,第一个Java程序,HelloWorld main方法pubic static修饰符,参数String args最低要求 记事本+javac+java集成开发环境IDE Eclipse,Netbeans,MyEclipse 建立Java开发环境,50,JVM执行步骤,Step1:编辑源代码 Step2:JAVA编译器将其编译为class文件(JVM规范的字节码) Step3:JAVA解释器负责将class文件解释运行(解释器有两个功能:执行字节码、对底层硬件平台做适合调用) 加载代码:由class loader完成 校验代码:由by
16、tecode verifier完成 执行代码:由runtime interpreter完成,JJava程序开发过程,图1.5 Java程序的开发过程,标准Java程序,Java程序结构,package语句 /0或1条,必须放在文件开始 import语句 /0或多条,必须放在所有类定义之前 public classDefinition /0或1个。文件名必须与该类的类名完全相同 classDefinition /类定义,个数不限 interfaceDefinition /接口定义,个数不限,Java程序结构示例,package javawork.helloworld; /*把编译生成的所有.cl
17、ass文件放到包javawork.helloworld中*/ import java.awt.*; /告诉编译器本程序中用到系统的AWT包 import javawork.newcentury; /*告诉编译器本程序中用到用户自定义的包javawork.newcentury*/ public class HelloWorldApp /*公共类HelloWorldApp的定义,名字与文件名相同*/ class TheFirstClass /第一个普通类TheFirstClass的定义 class TheSecondClass /第二个普通类TheSecondClass的定义/其它普通类的定义 i
18、nterface TheFirstInterface /第一个接口TheFirstInterface的定义/其它接口定义,Java编程规范,包名 全小写,一般为名词,如:java.awt.event; 类名 首字母大写,每个单词的首字母大写,如:class HelloWorldApp; 接口名 同类名,如:interface Collection; 方法名 一般为动词,小写字母开头,每个单词的首字母都要大写,如:balanceAccount, isButtonPressed; 变量名 全小写,一般为名词,如:length; 常量名 基本类型的常量名为全大写,如:int YEAR, int WE
19、EK_OF_MONTH;对象常量大小写混合。,简单的Java应用程序,Java源程序文件扩展名为“.java” Java字节码程序文件扩展名为“.class”/* * Exam1_1 class实现一个应用 * 将特定的字符串显示到标准输出 */ public class Propertypublic static void main(String args) System.out.println(“Hello World.“); ,Java Application的编译,Java编译器命令:javac 命令行中输入:javac Property.java 源文件名为Property.java
20、,注意:文件名必须与公共类名相同;由javac编译器编译源程序,产生字节码文件(.class文件)。本例中产生Property.class文件。,Java Application的执行,Java执行命令:java 命令行中输入:java Property 该命令将启动Java虚拟机,由Java解释器解释执行。,注意事项,源文件的命名规则 如果.java文件包含一个public类,它必须按该类名命名。 一个源文件中最多只能有一个public类,其他类的个数不限。,Java注释,注解方式(Comments) /* */文档注解 /* */ 程序内的任意位置 /对本行注解/* Exam1_1 cla
21、ss实现一个应用 * 将特定的字符串显示到标注输出*/public class Exam1_1 public static void main(String args) System.out.println(“This is a Java Application Program.“);,Java注释,文档注释:当程序员编完程序以后,可以通过JDK提供的javadoc命令,生成所编程序的API文档,而该文档中的内容主要就是从文档注释中提取的。该API文档以HTML文件的形式出现,与java帮助文档的风格与形式完全一致。凡是在“/*”和“*/”之间的内容都是文档注释。如:DocTest.java文件。,Java注释,/* 这是一个文档注释的例子,主要介绍下面这个类 */ public class DocTest/* 变量注释,下面这个变量主要是充当整数计数 */public int i;/* 方法注释,下面这个方法的主要功能是计数 */public void count( ) ,文档注释的生成,在命令行输入:javadoc DocTest.java,生成了介绍类DocTest的index.html文件,学习要求:,多练习、多编写程序。 “熟能生巧”,通过实践真正体验到程序设计中的乐趣和成功的喜悦,增强学习的信心。,谢谢,