陈翔 南京大学计算机科学与技术系 chenxiang.nju@gmail.com Java语言程序设计基础 陈翔 南京大学计算机科学与技术系 chenxiang.nju@gmail.com 2017/3/17.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

Java 大学实用教程 ( 第 3 版 ) 主讲:程继洪 第 1 章 Java 语言概述  本章导读 Java 语言的诞生Java 语言的诞生 学习 Java 的必要性 学习 Java 的必要性 Java 的特点及与 C/C++ 之关系Java 的特点及与 C/C++ 之关系.
第一章 Java 语言概述 1.0 java 程序的结构 1.1 简介 1.2 java 语言的特点 1.3 java 语言分类 1.4 java 程序的运行 1.5 java 虚拟机 1.6 面向对象编程基础.
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Java 面向对象程序设计 第 1 章 Java 概述. Java 面向对象程序设计 1. 了解 Java 程序的工作机制与开发步骤; 3. 掌握字符界面与图形界面的 Java 程序设计方法, 了解 Applet 与 Application 两种程序结构的异同。 本章学习要点 2. 掌握在 TextPad.
软件编程基础 Java Applet 是另一类非常重要的 Java 程序, 虽然它的源代码编辑与字节码的编译生成过程与 Java Application 相同,但它却不是一类可以独立运 行的程序,相反,它的字节码文件必须嵌入到另一 种语言 HTNI 的文件中并由负责解释 HTML 文件的 WWW 浏览器充当其解释器,来解释执行.
第一章: Java 语言简介 CoreJava 核心编程. 课程整体目标 掌握 Java 语言基础知识 理解面向对象的编程思想 运用 Java 编写命令行程序 运用 JDBC 编写数据库访问程序 运用 Swing 组件编写图形用户界面程序 运用 Swing 组件和 JDBC 实现 C/S 结构的应用程序.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
淮海工学院 计算机课程 第 1 章 Java 入门 1.1 Java 的起源与发展 1.2 Java 程序开发与运行环境 1.3 Java 程序设计步骤 1.4 Java 程序的构成 一个小游戏.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
第1章 Java语言概述.
Java入门.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
Java语言程序设计 安阳工学院Java课程组 第1章 Java 语言概述(1) ----序论.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
第2章 Java运行环境 搭建 2.1 Java的运行系统 2.2 JDK的安装与配置 2.3 Java开发工具包
JAVA程序设计.
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
面向对象程序设计(Java) 徐志红
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
《Java程序设计》 Java建设小组 2012.
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
JAVA程序设计 (03) JAVA Programming
Java Applet 介绍.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
武汉大学国际软件学院 面向对象程序设计 武汉大学国际软件学院
Chapter 9 設計的精細製作: 行動計算 Software Engineering – An Engineering Approach, James F. Peters & Witold Pedrycz.
第一章 電腦、程式與JAVA.
CH09 套件 物件導向程式設計(II).
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java语言程序设计 第八部分 Applet小程序.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
C#程序设计基础 $1 绪论.
第二章 Java语言基础.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
第一章 Java语言概述.
認識 Java.
C/C++/Java 哪些值不是头等程序对象
第7章 包及访问控制权限 7.1 包的基本概念 7.2 系统常见包 7.3 包的导入 7.4 访问控制权限修饰符 7.5 jar命令的使用.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
面向对象 程序设计语言基础 马骏
《JAVA程序设计》 语音答疑 辅导老师:高旻.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
開發Java程式語言的工具 JDK.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
第2章 Java语言基础.
Applet.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第2章 Java运行环境 搭建 2.1 Java的运行系统 2.2 JDK的安装与配置 2.3 Java开发工具包
Summary
Presentation transcript:

陈翔 南京大学计算机科学与技术系 chenxiang.nju@gmail.com Java语言程序设计基础 陈翔 南京大学计算机科学与技术系 chenxiang.nju@gmail.com 2017/3/17

上课要求 请保持安静 2017/3/17

Java简介 Sun公司(2009年被Oracle 公司收购)1995年推出 2017/3/17

Java简介 Java的出现推动了Web迅速发展 Struts、Hibernate、Spring等开发框架 2017/3/17

Java语言的出现推动了开源软件的发展 SourceForge 2017/3/17

Java语言特点 简单 纯面向对象 分布式语言 健壮性 没有C、C++语言中的指针;没有多重继承;没有操作符重载; 提供网络编程类库;提供RMI(Remote Method Invocation)机制 健壮性 强类型机制、异常处理、垃圾内存自动搜集机制等 2017/3/17

Java语言特点 安全性 跨平台 解释型语言 高性能 多线程 在网络环境下,提供安全机制防止恶意代码攻击 直接提供类库支持多线程编程 2017/3/17

Java的创始人 James Gosling Sun副总裁及研究院院士 2017/3/17

名字起源 Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。 Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。 SUN和JAVA的标识也正是一杯正冒着热气的咖啡。 2017/3/17

Java平台体系 Java SE(Standard Edition) Java EE (Enterprise Edition) 针对桌面程序 Java EE (Enterprise Edition) 针对企业级软件 Java ME (Micro Edition) 针对移动设备和嵌入式设备 2017/3/17

不断扩展的平台 2017/3/17

参考教材 Thinking in Java 4th by Bruce Eckel 2017/3/17

参考教材 Core Java 8th Vol1, Vol2 2017/3/17

参考教材 Effective Java 2nd by Joshua Bloch 2017/3/17

Java虚拟机 在一台计算机上由软件模拟的假想的计算机。Java虚拟机的代码存储在class文件中(也称为字节码文件)。 2017/3/17

Java虚拟机 任何一个编译器,不是JVM的内容。 2017/3/17

JVM执行步骤 Step1:编辑源代码 Step2:JAVA编译器将其编译为class文件(JVM规范的字节码) 加载代码:由class loader完成 校验代码:由bytecode verifier完成 执行代码:由runtime interpreter完成 2017/3/17

Java虚拟机的建立 Java虚拟机的建立需要针对不同的软硬件平台做专门的实现。 2017/3/17

无用内存自动回收机制 2017/3/17

面向过程的编程风格 int maxSoFar=0,price=1; //最大值maxSoFar的初值为0 //price是输入的值 while(price>0){     //循环输入price的值   if (price>maxSoFar)  //输入的值price大于最大值maxSoFar     maxSoFar=price;   //则maxSoFar的值为price的值   String input=JoptionPane.showInputDialog("Enter the next price");               //继续输入price   price=Double.parseDouble(input); }  //把字符串input转换成整数price   System.out.println(“The maximum is ”+maxSoFar); //打印最大值maxSoFar } 2017/3/17

面向对象的编程风格 Max max=new Max( ); //max是类Max的一个对象 while(price>0){ max.updateMax(price); //对象max调用updateMax方法,更新最大值 price=max.getPrice( ); //对象max调用getPrice获得下一个price的值 } System.out.println("The maximum is "+max.getMax( )); //对象max调用getMax方法获得最大值,并打印出来 类的开发者 类的使用者 2017/3/17

Java程序分类 Java Application Java Applet 通常称为Java应用程序,以main()方法作为程序入口,由Java解释器加载执行。 Java Applet 通常称为Java小应用程序,通过浏览器或者是appletviewer命令加载执行。Applet是Java最早获得成功的应用。 2017/3/17

Java应用程序(Application)举例 //这是我们的第一个java application,该程序保存在文件Property.java中 import java.util.*; /*下面我们用到了Date和Properties这两个类, 是属于java.util这个包的;而System和Runtime这两个 类,是属于java.lang这个包的。*/ public class Property { //程序员给这个类取名为Property public static void main(String args[]){ //main是类的主方法 System.out.println(new Date( )); //在命令行下面打印出日期 Properties p=System.getProperties( ); //获得系统的Properties对象p p.list(System.out); //在命令行下打印出p中的各个系统变量的值 System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.getRuntime( ); //获得系统的Runtime对象rt System.out.println("Total Memory= " + rt.totalMemory( ) //打印总内存大小 +" Free Memory = " +rt.freeMemory( )); //打印空闲内存大小 } } 动画演示 2017/3/17

Java Application的编辑 2017/3/17

Java Application的编译 Java编译器命令:javac 命令行中输入:javac Property.java 源文件名为Property.java,注意:文件名必须与公共类名相同;由javac编译器编译源程序,产生字节码文件(.class文件)。本例中产生Property.class文件。 2017/3/17

Java Application的执行 Java执行命令:java 命令行中输入:java Property 2017/3/17

Java小应用程序(Applet)举例 //这是我们的第一个java applet,该程序保存在文件HelloEducation.java中 import java.awt.Graphics; //在进行显示输出时,需要用到类Graphics的对象; import java.applet.Applet; //Applet类是所有的java applet的父类; public class HelloEducation extends Applet { //程序员给这个类取名为HelloEducation所有的applet程序都是Applet类的子类 public String s; public void init() { s=new String(“Welcome to Tongfang Education”); //生成一个字符串对象 } public void paint(Graphics g){ g.drawString(s,25,25); //在浏览器中坐标为(25,25)的位置显示字符串s } 2017/3/17

Java Applet的执行 Java Applet不能字节执行,需要编写html文件,把Applet嵌入其中。例如HelloEducation.html文件 <html> <applet code=HelloEducation.class width=250 height=250> </applet> </html> 2017/3/17

Java Applet的执行 用appletviewer来运行,在命令提示符下输入:appletviewer HelloEducation.html 弹出窗口运行该程序 2017/3/17

Java Applet的执行 在支持Java的浏览器上运行。如在IE或Netscape中打开HelloEducation.html程序。 2017/3/17

Java程序结构 package语句 //0或1条,必须放在文件开始 import语句 //0或多条,必须放在所有类定义之前 public classDefinition //0或1个。文件名必须与该类的类名完全相同 classDefinition //类定义,个数不限 interfaceDefinition //接口定义,个数不限 2017/3/17

Java程序结构示例 package javawork.helloworld; /*把编译生成的所有.class文件放到包 import java.awt.*;   //告诉编译器本程序中用到系统的AWT包 import javawork.newcentury; /*告诉编译器本程序中用到用户自定义                的包javawork.newcentury*/ public class HelloWorldApp{......} /*公共类HelloWorldApp的定义,                    名字与文件名相同*/ class TheFirstClass{......} //第一个普通类TheFirstClass的定义 class TheSecondClass{......} //第二个普通类TheSecondClass的定义 ......         //其它普通类的定义 interface TheFirstInterface{......} //第一个接口TheFirstInterface的定义 ...... //其它接口定义 2017/3/17

package语句 包(package)是用于管理生成的java字节码文件(.class),其对应于文件系统中的目录,目的是把编译生成的.class文件放入该目录。 例如:javawork.helloworld对应于目录“path\javawork\helloworld,其中path需在编译时指定,且该目录须存在;如果javawork\helloworld不存在则创建该目录。例如: javac -d f:\javaproject HelloWorldApp.java 则生成的HelloWorldApp.class文件将放在目录 f:\javaproject\javawork\helloworld\中 2017/3/17

package语句 如果程序中没有package语句,或者有package语句但是在编译时不用-d选项,则生成的.class文件放入当前目录。 2017/3/17

Import语句 在程序中用到了标准类库或自定义包中的类,需要用import语句来声明。 可以声明一个包:import java.awt.* 在引用到类或者包时,将沿着类路径classpath开始寻找相应的.class文件,因此需要事先设置环境变量classpath: classpath=.;d:\jdk1.3\lib\ 2017/3/17

Java程序结构 源文件的命名规则 如果.java文件包含一个public类,它必须按该类名命名。 2017/3/17

Java编程规范 包名 类名 接口名 方法名 变量名 常量名 全小写,一般为名词,如:java.awt.event; 首字母大写,每个单词的首字母大写,如:class HelloWorldApp;  接口名 同类名,如:interface Collection; 方法名 一般为动词,小写字母开头,每个单词的首字母都要大写,如:balanceAccount, isButtonPressed; 变量名 全小写,一般为名词,如:length; 常量名 基本类型的常量名为全大写,如:int YEAR, int WEEK_OF_MONTH;对象常量大小写混合。 2017/3/17

Java帮助文档 Jdk1.3\docs\index.html 2017/3/17

Java帮助文档 查阅JDK命令,选择Tool Documentation 2017/3/17

Java帮助文档 Java、javac、javadoc、appletviewer 2017/3/17

Java帮助文档 查阅类库文档,选择Java 2 Platform API Specification 2017/3/17

Java注释 单行注释:从“//”开始到本行结束的内容都是注释,例如: //这是一行单行注释 //则是另一行单行注释     //这是一行单行注释     //则是另一行单行注释 多行注释:在“/*”和“*/”之间的所有内容都是注释,例如:    /*这是一段注释 分布在 多行之中 */ 2017/3/17

Java注释 文档注释:当程序员编完程序以后,可以通过JDK提供的javadoc命令,生成所编程序的API文档,而该文档中的内容主要就是从文档注释中提取的。该API文档以HTML文件的形式出现,与java帮助文档的风格与形式完全一致。凡是在“/**”和“*/”之间的内容都是文档注释。如:DocTest.java文件。       2017/3/17

Java注释 /** 这是一个文档注释的例子,主要介绍下面这个类 */ public class DocTest{   /** 变量注释,下面这个变量主要是充当整数计数 */   public int i;   /** 方法注释,下面这个方法的主要功能是计数 */   public void count( ) {} } 2017/3/17

在命令行输入:javadoc DocTest.java,生成了介绍类DocTest的index.html文件 文档注释的生成 在命令行输入:javadoc DocTest.java,生成了介绍类DocTest的index.html文件 2017/3/17

Eclipse环境中使用Javadoc 项目生成Javadoc 2017/3/17