Introduction to Java Programming

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++ 之关系.
第 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 多名技术支持人员和.
1 Java 程序设计 Java 程序设计 Java Programming Fall, 2013.
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 入门 1.1 Java 的起源与发展 1.2 Java 程序开发与运行环境 1.3 Java 程序设计步骤 1.4 Java 程序的构成 一个小游戏.
第1章 Java语言概述.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
JAVA程序设计.
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
面向对象程序设计(Java) 徐志红
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
Oracle数据库 Oracle 子程序.
程設一.
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
Android快速开发入门 巫文杰、Android工程师 讲师的CSDN博客地址
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
安裝JDK 安裝Eclipse Eclipse 中文化
Java簡介.
JDK的安裝.
Introduction on Smartphone Platform
安裝與設置 Android 發展環境 靜宜大學資工系 蔡奇偉副教授 ©.
簡易 Visual Studio 2010 C++ 使用手冊
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
第二讲 搭建Java Web开发环境 主讲人:孙娜
第一章 電腦、程式與JAVA.
Android 课程讲义 智能手机开发
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第一章 認識Java Java 程式設計入門(I).
Native Development Kit
SVN服务器的搭建(Windows) 柳峰
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
簡易 Visual Studio 2005 C++ 使用手冊
二:JAVA开发环境的安装和配置.
認識 Java.
程式設計 老師:戴自強 助教:楊斯竣.
第 1 章 Java 簡介.
01.Java语言概述 讲师:复凡.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
SOA – Experiment 2: Query Classification Web Service
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
1.1 Java簡述 1.2 Java下載與安裝 1.3 Java程式的開發過程 1.4 存檔說明 1.5 註解
面向对象 程序设计语言基础 马骏
《JAVA程序设计》 语音答疑 辅导老师:高旻.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
開發Java程式語言的工具 JDK.
程式設計 老師:蘇炳煌 助教:楊斯竣.
Aspect Oriented Programming
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
Presentation transcript:

Introduction to Java Programming CS Lab of ZHKU

全栈工程师 (Full Stack Developer) 现代Web项目的复杂性? 最需要什么人才? 全栈工程师 (Full Stack Developer) 由于经常在各种技术穿梭,他会经常忘记代码的语法和一些API,所以他经常需要去查API甚至查语法,他觉得没有Google几乎没法工作。这在某些人的眼里,是技术不够的表现。他记的只是一个Key,一个如何找寻答案的索引,而不是全部,人脑不是电脑,他不可能能记下所有的东西。  现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。 Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。 所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。[1] 

本课程的目的 不是Java语法课 培养编程思想 善于融合所学知识 大胆探索精神

Outline Course Introduction Java Introduction 面向对象的概念 Your First Cup of Java Your Turn Java吉祥物Duke

Course Introduction 课时安排 上课时间 实验及作业提交 38+18学时 第1周~第14周 广东数字大学城 gd.nclass.org(作业) 仲恺课程中心(互动和课件) Java商标

Course Introduction 课程适合对象 课程目的 课程进度表 对于 Java 程序设计有兴趣、有初步程序设计经验的学生 将着重于培养系统设计实战经验。在大量的范例中,让学生清楚了解java企业开发应用技术。期望学生能于课程结束后,具有初步的运用java web开发系统的能力。 课程进度表 依照大家接受情况做动态调整

Course Introduction 课程覆盖Java开发的相关技术 最终完成一个基于Java EE架构的**管理系统 程序开发、调试工具(Eclipse) 框架技术(MVC,Spring,JPA) 领域知识分析(用例分析,设计模式、活动图) 前沿技术(Maven/GitHub、集群、Hadoop…) 最终完成一个基于Java EE架构的**管理系统

Course Introduction 参考书目 The Java Tutorials 在线版 Sun官方网站 http://java.sun.com/docs/books/tutorial Java 2 程序设计实用教程(第二版)叶核亚 Thinking in Java, 3rd Edition 电子版 http://www.mindview.net/Books/TIJ

Course Introduction 平时成绩评定(50%) 实验评分标准(50%) Questions? 上课情况(缺旷课、课堂实例练习) Question & Teamwork 实验评分标准(50%) 完成程序基本项目且正确执行:80 分 完成进阶项目或加强功能:每项酌予加分 严禁抄袭(该次实验计零分) Questions?

The Origin of Java Internet约1995年兴起. 不同的计算机、硬件,跑不同的操作系统。 不同的计算机却都可以看网页。 因此需要一个新的程序语言,可以在不同的平台上执行。 Java是Sun Microsystem开发并且持续维护到2009年,现在是Oracle接手。 第一版Java公开的日期 - 5/23/1995. Java每年都持续更新,但有一次重大改版. Java 1.0 and 1.1这两个版本称Java 1。 Java 1.2, 1.3, 1.4都称Java 2。 J2SE1.5更名为J2SE5.0(加入Annotation) 发布Java SE 6。取消各版本的2。 2011年7月28日,Oracle发布Java7的正式版 2014年 Java8发布(Lambda表达式,其目的是使Java更易于为多核处理器编写代码;其次,新加入的Nashorn引擎也使得Java程序可以和JavaScript代码互操作)

Java Platforms Java Standard Edition (Java SE) 标准版 Core Java Technology Provide the compiling and execution environment to build the standard Java application. Java Enterprise Edition (Java EE) 企业版1.6 Provide a component-based approach to the design, development, assembly, and deployment of enterprise applications (e.g., JPA,JSP, Servlet, Java Beans). Java Micro Edition (Java ME) 迷你版 The core libraries are modified to meet the restricted requirements of embedded device.

Related Terms about Java Java application 单独跑在个人计算机上的Java程序。 例如Eclipse、Borland Jbuilder本身就是用Java写的。 Java Applet 主要嵌在Web page网页中的Java程序. 基于安全性考虑,Java Applet能执行的功能会比较受限制。 Javascript(jQuery,Dojo,…) 在浏览器中执行的类似Java语法的Script程序。 Java Server Pages (JSP) 在服务器Server端所执行的Java语法的Script程序。

Important Features of Java (1) Portability (可移植性) Java程序都会compile(编译)成byte code (字节码),而不是 machine-dependent code (要在特定机器才能跑的程序) Java byte code执行时通过各机器上的 Java Virtual Machine (JVM) 来解析执行. Java Applications JVM JVM Windows Linux Various Hardware Various Hardware

Important Features of Java (2) Garbage Collection (自动回收垃圾内存) You don’t need to address the problems of memory allocation and de-allocation. (每个对象生命周期过了,自然成为可被回收的对象) The garbage collector in JVM is responsible for managing the memory usage. Well-organized language structure The core Java library is implemented based on the object-oriented design. (面向对象的设计核心) Some Java-specific features (e.g., interface) increase the reusability of your program. (对象可以多重继承接口)

Important Features of Java (3) Advanced built-in data structures and classes. Vector, Hashtable, …, etc. (方便储存搜索大量数据) Union and find for set operations. (方便集合数据运算) Object serialization. (方便对象传输) Support of multi-thread programming and exception handling (多任务执行与例外处理) Java provides synchronized block for managing multi-thread execution The programmers are forced to handle exception (e.g., I/O error) in the Java language

Important Features of Java (4) 动态加载(Dynamic Loading) 其它语言 Java 语言 程序开始执行后所有对象就一起加载。 一旦开始执行,就无法做出任何变更。 当需要某个对象时,才将该对象加载。 这种特质,让动态抽换对象变得可能。

Important Features of Java (5) 何谓多任务 (Multi-tasking) 例如,编写网络程序,仿真程序。 Java 利用 “线程” (Thread) 来实现多任务 可将一个程序分成数份, 让各部份能同时被执行。

Important Features of Java (6) 安全性 Bytecode 的验证 Java编译器是借助生成与计算机架构无关的 Bytecode 指令,以达到上述功能。 它们能轻易地在任何机器上解译,并且动态地转换成合适的机器码。 名称防护 只要有一个名称在加载时发生和别处一样的冲突,Class Loader 将会加载本地端的版本,而拒绝加载远程的版本 文件存取的限制 浏览器不会让Applet读取不被用户允许的文件系统 。 不使用指针 Java与C/C++之间最大的不同点之一在于Java不用指针 (Pointer),能排除发生内存被覆盖 (Overwriting Memory)和毁损数据 (Corrupting Data)之可能性

Important Features of Java (7) 安全性 在 Java 中执行一个程序需经历层层把关,而且活动范围还会被局限在特定空间。 很好!一切正常!但只准你在特定范围活动。 别乱跑,我带你到正确的内存位置。 有被篡改过吗? Java 位码 (Byte Code)

A System Implemented in Java

Programming Tools You can write a Java SE application with a text editor and the Java Software Development Kit (JDK) JDK provides the compiling and executing environment. Latest version: Java SE 6 in http://java.sun.com/ 提供Java开发的环境 Java Runtime Environment (JRE) provides only the executing environment 只提供Java执行的环境

Java Standard Edition 6 Platform

面向对象概念 面向过程模型(Procedural Paradigm) 面向对象模型(Object Orientated Paradigm) 一般计算机仅能了解一些很简单的命令,为了让计算机能够了解整个复杂的任务,则会将大的任务分割为更小的任务,一直至能够让机器所了解和处理的部份,这就是面向过程的程序设计方法。 面向对象模型(Object Orientated Paradigm) 面向对象方法是分析问题和解决问题的方法,其依照人类真实的方法和思维来分析和解决问题 。这样使得对象与真实世界有一个很直接的关系,不需要做任何的转换,更易于对现实系统建模。

面向对象概念 What is Object? 抽象化(Abstraction) 铅笔与钢笔 类似的对象、相同的行为(Methods) 不同的属性(钢笔:墨水、铅笔:铅原料) 抽象化(Abstraction) 组装脚踏车时不必被零件的复杂度所困扰 可以忽略齿轮、变量器或刹车系统的运作细节 只需将各个对象自由运用

面向对象的概念 Java 是一种纯面向对象的程序语言 What is Object-Oriented? 制作脚踏车 制作脚踏车 非面向对象的方法 制作脚踏车 取出橡胶,利用圆形模板制作轮胎 将钢铁融化后,制作齿距不等的齿轮 用橡胶制做手握把,连接上刹车线制作刹车器 切割泡棉,加上橡皮制作椅垫 … 完成一台脚踏车 面向对象的方法 制作脚踏车 轮胎 数量:2 个 处理:切割出具有抓地力的胎纹 齿轮 数量:1 大, 2 小 处理:调整成具有 12 段变速的齿轮系统 刹车器 数量:1 个 处理:调整成具有碟刹功用 轮胎处理好、齿轮处理好、刹车器处理好, 将各个对象组装好,即可完成一台脚踏车。

(这些数量及行为叫做 “属性”与“方法”) 来描述整件事情是如何发生的。 (这部份的描述称为“主程序”) 面向对象概念 什么是面向对象? 先定义好参与这件事的物品有哪些 (这些物品叫做 “对象”) 制作脚踏车 轮胎 数量:2 个 处理:切割出具有抓地力的胎纹 齿轮 数量:1 大, 2 小 处理:调整成具有 12 段变量齿轮系统 刹车器 数量:1 个 处理:调整成具有碟刹功用 轮胎处理好、齿轮处理好、刹车器处理好, 将各个对象组装好,即可完成一台脚踏车。 再定义这些物品所需的数量及行为 (这些数量及行为叫做 “属性”与“方法”) 接下来就可用物品间的互动行为 来描述整件事情是如何发生的。 (这部份的描述称为“主程序”)

面向对象概念 Java 使用 “类” (Class) 来刻画对象的行为和属性 主程序对象 适合用于大型软件开发与分工 可撰写出较易让人懂的程序与文件 轮胎对象 主程序对象 class 轮胎 { 数量 = 1 个 处理法 { … } } class 脚踏车 { 轮胎处理好 齿轮处理好 刹车器处理好 在主机身上锁上轮胎、 齿轮和刹车器即可 } 齿轮对象 class 齿轮 { 数量 = 1大, 2小 处理法 { … } } 刹车器对象 class 刹车器 { 数量 = 1 组 处理法 { … } }

面向对象概念 例子:脚踏车对象

面向对象概念

How to Learn A Programming Language as Quickly as Possible 学习如何 声明变量(variables)与数组(arrays) 学习如何 写条件判断(if-then-else) 学习如何 写循环(loops) 学习有多少内建的方法(existing functions)可以派上用场 学习如何 找到写错的地方(debug) 学习如何 有效地提问!(First step of troubleshooting)

Your First Cup of Java A Checklist Steps The Java SDK, Standard Edition, 下载 http://java.sun.com/javase/downloads/index.jsp 可以视开发团队需要下载不同版本JDK 本课程以使用Java SE 6 为例 A text editor: BlueJ,UltraEdit, Vim,notepad,… Steps Create a source file (源文件) Compile (编译) the source file into a bytecode file Run (执行) the program contained in the bytecode file

JVM interprets the byte code into machine-dependent code 开发,编译,执行Java示意图 程序代码 Java Applications 文件名.java Compiler Java byte code 文件名.class JVM interprets the byte code into machine-dependent code JVM

Create a Source File 用一般文字编辑器 程序进入点 存档成 HelloWorldApp.java 注释 主类 /** * The HelloWorldApp Class implements an application that * displays “Hello World!” to the standard output. */ public class HelloWorldApp { public static void main ( String[] args ) { //Display “Hello World!” System.out.println("Hello World!"); } 注释 主类 程序进入点

Compile the source file into a bytecode file 开始菜单 执行,打入 “cmd” 进入 Command Prompt 模式 选择进入程序所在的数据夹

Compile the source file into a bytecode file 编译程序 javac HelloWorldApp.java 会产生一个叫做 HelloWorldApp.class 的 bytecode file

Run the Program 在相同数据夹下,输入下面指令 java HelloWorldApp

Error Explanations 指令找不到或是 Class 找不到 右键点【我的电脑】→【属性】 → 【高级】 → 【环境变量】 path 环境变量: C:\Program Files (x86)\Java\jdk1.6.0_02\bin (视正式安装目录而定 如 D:\j2sdk1.4.2_08\bin) classpath 环境变量: .;D:\j2sdk1.4.2_08\jre\lib\ext\abc.jar (外挂 Library) 只有打一点表示目前目录; 目录档案全名表示参考到的class放在哪里

A Closer Look at HelloWorldApp 程序注释 给程序设计师看的,compiler会跳过注释的部分,所以注释部分不会被执行。 Java 语言支持三种不同的程序注释方式 /* text */ 多行注释 /** documentation */ 可利用 javadoc 工具将 /** */ 之间的文字抽出,直接作成说明文件 // 文字 单行注释

A Closer Look at HelloWorldApp Defining a Class 蓝色粗体字部份即为主类 (Class)。 Java 程序至少要有一个类,才能顺利执行。 主类名称习惯上与文件名相同。 (若为 public ,则必须相同) /** * The HelloWorldApp class implements an application that * Displays “Hello World!” to the standard output */ public class HelloWorldApp { public static void main ( String[] args ) { System.out.println(“Hello World!”); // Print the string } 主类

A Closer Look at HelloWorldApp 程序进入点 蓝色粗体字部份即为进入点,为一个程序开始执行的地方。 Java 的进入点名称为 “main()” 函数 /** * The HelloWorldApp class implements an application that * displays “Hello World!” to the standard output */ public class HelloWorldApp { public static void main ( String[] args ) { System.out.println(“Hello World!”); // Print the string } 进入点

A Closer Look at HelloWorldApp public static void main (String[] args) { 程序代码写在此处 } main: 进入点的函数名称。一定要取名为 “main” (String[] args): 传递给 main 的参数。所有的宣告与名称一定要如此写。 void: main 的传回值。void 代表不传回任何值。 static: 宣告 main 是一个静态函数。可以让整个 HelloWorld class 使用,而非只有 HelloWorld 的对象可以呼叫。 public: 允许任何 class 呼叫这个 main method {}: 将您想执行的程序填在此处。注意!! Java 每行程序后方都要以分号 “;” 分开。

A Closer Look at HelloWorldApp 在屏幕上印字 System.out.println System 类别 out 变量 println 方法 System: java 提供的一个类,其中定义了所有与标准输出入的相关动作。 out: System 类别中的一个变量。其类型为 PrintStream 类别 println: PrintStream 类内的一个方法,由于 out 变量本身指向一个 PrintStream 对象,所以我们得以通过 out 调用 println 方法。 范例:System.out.println(“We are”+ “studying”+ “Java!!”);

程序编写习惯和规范 程序叙述 程序区块 程序代码的缩排 ; 程序叙述结束符号 以 {} 符号包围 习惯先括好后,再继续往下写 ; 程序叙述结束符号 程序区块 以 {} 符号包围 习惯先括好后,再继续往下写 程序代码的缩排 善用 Tab 键 方便找出错误

Your Turn 写一个 Java 程序在屏幕上显示右列图形: Practice Set up your programming environment. Write a program showing the following messages 1st line: Your Student Number, eg. JS2001 2nd line: Your Name, eg. 王大明 3rd line: “Hello everyone!” 写一个 Java 程序在屏幕上显示右列图形: 试着使用 System.out.print() 加上换行字符 ***** **