第二讲. Java基础.

Slides:



Advertisements
Similar presentations
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
Advertisements

1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第一單元 建立java 程式.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
第一章 C语言概述 计算机公共教学部.
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
算法设计与分析 Algorithm Design and Analysis
第五章 字符串.
程設一.
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
第 13 章 套件 (Packages).
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
JAVA程序设计 (03) JAVA Programming
再回首: Java关键字 数据类型:byte boolean char double float int long short ,
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
程設一.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
第二章 C# 基础知识.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
本單元介紹何謂變數,及說明變數的宣告方式。
第一章 電腦、程式與JAVA.
程式設計實作.
抽象类 File类 String类 StringBuffer类
CH09 套件 物件導向程式設計(II).
创建型设计模式.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
Java程序设计 第2章 基本数据类型及操作.
認識 Java.
Ch02-基礎語法.
第一單元 建立java 程式.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
《JAVA程序设计》 语音答疑 辅导老师:高旻.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第2章 Java语言基础.
迴圈(重複性結構) for while do while.
第二章 Java基础语法 北京传智播客教育
Summary
Presentation transcript:

第二讲. Java基础

内容 Java平台 Java程序结构 Java注释 Java语法 Java程序语言的数据类型 运算符 字符串 标准输入输出 控制结构 大数处理 数组 编码过程 2017/2/24

“WRITE ONCE, RUN ANYWHERE!” 1. Java 平台 debug “WRITE ONCE, RUN ANYWHERE!” pretty portable Program in Java Java Compiler Java Bytecode Java Virtual Machine Java Virtual Machine 2017/2/24

Java Virtual Machine (Java 虚拟机) App1 App2 App3 App4 App5 Java Virtual Machine (Java 虚拟机) Windows Linux OS X Solaris Linux Intel PowerPC SPARC 2017/2/24

虚拟机是 Java 程序运行的统一平台 Java Virtual machine abstracts away the details of the underlying platform and provides a uniform environment for executing Java “byte-code” The Java compiler (javac) compiles Java code into byte-code (编译程序编译 Java 源程序为字节码) Bytecode is an intermediate form which can run on the JVM JVM does the translation from byte-code to machine-code in a platform dependent way. 2017/2/24

Core Language (核心语言) Class Libraries (类库) 2017/2/24 Ints, array, objects, loops and conditionals Moderately sized language Can run on small devices Class Libraries (类库) This is where the power of Java really emerges String, ArrayList, HashMap, … Networking, Graphics, XML, Database connectivity, Web Services…. Re-use at it’s best (so far). 2017/2/24

2017/2/24

2. Java程序结构

一个Java程序的基本框架结构 2017/2/24 Java Application程序: 例: HelloWorld.java public class HelloWorld     {     public static void main (String[] args)      { System.out.println(“Hello! World!”); }     } Java程序由一个或多个独立的类组成,但其中必须有一个公有类(如:HelloWorld),而且源代码文件必须与这个公有类的名字相同(如:HelloWorld.java) Java的类可以由一个或多个方法组成,其中公有类中的main方法可用作程序运行的入口。 2017/2/24

Java 程序的编辑、编译和运行过程 Java程序编译通过,会自动生成一个包含了这个源程序字节码的同名.class文件。该文件可以通过Java虚拟机运行。 开始使用JDK: javac HelloWorld.java 编译器  编译出 HelloWorld.class java HelloWorld 解释器 运行主类 2017/2/24

Java Programs (Java 程序) You have to create a class! (创建一个类) You run the class (对类进行操作) for this to work, the class must have a method named main() that is declared as public static void main( Strings[] args) if you don't do this right, you see something like this when you try to run a class: Exception in thread "main" java.lang.NoSuchMethodError: main 2017/2/24

public static void main() public: This method can be accessed (called) from outside the class. static: This method does not require that an object of the class exists. static methods are sort-of like "global" methods, they are always available (but you have to use the class name to get at them). void: no return value. 2017/2/24

main(Strings[] arg) main() will be passed an array of Strings corresponding to any command line parameter values. If you ran a program (class) like this: java Foo hi there dave then Foo.main() would be passed an array (with length 3) of String objects. The values would be "hi", "there" and "dave". args[0] is the String "hi", … 2017/2/24

简单的 Java 程序 /* 评论/注释 */ 包含文件 import java.io.*; import java.util.*; /* 评论/注释 */ 包含文件 import java.io.*; import java.util.*; public class class_name { 主函数 public static void main( String[] args ) { 函数体开始 声明部分 执行部分 } 函数体结束 } 2017/2/24

撰写规范的程序代码 2017/2/24 // 程序说明 package 包的名称 import 类的名称 类修饰符 class 类的名称 构造方法 类成员:方法 (按照以下访问特性次序排列) public protected private protected private 类成员:域 (按照以下访问特性次序排列) 静态变量(即使用 static修饰符的。按照以下访问特性次序排列) 常量 (即使用static final修饰符的) 2017/2/24

Java 分隔符 Java分隔符组成: 圆点--“.”、分号--“;”、花括号--“{}”、空格--“ ” Java分隔符作用: Java允许用花括号“{}”将一组语句括起来,形成一个语句块(block) Java程序源代码中各组成部分之间可以插入任意数量的空格,包括换行。 2017/2/24

完整 Java 程序的基本元素 1. 评论/注释语句 (/* */, // etc.) 2. 包含文件 (import java.io.*, …) 3. 赋值语句 (int i, float sum=0) 4. 简单输入/输出语句 (in, out) 5. 算术运算和逻辑操作 (+,-,*,\,) 6. 序列结构 7. 选择结构 (switch ~ case ~break, if ~ else) 8. 循环结构 (do~while, while, for, ) 9. 类和程序调用 2017/2/24

3. Java注释

Java 注释 Java语言中定义了三种注释形式: // 单行注释----注释到行尾 /* 单行或多行注释 */ /** 可以用于文档化处理的单行或多行注释 */ JDK中提供了一个文档自动生成工具 javadoc,在自定义 类中 public 的成员前以/**…*/形式加入的注释内容均 可被自动提取到生成的说明文档中。 用法:somepath\javadoc source.java 2017/2/24

4. Java语法

java 语言的关键字 Java中一些赋以特定的含义、并用做专门用途的单词称为关键字(keyword) 所有Java关键字都是小写的,TURE、FALSE、NULL等都不是Java关键字 ; goto和const 虽然从未使用,但也被作为Java关键字保留; true, false, null虽被用做专门用途,但不是Java关键字; 2017/2/24

Class Type: package, class, abstract, interface, implements, native, this, super, extends, new, import, instanceof, public, private, protected, Data Type: char, double, enum, float, int, long, short, boolean, void, byte, Control Type: break, case, continue, default, do, else, for, go to, if, return, switch, while, throw, throws, try, catch, synchronized, final, finally, transient, strictfp Storage Type: register, static Other Type: const, volatile, 2017/2/24

5. Java程序语言的数据类型

Java数据类型划分 2017/2/24 整数类型(byte, short, int, long) 数值型 浮点类型(float, double) 基本数据类型 字符型(char) 布尔型(boolean) 数据类型 类(class) 引用数据类型 接口(interface) 数组 2017/2/24

(1)基本数据类型 Java中定义了四类/八种基本数据类型 逻辑型---- boolean 字符型---- char 整数型---- byte, short, int, long 浮点数型---- float, double 2017/2/24

2017/2/24 数据类型 关键字 占用位数 缺省值 取值范围 布尔型 boolean 8 false True,false 字节型 byte -128 ~127 字符型 char 16 ‘\u0000’ ‘\u0000’~ ‘\uFFFF’ 短整型 short -32768~32767 整型 int 32 见教材 长整型 long 64 浮点型 float 0.0F 双精度型 double 0.0D 2017/2/24

逻辑型 boolean类型适于逻辑运算,一般用于程序流程控制 boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。 用法举例: boolean b = false; if(b==true) { //do something } 2017/2/24

字符型 char型数据用来表示通常意义上“字符” 字符常量是用单引号括起来的单个字符 char c = 'A'; Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示 char c1 = '\u0061'; Java语言中还允许使用转义字符'\'来将其后的字符转变为其它的含义 char c2 = '\n'; //代表换行符 2017/2/24

6. Java变量与标识符

变量 程序执行中数值可变的数据称为变量。变量包括变量名和变量值。 变量名  用标识符命名,对应一定数量的内存存贮单元,其单元数视变量类型而定。 标识符  符合一定命名规则的字符串序列。 2017/2/24

变量声明与赋值 2017/2/24

标识符(1) Java语言中,为各种变量、方法和类等起的名字称为标识符 Java标识符的命名规则: Java标识符大小写敏感,长度无限制 应以字母、下划线、美元符开头 后跟字母、下划线、美元符或数字 Java标识符大小写敏感,长度无限制 2017/2/24

Java标识符举例 2017/2/24 合法的标识符 不合法的标识符 HelloWorld class DataClass _983 98.3 $bS5_c7 Hell World 2017/2/24

7. 运算符

----------------------- 算术运算 Operator ---------------- + - * / % ---------- ++ -- Definition ---------------- Addition Subtraction Multiplication Division (quotient) Division (remainder) ----------------------- Increment Decrement Example ---------------------- 3 + 5 2 - 4 Num * 5 Sum / Count Count % 4 ----------------------- Count ++ Count -- 2017/2/24

Greater than or equal to 关系运算 Operator ---------------- < <= > >= == != Definition ---------------- Less than Less than or equal to Greater than Greater than or equal to Equal to Not equal to Example ---------------------- Num1 < 5 Num1 <= 5 Num2 > 3 Num2 >= 3 Num1 == Num2 Num1 != Num2 2017/2/24

对象相等性 2017/2/24 /: c03:EqualsMethod.java public class EqualsMethod { public static void main(String[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1.equals(n2)); } } ///:~ //: c03:Equivalence.java public class Equivalence { public static void main(String[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1 == n2); System.out.println(n1 != n2); } } ///:~ //: c03:EqualsMethod2.java class Value { int i; } public class EqualsMethod2 { public static void main(String[] args) { Value v1 = new Value(); Value v2 = new Value(); v1.i = v2.i = 100; System.out.println(v1.equals(v2)); } ///:~ 2017/2/24

逻辑运算 2017/2/24 Operator ---------------- ! && || Definition NOT AND OR Example ---------------------- ! ( Num1 < Num2 ) (Num1 < 5 ) && (Num2 > 10 ) (Num1 < 5 ) || (Num2 > 10 ) 注意:只能将AND, OR,NOT施加于boolean型上,否则出错 2017/2/24

Example ---------------------- 位运算符 Operator ---------------- & | ^ ~ Definition ---------------- AND OR EXCLUSIVE OR ONE’S COMPLEENT Example ---------------------- 2&3=2 2|3=3 2^3=1 ~2=-3 2017/2/24

Example ---------------------- 位移运算符 Operator ---------------- << >> >>> Definition ---------------- 左移 右移 无正负右移 Example ---------------------- i=2;i<<2=8 i=2;i>>2=0 i=-1;i>>>2=1073741823 2017/2/24

赋值运算 2017/2/24 Operator ---------------- == += -= *= /= %= Example Num = 5 Num += 5 Num -= 5 Num *= 5 Num /= 5 Num %= 5 Meaning ---------------------- Store 5 in Num Num = Num + 5 Num = Num - 5 Num = Num * 5 Num = Num / 5 Num = Num % 5 2017/2/24

boolean-exp?value0:value 评估boolean-exp的值,决定使用value0还是value if-else 三元运算符 Operator ---------------- boolean-exp?value0:value Definition ---------------- 评估boolean-exp的值,决定使用value0还是value Example ---------------------- i<10?i*100:i*10 2017/2/24

String上的+ Java不允许程序员实现自有的重载运算符 +字符串连接 如果表达式中有String,其他类型转变为String 2017/2/24

转型运算符 Java允许将任意基本型别转型为另一个任意基本型别,boolean例外 class型别不允许转型,同一族系,子类对象可以转型为父类对象 public class Concatenation { public static void main(String[] args) { String mango = "mango"; String s = "abc" + mango + "def" + 47; System.out.println(s); } } /* Output: abcmangodef47 *///:~ 2017/2/24

8. 字符串: String

String Class (字符串) public String( ); 2017/2/24 创建字符串常量String对象: String类的构造函数 public String( ); public String(String value); public String(StringBuffer buffer); public String(char value[] ); 创建Sring类的对象分两步:声明和创建 String s; s=new String(“agah”); or s=“java” 2017/2/24

2017/2/24 import static net.mindview.util.Print.*; public class Immutable { public static String upcase(String s) { return s.toUpperCase(); } public static void main(String[] args) { String q = "howdy"; print(q); // howdy String qq = upcase(q); print(qq); // HOWDY } /* Output: howdy HOWDY *///:~ Java中字符串是不能被修改的 2017/2/24

String Class (字符串) 2017/2/24 字符串常量的操作: public boolean startsWith(String prefix); public boolean endsWith(String suffix); public int length( ) public int indexOf(int ch) public int indexOf(int ch,int fromIndex); public int indexOf(String str); public int indexOf(String str,int fromIndex); public int lastIndexOf(String str); public int lastIndexOf(String str,int fromIndex); public int compareTo(String anotherString); public boolean equal(Object anObject); public boolean equalsIgnoreCase(String anotherString); public String concat(String str); …. 2017/2/24

9. Java标准输入输出简介

Scanner (标准输入) Scanner – gets values from the standard input and assigns them to Object import java.util.Scanner Scanner stdin = new Scanner( System.in ); stdin.next(), nextFloat(), nextInt(), nextLine()…. hasNext(); hasNextFloat(), …… 2017/2/24

2017/2/24 import java.util.*; public class BetterRead { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); System.out.println("What is your name?"); String name = stdin.nextLine(); System.out.println(name); System.out.println( "How old are you? What is your favorite double?"); System.out.println("(input: <age> <double>)"); int age = stdin.nextInt(); double favorite = stdin.nextDouble(); System.out.println(age); System.out.println(favorite); System.out.format("Hi %s.\n", name); System.out.format("In 5 years you will be %d.\n", age + 5); System.out.format("My favorite double is %f.", favorite / 2); } 2017/2/24

System.out.print (标准输出) System.out.print – prints to the screen. Can also accept variables and print their values. %c – unicode character %d – Integral (as decimal) %b – Boolean vale %s – String %f – a float %e – a float (in scientific notation) %x – Integral(as hex) %% - the ‘%’ character (in printf) 2017/2/24

//: strings/SimpleFormat.java public class SimpleFormat { public static void main(String[] args) { int x = 5; double y = 5.332542; // The old way: System.out.println("Row 1: [" + x + " " + y + "]"); // The new way: System.out.format("Row 1: [%d %f]\n", x, y); // or System.out.printf("Row 1: [%d %f]\n", x, y); } 2017/2/24

2017/2/24 空格和左对齐,缺省右对齐,加-后左对齐 //: strings/Receipt.java import java.util.*; public class Receipt { private double total = 0; private Formatter f = new Formatter(System.out); public void printTitle() { f.format("%-15s %5s %10s\n", "Item", "Qty", "Price"); f.format("%-15s %5s %10s\n", "----", "---", "-----"); } public void print(String name, int qty, double price) { f.format("%-15.15s %5d %10.2f\n", name, qty, price); total += price; } public void printTotal() { f.format("%-15s %5s %10.2f\n", "Tax", "", total*0.06); f.format("%-15s %5s %10s\n", "", "", "-----"); f.format("%-15s %5s %10.2f\n", "Total", "", total * 1.06); } public static void main(String[] args) { Receipt receipt = new Receipt(); receipt.printTitle(); receipt.print("Jack's Magic Beans", 4, 4.25); receipt.print("Princess Peas", 3, 5.1); receipt.print("Three Bears Porridge", 1, 14.29); receipt.printTotal(); } } 空格和左对齐,缺省右对齐,加-后左对齐 2017/2/24

10. 流程控制

Statements (语句) 2017/2/24

if-else statement (选择结构) 2017/2/24

switch statement (选择结构) 2017/2/24

while loop (循环结构) 2017/2/24

for loop (循环结构) 2017/2/24

do-while loop (循环结构) 2017/2/24

return 指明某个函数即将传回之值,并令该指立即被传回 2017/2/24

11. Java语言大数处理

BigInteger 和 BigDecimal 如果开发人员仅仅需要处理64位以下的二进制数,他们只需要使用long或者int类型,如果开发者需要处理超过64位的二进制数,那么他们将需要使用java.math.BigInteger类 BigDecimal 由一个任意精度的整数值和一个非负的整数标度组成,整数标度代表小数点右边的十进制数字的个数(用 BigDecimal 表示的数值大小是 intVal/10**scale) Import java.math.BigInteger, BigDecimal Method: - ValueOf() - add() - subtract() - multiple() - divide() - mode() - compareTo() 2017/2/24

12. Java数组

数组 数组(Array)是在基本数据类型的基础上发展而来的一种较高级的数据结构类型,它是相同类型变量的集合,可以使用共同的名字对它进行引用。本节将具体对Java中的数组问题进行介绍。 一维数组 int month_days[ ]; int[ ] month_days = new int[30] 第一步,首先必须定义变量所需的类型 第二步,必须使用运算符new来为数组所要存储的数据分配内存,并将它们分配给数组变量 2017/2/24

多维数组 2017/2/24 在Java中,多维数组实际上就是“数组的数组”。在定义多维数组变量时,要将每个维数放在它们各自的方括号中。 例如,下面的语句声明了一个名为twoD的二维数组变量。 int twoD[][] = new int[4][5]; 该语句分配了一个4行5列的数组并把它分配给数组twoD。实际上这个矩阵表示了int类型数组的实现过程。 2017/2/24

多维数组 当给多维数组分配内存时,只需指定第一个(即最左边)维数的内存即可。你可以单独地对余下的维数进行内存分配。例如,下面的程序在数组twoD被定义时给它的第一个维数分配内存,对第二维则是手工分配内存。 int twoD[][] = new int[4][]; twoD[0] = new int[5]; twoD[1] = new int[5]; twoD[2] = new int[5]; twoD[3] = new int[5]; 2017/2/24

11. Java程序开发

(1)算法能力是软件核心能力 程序 (Program) = 算法 (Algorithm) + 数据结构 (Data Structure) 软件的价值 = 智力 IQ + 智力资产IP (Intellectual Properties) 个人用算法创造的价值可能超过成千上万人所创造价值总和 更高层次、更复杂问题的问题求解需要更高层次的算法形式,如谓词逻辑、量子模型或其它设计和表示模型,算法表示是无止境 2017/2/24

(2)设计模式概论

学习的模式 人类活动的许多领域的问题求解过程都与模式概念密切相关 想一下如何下棋的…??? 学习开发软件就像学下棋一样 事实上,教育的目的就是将学习的模式从一代传向下一代 想一下如何下棋的…??? 学习开发软件就像学下棋一样 虽然失败的后果经常并没有那么戏剧性! 2017/2/24

要成为一个象棋高手 首先必须学习规则 然后学习原理 但是,要想成为一个高手,你必须从其它大师的棋局中学习 而这种模式是成百上千的 棋子的名字,合法的移动等等 然后学习原理 棋子的大小,吃子的基本技术等等 但是,要想成为一个高手,你必须从其它大师的棋局中学习 这些棋局中包含了许多模式,你必须能够理解,记忆并且一次又一次的使用它 而这种模式是成百上千的 2017/2/24

成为一个编程高手 首先学规则 然后学习原理 但是,要想真正掌握软件设计,你必须学习其它高手的设计 而这样的模式也是成百上千的 算法,数据结构和程序语言 然后学习原理 结构化编程,模块化编程,面向对象编码等等. 但是,要想真正掌握软件设计,你必须学习其它高手的设计 这些设计中包含了那些需要理解,记忆和重复使用的模式 而这样的模式也是成百上千的 2017/2/24

设计模式 设计模式代表了对问题的解决方案,这些问题是在开发特定的软件时碰到的 “模式==某一背景下的问题/答案对” 模式表达了软件设计中关键要素之间的静态和动态结构,以及它们之间的协作关系 它们尤其对解决非功能性的问题有用 模式使我们能够重用成功的软件体系结构和设计 2017/2/24

(3) Java 语言的编程实践 Java 语言是程序设计入门的主导语言 对 Java 语言基本成分和基本功能的了解 具备基本的数据表示方法和计算机的基本操作,就能完成某些简单计算方法和算法的实现 在编写大量程序之后,才能感到运用自如 2017/2/24

(4)简单 Java 程序的开发过程 Program Designing & Coding for Solving the Specific Problem with JAVA programming languages ( 使用 JAVA 编程语言来进行程序设计, 综合运用 JAVA 的基本结构来编写解 决一定难度问题的程序 ) 2017/2/24

编写 Java 程序 在 Java 程序中,类是 Java 程序的最小组成单位,一个程序由一个类 或 多个类组成,多个类可以包含在一个或多个 Java 文件中 在 Java 程序中,每一个 Java 文件只能包含一个公有类,在应用程序中,Java程序 必须包含一个公有类,公有类包含一个公有函数 main(),称为主函数,公有类的文件名必须与类名一致 2017/2/24

Java 程序文件的结构 版本和版本的声明 版权信息 文件名称 标识符 程序说明摘要 程序的版本号 程序的作者 程序的修改者 完成和修改日期 版本的历史信息 2017/2/24

Java 程序文件的结构 Import 文件的结构 调用类库 文件目录结构 Source File Directory Target File Directory 2017/2/24

Java 程序文件的版示 版示虽然不会影响程序的功能,但会影响到程序的可读性。追求清晰、美观和简明的风格 行 空格 对齐 变量命名规则 类的版示 2017/2/24

Java输入输出 Java依据标准I/O模式,提供了System.in,System.out,System.err import java.io.*; 输出:system.out.println(“”) 输入: 2017/2/24

import java.io.*; class Input {static InputStreamReader in;  static BufferedReader reader;  static    {in=new InputStreamReader(System.in);     reader=new BufferedReader(in);    }    static String readString()   {String s="";    try      { s=reader.readLine();            }         catch(IOException e)      {System.out.println(e);       System.exit(0);       }    return s;   }    static char readChar()    {char ch='a';     try        {         String s=readString();         ch=s.charAt(0);               }       catch(Exception e)         {System.out.println("输入的数据类型不对,程序将退出");          System.exit(0);         }     return ch;      }        static int readInt()   {String s=readString();    int i=0;    try{      i=Integer.parseInt(s);      }    catch(Exception e)     {System.out.println("输入的数据类型不对,程序将退出");      System.exit(0);     }     return i;   }  static double readDouble()   {String s=readString();    double d=0.0;    try    {d=Double.parseDouble(s);    }    catch(Exception e)     {System.out.println("输入的数据类型不对,程序将退出");      System.exit(0);     }     return d;   }  static float readFloat()   {    String s=readString();    float f=0.0f;    try    {     f=Float.parseFloat(s);     }     catch(Exception e)     { System.out.println("输入的数据类型不对,程序将退出");       System.exit(0);     }     return f;   } } 2017/2/24

(5)Java环境设置

Java运行环境的安装与配置 编写并运行Java程序,需要Java开发工具包(JDK,Java Development Kit)的支持。因此在编写自己的第一个Java程序前,读者需要先在自己的机器上安装JDK。 到目前为止,JDK的发展经历了JDK 1.0、JDK 1.1、JDK 1.2、JDK 1.3、JDK 1.4 、JDK 1.5、1.6 等几个版本。 2017/2/24

Install Java 2 Platform on Your Machine (安装 Java 2 平台) Java Core Software (开发核心程序): Java Development Kit (JDK, such as JDK 1.6 or J2SE 6.0) Can be installed on different platforms (能被安装在不同平台): Unix/Linux Windows Mac OS 2017/2/24

Installing JDK 1.6 (安装 JDK 1.6) Make sure you have space! (300 MB) Download the appropriate file from www.sun.com Run the file (start the installation) 2017/2/24

Set Up PATH Environment Variable (设置执行路径和开发环境) Unix/Linux (C Shell) In ~/.cshrc, add script set path=(/usr/local/java/jdk1.6.0_06/bin $path) Windows XP Working Directory: c:\my_java_program In c:\my_java_program: (临时性的Java开发环境) SET PATH=c:\java\jdk1.6.0_06/bin;%PATH% 永久性的 Java 开发环境 Start – Control Panel – System – Advanced - Environment Variables – System Variables - Path Add: c:\java\jdk1.6.0_06/bin 2017/2/24

2017/2/24

CLASSPATH Environment Variable (CLASSPATH 环境变量) The Java compiler and VM use the CLASSPATH environment variable to decide where to look for class definitions (Java code). For now it's enough the Java will look in the "current working directory". If your CLASSPATH is already set to something, you may need to add "." to it. ("." is the current directory ). 环境变量 Path ---- 用于指定操作系统的可执行指令的路径 CLASSPATH ----用于指定Java的类文件存放路径。 SET CLASSPATH=.;%CLASSPATH% 2017/2/24

CLASSPATH的设置 2017/2/24

Test Java Development Environment (测试 Java 开发环境) Use Command: path Use Command: java -version Use Command: javac -version 2017/2/24

Java环境的有关工具 1、java:解释器 2、javac:编译器 3、appletviewer:小应用程序浏览器 4、javah:头文件生成器 5、javadoc:API文档生成器 6、javap:类文件反汇编器 7、jdb:Java语言调试器 8 、jar: 压缩工具 …. 这些文件包括在/java/bin/目录中,并可以在任何目录中运行,前提是设置了运行程序的相应系统路径。 2017/2/24

Java环境的有关工具 2017/2/24 Sun JDK 命令行形式 Javac.exe——Java编译程序,负责检查Java源程序是否有语法错误并生成相应的字节码文件(基本名与源文件中类名同名、但扩展名为.class)。 命令格式为: Javac 文件名 . java Java.exe——Java解释器程序,负责解释执行Java Application 字节码文件。 命令格式为: Java 文件名 Javadoc.exe——提取注释的工具,可查找置入在程序里的特殊注释标记,还将毗邻注释的类名或方法名提取出来,以便用最轻的工作量,生成十分专业的HTML格式的Java程序文档。 AppletViewer.exe——模拟WWW浏览器运行Applet的应用程序,使用它调试程序,不需要反复调用庞大的浏览器。 命令格式为: AppletViewer 文件名.html 2017/2/24

Installing Java Library Source Code and Documents (安装库函数和文档) Enter the JDK directory (进入目录): c:\program file\java\jdk1.6.0_06 Construct a sub-directory (建立一个子目录) src mkdir src Change directory to src cd src Running the command jar xvf ..\src.zip 2017/2/24

Java Class Libraries (Java 内库) 2017/2/24

http://www.eclipse.org Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 2017/2/24

2017/2/24

2017/2/24

2017/2/24

2017/2/24

小结 Java平台 Java程序结构 Java注释 Java语法 Java程序语言的数据类型 运算符 字符串 标准输入输出 控制结构 大数处理 数组 编码过程 2017/2/24