beidakejian

2,495 views

Published on

about java

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,495
On SlideShare
0
From Embeds
0
Number of Embeds
49
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

beidakejian

  1. 1. 第一讲 序论 1 、程序设计语言 2 、 Java 历史及发展 3 、 Java 语言特点 4 、 Java 开发环境 5 、 Java 类库 6 、 Java 程序
  2. 2. 软件的基本组成部分是完成其功能的程序。 程序设计语言(也被称为“编程语言”, Programming Language )是人们编制程序所使用的语言。 程序描述了计算机处理数据、解决问题的过程,这是程序的实质。但程序的描述形式却可以是多种多样的,可以用不同的方式表述——不同的程序设计语言。 1 、程序设计语言
  3. 3. 1 、程序设计语言 <ul><li>程序设计语言的种类: </li></ul><ul><ul><li>机器语言:机器指令,直接执行 </li></ul></ul><ul><ul><li>汇编语言:符号化,汇编器 ( Assembler ) </li></ul></ul><ul><ul><li>高级程序设计语言(编译型) </li></ul></ul><ul><ul><li>高级程序设计语言(解释型) </li></ul></ul>
  4. 4. <ul><li>高级语言中用于描述计算的结构采用类似于数学中代数运算公式的形式,这种结构被称为“表达式”。程序中基本的动作单位被称为“语句”,不同的语句实现不同的功能。用高级语言书写的程序不可能直接地在计算机上执行,要在计算机上执行高级语言书写的程序,有两种基本方法 : </li></ul><ul><ul><li>编译( Compilation )执行:这种方法是设法把高级语言程序(也称为“源程序”)转换成为机器语言的可以由计算机直接执行的程序,即转变为“可执行( Executable )程序” 。 </li></ul></ul><ul><ul><li>“ 解释”( Interpretation )执行:这种方法是即时把源程序转换为机器可执行的指令。有时为了提高效率,也可以先编译成一种中间代码。 </li></ul></ul>1 、程序设计语言 —— 高级程序设计语言
  5. 5. 对于“编译执行”方式,人们实现了高级语言“编译器”( Compiler )完成这种转换工作。编译器把高级语言程序看成是符合一定语法结构的符号串,对它进行加工变换。编译器对源程序的加工一般分为两个阶段:源程序首先被翻译成机器语言,这种翻译结果称为“目标码”( object code ),目标码构成的程序片段称为目标模块。第二步,这些目标模块被与其他一些基本模块(由编译软件提供)连接在一起,最终形成“可执行程序”( executable program ),这样的程序就可以在计算机上实际运行了。 第一个加工步骤称为“编译”( compiling ),第二个步骤称为“连接”( linking )。 1 、程序设计语言 —— 高级程序设计语言
  6. 6. 1 、程序设计语言 —— 高级程序设计语言 编 译 过 程
  7. 7. 对于“解释执行” 方式,人们实现了一种称为“解释器”( Interpreter )的软件来完成转换工作。解释器在工作方式上与编译器不同,它不对源程序进行翻译,而是直接对源程序的语句进行分析和解释,实现源程序所描述的功能。 1 、程序设计语言 —— 高级程序设计语言 解 释 过 程
  8. 8. 1 、程序设计语言 —— 高级程序设计语言 高级语言写出的程序是独立于任何具体的计算机的。但是“编译器”和“解释器”则是与机器相关的。同一种语言,对于不同的机器,需要不同的“编译器”和“解释器”。 人们已经开发出了许多不同的高级程序设计语言,不同的语言有各自不同的规范,因此需要专门的“编译器”和“解释器”。
  9. 9. <ul><li>FORTRAN(FORmular TRANslation) 语言, HPF : IBM , 1950 </li></ul><ul><li>Pascal 语言: N.Wirth , 1968 , (Delphi , Borland) </li></ul><ul><li>COBOL(COmmon Business Oriented Language) 语言: 美国国防部, 1960 </li></ul><ul><li>C 和 C++ 语言: Dennis Retchie, 1972; Bjarne Stroustrup,1983, Bell </li></ul><ul><li>Basic(Beginner's All-purpose Symbolic Instruction Code) 语言:美国国防部, 1964 </li></ul><ul><li>Ada 语言:军用程序设计语言 , 美国国防部 , 1983 </li></ul><ul><li>Java 语言: 1991 年, SUN MicroSystem 公司 </li></ul>1 、程序设计语言 —— 高级程序设计语言
  10. 10. 2 、 Java 历史及发展 <ul><li>Java 是一种解释型的、面向对象的编程语言。 </li></ul><ul><li>历史: 1991 年, SUN MicroSystem 公司的 Jame Gosling 、 Bill Joe 等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为 Oak 的软件。 </li></ul><ul><li>Oak —> Java :互联网给 Java 带来新的生机 </li></ul><ul><li>1995 年 Sun 向公众推出 Java 并引起业界的轰动 </li></ul><ul><li>发展:面向网络应用,类库不断丰富,性能不断提高,应用领域不断拓展。( 1995 年以来) </li></ul><ul><li>应用: Java 是当今最流行的软件开发语言之一, Sun 推出了 Java2 & J2EE 使 Java 具有更广泛的用途,适用于各种应用开发,尤其是网络应用,网络服务,嵌入式系统等。 </li></ul>
  11. 11. <ul><li>Java = “ C++ ” - “ 复杂性和奇异性 ” </li></ul><ul><li>+ “ 安全性和可移植性” </li></ul><ul><ul><li>Java 语言是一个完全面向对象的语言,并且对软件工程技术有很强的支持 </li></ul></ul><ul><ul><li>Java 语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。 </li></ul></ul><ul><ul><li>对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏; </li></ul></ul><ul><ul><li>类提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。 </li></ul></ul>3 、 Java 语言特点 —— (1) 面向对象
  12. 12. <ul><li>严格的语言定义:没有“依据机器的不同而不同” 或“由编译器决定”等字眼,最后的目标码都是一致的。 </li></ul><ul><li>Java 解释器生成与体系结构无关的字节码指令,只要安装了 Java 运行时系统, Java 程序就可在任意的处理器上运行。这些字节码指令对应于 Java 虚拟机中的表示, Java 解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。 </li></ul>3 、 Java 语言特点 —— (2) 平台无关性
  13. 13. 源 程 序 Java 编译器 SPARC pentium Powerpc 中间码 Powerpc pentium SPARC 二进制 源 程 序 SPARC Powerpc pentium Powerpc pentium SPARC 编译器 二进制 Java 解释器 编译型和解释型语言的工作模式 类、类库装载 (库)链接
  14. 14. 编译 , 没有绝对地址 调入包含、继承所用到的所有类 , 内存分配确定 , 变成真正可执行的机器码 不存在伪造的指针 不违反访问权限 不非法访问对象 不导致操作栈溢出 Java 的编译与执行 Java 源程序 (.java 文件 ) Java 编译器 Java Bytecode (.class 文件 ) 系统执行平台 Bytecode 解释器 Bytecode 载入器 字节码校验器
  15. 15. 不同的操作系统有不同的虚 拟机。 它类似一个小巧而高效的 CPU 。 Bytecode 代码是与平台无关的 是虚拟机的机器指令。 Java 字节代码运行的两种方式 : Interpreter( 解释方式 ) Just-in-time( 即时编译 ): 有代码 生成器将字节代码转换成本机 的机器代码,然后可以以较高速度执行 . Java 虚拟机 Java interpreter Just-in-time compiler Runtime System Operating System Hardware
  16. 16. <ul><li>Java 是在网络环境下使用的语言,一个安全的网络至少要防止以下几种破坏的可能性 : </li></ul><ul><ul><ul><li>毁灭系统资源 </li></ul></ul></ul><ul><ul><ul><li>消耗系统资源 </li></ul></ul></ul><ul><ul><ul><li>挖掘系统或个人机密 </li></ul></ul></ul><ul><ul><ul><li>骚扰正常工作的进行 </li></ul></ul></ul>3 、 Java 语言特点 —— (3) 安全问题
  17. 17. Java 的安全措施 Java 源程序 (.java 文件 ) Java 编译器 Java Bytecode (.class 文件 ) Bytecode 载入器 Bytecode 解释器 系统执行平台 语言定义 public protected private final 取消指针 自动回收 垃圾 Bytecode 检查 限定对象的 存取权限 系统堆栈溢出 参数类型一致 程序执行系统 WWW 浏览器 限制 Java 小应用程序 的不正当使用
  18. 18. <ul><li>单线程程序一个时刻只能做一件事情,多线程程序允许在同一时刻同时做多件事情。 </li></ul><ul><li>其它大多数高级语言,包括 C , C++ 等,都不支持多线程,只能编写顺序执行的程序(除非有操作系统 API 的支持)。 </li></ul><ul><li>Java 提供现成的类 Thread ,只要继承这个类就可以编写多线程的程序。 </li></ul><ul><li>多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。 </li></ul><ul><li>通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。 </li></ul>3 、 Java 语言特点 —— (4) 多线程
  19. 19. (5) 可移植性 (6) 分布性 (7) 高性能(相对于其他解释型语言) (8) 健壮性 3 、 Java 语言特点 —— 其他
  20. 20. <ul><ul><li>不再有全局变量 </li></ul></ul><ul><ul><li>不再有 #include 和 #define 等预处理功能 </li></ul></ul><ul><ul><li>不再有 structure 、 union 及 typedef 等 </li></ul></ul><ul><ul><li>不再有函数、不再有指针、不再有多重继承 </li></ul></ul><ul><ul><li>不再有 goto 语句 </li></ul></ul><ul><ul><li>不再有操作符重载 (Operatior Overloading) </li></ul></ul><ul><ul><li>取消自动类型转换,要求强制转换 </li></ul></ul><ul><ul><li>自动进行内存管理 </li></ul></ul>3 、 Java 语言特点 —— (9) 与 C 及 C++ 的区别
  21. 21. 4 、 Java 开发环境 <ul><li>JDK </li></ul><ul><ul><li>j2eesdk-1_4_01-windows.exe </li></ul></ul><ul><ul><li>j2sdk-1_4_2_04-nb-3_6-bin-windows.exe </li></ul></ul><ul><ul><li>j2sdk-1_4_2-doc.zip </li></ul></ul><ul><li>集成环境 </li></ul><ul><ul><li>Jbuilder (Borland) </li></ul></ul><ul><ul><li>Visual J++ (Microsoft) </li></ul></ul><ul><ul><li>JPad </li></ul></ul><ul><ul><li>TextPad </li></ul></ul><ul><ul><li>… </li></ul></ul>
  22. 22. 安装 JDK 直接运行“ j2eesdk-1_4_01-windows.exe” ,按照安装向导进行安装。 解开“ j2sdk-1_4_2-doc.zip” ,得到 JDK 的开发文档。 4 、 Java 开发环境
  23. 23. <ul><li>安装 JDK 后产生如下目录结构: </li></ul><ul><ul><li>in 目录: Java 开发工具,包括 Java 编译器、解释器等 </li></ul></ul><ul><ul><li>demo 目录:一些实例程序 </li></ul></ul><ul><ul><li>lib 目录: Java 开发类库 </li></ul></ul><ul><ul><li>jre 目录: Java 运行环境,包括 Java 虚拟机、运行类库等 </li></ul></ul><ul><ul><li>… </li></ul></ul>4 、 Java 开发环境
  24. 24. <ul><li>Java 开发工具包括: </li></ul><ul><ul><li>Javac : Java 编译器,用来将 java 程序编译成 </li></ul></ul><ul><ul><li>Bytecode 。 </li></ul></ul><ul><ul><li>Java : Java 解释器,执行已经转换成 Bytecode 的 </li></ul></ul><ul><ul><li>java 应用程序。 </li></ul></ul><ul><ul><li>Jdb : Java 调试器, 用来调试 java 程序。 </li></ul></ul><ul><ul><li>Javap :反编译,将类文件还原回方法和变量。 </li></ul></ul><ul><ul><li>Javadoc :文档生成器 , 创建 HTML 文件。 </li></ul></ul><ul><ul><li>Appletviwer : Applet 解释器 , 用来解释已经转换成 </li></ul></ul><ul><ul><li>Bytecode 的 java 小应用程序。 </li></ul></ul>4 、 Java 开发环境
  25. 25. <ul><li>设置环境变量: </li></ul><ul><ul><li>PATH = <INSTALL_DIR> in; </li></ul></ul><ul><ul><li>CLASSPATH = . ; <Other_Applications_Dir> ; </li></ul></ul><ul><li>Windows 98 : autoexec.bat </li></ul><ul><li>Windows NT/2000/XP : 控制面板  系统  高级  环境变量 </li></ul>4 、 Java 开发环境
  26. 26. C: Jdk bin lib javac java appletviewer 用户类文件所在目录 c:javaexamplesapplications 当前目录 jre demo 4 、 Java 开发环境
  27. 27. <ul><li>Java 程序由各种类( class )组成 </li></ul><ul><ul><li>你自己编写的类 </li></ul></ul><ul><ul><li>( Java class libraries——Java API ) </li></ul></ul><ul><ul><ul><li>JDK——Java Development Kit(1.1~1.4) </li></ul></ul></ul><ul><ul><ul><li>独立软件供应商、免费软件 / 共享软件 </li></ul></ul></ul><ul><li>几点提示 </li></ul><ul><ul><li>使用类库可以 提高软件重用 / 提高效率 / 提高移植性 </li></ul></ul><ul><ul><li>网络上有许多开放的 Java 源码资源 </li></ul></ul>5 、 Java 类库
  28. 28. Java Packages (1) <ul><li>Language java.lang Classes that contain the main core of the Java language. </li></ul><ul><li>Utilities java.util Support for utility data structures. </li></ul><ul><li>I/O java.io Support for various types of input/output. </li></ul><ul><li>Text java.text Localization support for handling text, dates, numbers, and messages. </li></ul><ul><li>Math java.math Classes for performing arbitrary- precision integer and floating-point arithmetic. </li></ul><ul><li>AWT java.awt User interface design and event- handling. </li></ul><ul><li>Swing javax.swing Classes for creating all-Java, lightweight components that behave similarly on all platforms. </li></ul>
  29. 29. Java Packages (2) <ul><li>Javax javax Extensions to the Java language. </li></ul><ul><li>Applet java.applet Classes for creating applets. </li></ul><ul><li>Beans java.beans Classes for developing JavaBeans. </li></ul><ul><li>Reflection java.lang.reflect Classes used to obtain runtime class information. </li></ul><ul><li>SQL java.sql Support for accessing and processing data in databases. </li></ul><ul><li>RMI java.rmi Support for distributed programming. </li></ul><ul><li>Networking java.net Classes that support development of networking applications. </li></ul><ul><li>Security java.security Support for cryptographic security </li></ul>
  30. 30. <ul><li>Java 程序分两种: </li></ul><ul><ul><li>Java 应用程序( Java Application ) </li></ul></ul><ul><ul><li>Java 小程序( Java Applet ) </li></ul></ul>6 、 Java 程序
  31. 31. <ul><li>Java 程序结构: </li></ul><ul><ul><li>package 语句: 零个或多个,必须放在文件开始 </li></ul></ul><ul><ul><li>import 语句: 零个或多个,必须放在所有类定义之前 </li></ul></ul><ul><ul><li>public ClassDefinition : 零个或一个 </li></ul></ul><ul><ul><li>ClassDefinition : 零个或多个 </li></ul></ul><ul><ul><li>InterfaceDefinition : 零个或多个 </li></ul></ul><ul><li>类个数: 至少一个类,最多只能有一个 public 类 </li></ul><ul><li>源文件命名: 若有 public 类,源文件必须按该类命名 </li></ul><ul><li>标识符: 区分大小写 </li></ul>6 、 Java 程序
  32. 32. <ul><li>类库支持:引用其他类。 </li></ul><ul><li>类定义:定义程序所需的类及接口,包括其内部的变量、方法等。 </li></ul><ul><li>main() 方法:应用程序的入口,与标准 C 中 main() 函数的地位是一样的。一个应用程序有且只有一个 main() 方法, main() 方法必须包含在一个类中,该类即为应用程序的外部标志。 </li></ul><ul><li>程序注释:与 C ++类似, /*…*/ </li></ul><ul><li>//… </li></ul>6 、 Java 程序 —— Java 应用程序( Java Application )
  33. 33. <ul><li>编辑存盘:文件名和公共类名 ( 用 public 声明 ) </li></ul><ul><li>要一致 HelloWorldApp.java </li></ul><ul><li>编译程序: javac HelloWorldApp.java </li></ul><ul><li>运行程序: java HelloWorldApp </li></ul><ul><li>运行结果: Hello World! </li></ul>public class HelloWorldApp { public static void main (String args[]) { System.out.println(“Hello World!”); } } 6 、 Java 程序 —— 第一个 Java 应用程序
  34. 34. <ul><li>声明一个类: public class HelloWorldApp{} ,类名第一个字母大写。 </li></ul><ul><li>一个类中可有很多方法, main 方法是运行程序的第一个方法,方法名的第一个字母小写。 </li></ul><ul><li>System.out.println 是向屏幕输出,相当于 C 中的 printf() 。 </li></ul>6 、 Java 程序 —— 第一个 Java 应用程序 public class HelloWorldApp { public static void main (String args[]) { System.out.println(“Hello World!”); } }
  35. 35. <ul><li>注意 </li></ul><ul><ul><li>程序进入从一个类的 main 方法开始,必须保证主类 HelloWorldApp 中实现了 main 方法。 </li></ul></ul><ul><ul><li>必须保证 HelloWorldApp.java 文件在当前目录下 </li></ul></ul><ul><ul><li>必须保证 PATH 环境变量中有 [jdk_home]in </li></ul></ul>6 、 Java 程序 —— 第一个 Java 应用程序
  36. 36. public class CommArg { public static void main(String args[]) { // Display command arguments int i; if( args.length > 0 ) //have some command arguments { for( i=0; i<args.length; i++ ) { System.out.println(&quot;arg[&quot;+i+&quot;] = &quot;+args[i]); } } else //no command argument { System.out.println(&quot;No arguments!&quot;); } } } 6 、 Java 程序 —— 第二个 Java 应用程序(命令行参数)
  37. 37. <ul><li>命令行参数: main( String args[] ) ,与标准 C 中 main(int argc, char* argv[]) 相似。 </li></ul><ul><li>字符串的拼接: &quot;arg[&quot; + i + &quot;] = &quot; + args[i] 。 </li></ul><ul><li>编译程序: javac HelloWorldApp.java </li></ul><ul><li>运行程序(命令行参数获取): </li></ul><ul><li>java CommArg first second third </li></ul><ul><li>运行结果: </li></ul><ul><li>arg[0] = first </li></ul><ul><li>arg[1] = second </li></ul><ul><li>arg[2] = third </li></ul>6 、 Java 程序 —— 第二个 Java 应用程序(命令行参数)
  38. 38. 6 、 Java 程序 —— 第三个 Java 应用程序 一个图形应用程序
  39. 39. <ul><ul><li>类库支持:继承 Applet 类,引用其他类。 </li></ul></ul><ul><ul><li>类定义:定义程序所需的类及接口,包括其内部的变量、方法等。 </li></ul></ul><ul><ul><li>init() 方法:初始化,自动调用,只执行一次。 </li></ul></ul><ul><ul><li>start() 方法:初始化后,重入等都将自动调用。 Applet 的主体,在其中可以执行一些任务或启动相关的线程来执行任务,如 paint() 方法等。 </li></ul></ul><ul><ul><li>paint() 方法: 显示、重画 Applet 窗口时调用。 </li></ul></ul><ul><ul><li>stop() 方法:离开 Applet 所在页面时调用,以停止消耗系统资源。 </li></ul></ul>6 、 Java 程序 —— Java 小程序( Java Applet )
  40. 40. import java.applet.*; import java.awt.*; public class HelloApplet extends Applet { public String s; // 成员变量,存放要显示在屏幕上的字符串 public void init() // 初始化方法,在网页被调入是只调用一次 { s = new String(“Hello World!”); // 设置要显示的内容 } public void paint(Graphics g) // 显示方法,每次需要重画时该方法被调用 { g.drawString(s,25,25); // 在 Applet 窗口中指定位置显示字符串 } } 6 、 Java 程序 —— 第一个 Java 小程序
  41. 41. 编辑存盘:文件名和主类名一致 编译代码: javac HelloApplet.java 编写 HTML 文件: HelloApplet.html <HTML> <HEAD> <TITLE>Hello World</TITLE> </HEAD> <applet code=&quot;HelloApplet.class&quot; codebase= &quot; . &quot; width=300 height=60> </applet> </HTML> 6 、 Java 程序 —— 第一个 Java 小程序
  42. 42. <ul><li>Java 小应用程序不能直接执行和使用,必须要在浏览器中执行。 </li></ul><ul><li>运行 Applet 程序: </li></ul><ul><li>1. appletviewer HelloApplet.html </li></ul><ul><li>2. 在浏览器中运行 </li></ul><ul><li>运行结果: </li></ul><ul><li>Hello World! </li></ul>6 、 Java 程序 —— 第一个 Java 小程序
  43. 43. <ul><li>理解程序: </li></ul><ul><li>import 语句相当于 C 语言中的 include 。 </li></ul><ul><li>每一个 applet 都是 java.applet.Applet 的子类,用 extends 继承。 </li></ul><ul><li>applet 中没有 main() 方法。当 applet 被浏览器运行时, init() 、 start() 方法等自动执行,再调用 paint() 方法。 </li></ul><ul><li>在 applet 中与屏幕输出有关的操作通过 Graphics 对象来实现。 </li></ul><ul><li>一个 Java 源文件内最多只能有一个 public 类,称为主类,且文件名必须和它同名。 </li></ul>6 、 Java 程序 —— 第一个 Java 小程序
  44. 44. import java.util.*; import java.awt.*; import java.applet.*; import java.text.*; public class ParaApplet extends Applet { String s1,s2,s3,s4; // 四个字符串变量分别记录四个参数的字符串 public void init() { // 在初始化方法中根据参数的值初始化字符串变量 s1 = getParameter(&quot;p1&quot;); s2 = getParameter(&quot;p2&quot;); s3 = getParameter(&quot;p3&quot;); s4 = getParameter(&quot;p4&quot;); } public void paint(Graphics g) { g.drawString(s1,10,10); g.drawString(s2,10,30); g.drawString(s3,10,50); g.drawString(s4,10,70); } } 6 、 Java 程序 —— 第二个 Java 小程序(带参数的 Applet )
  45. 45. 编辑存盘:文件名和主类名一致 编译代码: javac ParaApplet.java 编写 HTML 文件: ParaApplet.html <HTML> <HEAD> <TITLE>Applet Parameter Test</TITLE> </HEAD> <applet code= &quot;ParaApplet.class&quot; codebase=&quot;.&quot; width=300 height=100> <param name=p1 value=&quot;1111111&quot;> <param name=p2 value=&quot;2222222&quot;> <param name=p3 value=&quot;3333333&quot;> <param name=p4 value=&quot;4444444&quot;> </applet> </HTML> 6 、 Java 程序 —— 第二个 Java 小程序(带参数的 Applet )
  46. 46. <ul><li>运行 Applet 程序: </li></ul><ul><li>1. appletviewer ParaApplet.html </li></ul><ul><li>2. 在浏览器中运行 </li></ul><ul><li>运行结果: </li></ul><ul><li>1111111 </li></ul><ul><li>2222222 </li></ul><ul><li>3333333 </li></ul><ul><li>4444444 </li></ul>6 、 Java 程序 —— 第二个 Java 小程序(带参数的 Applet )
  47. 47. <ul><li>理解程序: </li></ul><ul><li>从页面中获取 Applet 参数: </li></ul><ul><li>s1 = getParameter(&quot;p1&quot;); </li></ul><ul><li>在页面中设置 Applet 参数: </li></ul><ul><li><param name=p1 value=&quot;1111111&quot;> </li></ul>6 、 Java 程序 —— 第二个 Java 小程序(带参数的 Applet )
  48. 48. 6 、 Java 程序 —— 第三个 Java 小程序 一个图形 Java 小程序
  49. 49. <ul><li>包、类、变量、方法等命名:要体现各自的含义。 </li></ul><ul><li>包名全部小写, io , awt </li></ul><ul><li>类名第一个字母要大写, HelloWorldApp </li></ul><ul><li>变量名第一个字母要小写, userName </li></ul><ul><li>方法名第一个字母要小写, setName </li></ul><ul><li>程序书写格式:保证良好的可读性,使程序一目了然。 </li></ul><ul><li>大括号 {} 的使用与对齐 语句段的对齐 </li></ul><ul><li>在语句段之间适当空行 </li></ul><ul><li>程序注释:帮助了解程序的功能。 </li></ul><ul><li>类注释 变量注释 </li></ul><ul><li>方法注释 语句注释 </li></ul><ul><li>语句段注释 </li></ul><ul><li>建议:一个类一个 .java 文件 </li></ul>程序示例 6 、 Java 程序 —— 程序书写规范
  50. 50. 第一次使用 Java 时常见的问题 <ul><li>编译时 </li></ul><ul><li>运行时 </li></ul>
  51. 51. <ul><li>使用“ .” 作为目录名分割符: </li></ul><ul><ul><li>[your home]> javac examples.ch1.Welcome1.java </li></ul></ul><ul><ul><li>错误:不能读: examples.ch1.Welcome1.java </li></ul></ul><ul><ul><li>1 个错误 </li></ul></ul><ul><li>解决办法: </li></ul><ul><ul><li>[your home]> javac examplesch1Welcome1.java </li></ul></ul><ul><ul><li>或者 </li></ul></ul><ul><ul><li>[your home]> javac examples/ch1/Welcome1.java </li></ul></ul>Java 编译时常见的问题( 1 )
  52. 52. Java 编译时常见的问题( 2 ) <ul><li>忘记文件后缀 .java </li></ul><ul><ul><li>[your home]> javac examplesch1Welcome1 </li></ul></ul><ul><ul><li>javac: 无效的参数: examplesch1Welcome1 </li></ul></ul><ul><ul><li>用法: javac < 选项 > < 源文件 > </li></ul></ul><ul><ul><li>…… </li></ul></ul><ul><li>解决办法: </li></ul><ul><ul><li>[your home]> javac examplesch1Welcome1.java </li></ul></ul><ul><ul><li>或者 </li></ul></ul><ul><ul><li>[your home]> javac examples/ch1/Welcome1.java </li></ul></ul>
  53. 53. Java 运行时常见的问题( 1 ) <ul><li>使用“ ” 最为包名的分割符: </li></ul><ul><ul><li>[your home]> java examplesch1Welcome1 </li></ul></ul><ul><ul><li>Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: examplesch1Welcome1 (wrong name: examples/ch1/Welcome1) </li></ul></ul><ul><ul><li>at java.lang.ClassLoader.defineClass0(Native Method) </li></ul></ul><ul><ul><li>…… </li></ul></ul><ul><li>解决办法: </li></ul><ul><ul><li>[your home]> java examples.ch1.Welcome1 </li></ul></ul><ul><ul><li>或者 </li></ul></ul><ul><ul><li>[your home]> java examples/ch1/Welcome1 </li></ul></ul>
  54. 54. Java 运行时常见的问题( 2 ) <ul><li>没有把当前目录加到 classpath 环境变量中: </li></ul><ul><ul><li>[your home]> java examples.ch1.Welcome1 </li></ul></ul><ul><ul><li>Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: examplesch1Welcome1 </li></ul></ul><ul><li>解决办法: </li></ul><ul><ul><li>set classpath= %classpath%;. </li></ul></ul><ul><ul><li>或者 </li></ul></ul><ul><ul><li>[your home]> java –classpath . examples.ch1.Welcome1 </li></ul></ul>
  55. 55. Java 编译小窍门 <ul><li>命令行: javac *.java </li></ul><ul><ul><li>可以编译当前目录下所有的 .java 文件 </li></ul></ul><ul><li>命令行: javac yourpackage*.java </li></ul><ul><ul><li>编译 yourpackage 目录下所有的 .java 文件 </li></ul></ul>
  56. 56. Java 语言学习 1 、阅读类库文档,了解、掌握 Java 开发类库的使用方法; 2 、多分析例子程序,多上机练习。 3 、了解 OO 的思想。
  57. 57. 下一讲内容: Java 语言基础 <ul><li>1 、 Java 语言规范 </li></ul><ul><ul><li>Java 数据类型 </li></ul></ul><ul><ul><li>Java 运算符和表达式 </li></ul></ul><ul><ul><li>Java 控制语句 </li></ul></ul><ul><ul><li>Java 类定义规范 </li></ul></ul><ul><li>2 、 Java 开发类库组成 </li></ul>

×