版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言与面向对象程序设计教程主讲: 袁加全E-mail:第一章 软件开发基础与 Java 语言概述本章教学重点:Java程序的开发过程与运行环境 , Applet与Application。本章教学难点: Java程序的开发过程与运行环境 。本章授课学时:6课时。第一章 软件开发基础与 Java 语言概述1.1 软件开发基础1.1.1 软件运行原理 计算机系统是由硬件和软件两大部分组成。 硬件:中央处理单元、数学逻辑单元、内存单元、输入单元、输出单元和外存单元组成。 软件:由程序、运行程序所需要的数据和文档三部分组成。 软件运行原理:软件加载到内存,CPU依次从内存取出每一条指令顺序执行,
2、从而完成程序员事先编写好的各种数据的处理、输入、输出等操作。第一章 软件开发基础与 Java 语言概述1.1.2 操作系统与计算结构的发展 (1)操作系统简介 功能: 为应用程序提供处理机管理、内存管理、输入输出、设备管理及文件管理等,是应用程序与硬件之间的接口。 PC机上常用的操作系统: DOS、Windows 98、Windows NT、UNIX、Linux 等。 直接运行于裸机的应用软件: 应用逻辑内存管理输入输出设备管理硬件(裸机) 操作系统管理的应用软件: 应用逻辑操作系统硬件(裸机) 1.操作系统简介操作系统与应用系统的划分1.操作系统简介系统软件和应用软件关系图:应用软件系统软件
3、用户应用软件操作系统硬件系统(裸机)(2)计算结构的发展(计算结构是指应用系统的系统体系结构,就是系统层次、模块结构) a. 主机 - 终端模式:集中运算和集中管理是主机 - 终端模式的特点。一台主机带多个终端。主机负担太重。 b. 单机模式:个人计算机(PC)迅速发展,软件运行以孤立的机器进行。 c. 客户机/服务器模式:具有分布运算和分布管理的特点。即服务器进行汇总、综合处理;客户机实现与用户的对话及客户端的工作处理。 d. 浏览器/N层服务器模式:具有分布运算和集中管理的特点。由浏览器提供统一的用户界面。1.1.3 软件开发过程与程序设计语言 (1)软件开发过程 操作系统与系统软件的开发
4、要求更加严谨、高效、安全和方便;开发人员需要具有精深的专业知识与技能。 应用软件的开发是针对某个具体问题或实体,专用性强,软件间的差异性大,需求量最多。应用软件开发能力一般包括: a. 了解应用软件的背景知识 b. 分析和了解应用软件的功能和要求 c. 确定应用软件的计算结构 d. 熟悉应用软件的工作运行环境 e. 掌握开发应用软件的工具 (2)程序设计语言及其发展 a. 面向机器的语言 b. 面向过程的语言 c. 面向对象的语言1.2 Java 语言概述 1.2.1 Java 的发展历史 1995年5月23日,Java这种定位于网络应用的程序设计语言正式推出。 Sun公司是这样描述:Java
5、 是一种简单的、面向对象的、强壮的、安全的、可移植的、高性能的、体系结构中立的、解释型的、多线索的、动态的语言。 Java语言由语法规则和类库两部分组成。1.2.2 Java 1.2.2 Java 程序的开发过程与运行环境程序的开发过程与运行环境 1 1、 编写源程序编写源程序 例例 1.1 1.1 第一个第一个 Java Java 程序:程序:MyFirstJavaProgram.javaMyFirstJavaProgram.java import java.io import java.io. .* * ; ;/引入以引入以 java.iojava.io 开头的模块(统称为开头的模块(统称
6、为 java.iojava.io 包)到程序中。包)到程序中。 public public classclass MyFirstJavaProgram MyFirstJavaProgram/类头,用关键字类头,用关键字 class class 来标来标志一个类定义的开始。志一个类定义的开始。 /类体由大括号括起来。类体由大括号括起来。public static void main(String argspublic static void main(String args) ) /main/main方法是方法是主类标志主类标志 System.out.println(This System.ou
7、t.println(This is my first Java program ! ); is my first Java program ! ); /方法体方法体 注:注:JavaJava程序都是由类或者说是类的定义组成的。程序都是由类或者说是类的定义组成的。 例例 1.1 1.1 第一个第一个 Java Java 程序:程序:MyFirstJavaProgram.javaMyFirstJavaProgram.java运行结果:-Configuration: -This is my first Java program ! Process completed.几个入门概念:几个入门概念: (
8、1)Java 语言标识符的字母区分大小写;语言标识符的字母区分大小写; (2)不允许在一个类的内部再定义另一个类,)不允许在一个类的内部再定义另一个类,各个类之间必须是平行的,而不能嵌套;各个类之间必须是平行的,而不能嵌套; (3)一个程序可以由一个或多个类组成,其)一个程序可以由一个或多个类组成,其中必须有也只能有一个主类。中必须有也只能有一个主类。 (4)源文件名必须与程序的主类名一致,并)源文件名必须与程序的主类名一致,并且以且以 .java 为其后缀。为其后缀。 2.编译生成字节码 (1)就高级程序的编译过程来讲,可分为编译型和解释型两种。 C、C+、Fortran等是编译型的;JAV
9、A是解释型的。但其又不同于传统的直接解释型语言(如BASIC),它是先编译成特定的二进制字节码文件然后再交给解释器解释执行。解释器屏蔽了软硬件平台的差异性。解释器界面下的完整的软硬件平台成为Java虚拟机。这是Java成为网络首选语言的秘密所在。它避免了为不同的平台开发不同版本的应用程序,简化了软件的升级和维护。2.编译生成字节码(2)编译型程序与Java程序不同的运行环境:(图1.4)编译型源程序可执行程序EXEJava源程序字节码程序编译连接 运行编译解释运行解 释 器操 作 系 统 裸 机Java虚拟机软件平台硬件平台2.编译生成字节码(3)Java引入编译步骤的两个主要原因: 一是保证
10、语法的正确性;二是通过编译引入类库中已编写好的模块。(不经过编译直接运行的后果)(4)类库中模块的引入方法。 例: import java.io.*;的作用是引入所有以java.io开头的模块(统称为java.io包)及其全部程序。(类库中的程序都是字节码形式)在例1中:标准系统输出量System.out是java.io 包中OutputStream类的对象,它调用了自己所拥有的println()方法向屏幕输出一串字符。2.编译生成字节码(5)Java编译器的系统软件javac.exe及其编译语句C:javac *。 编译中要注意的问题(源文件在当前目录;空格;编译成功的结果是一个或多个以cl
11、ass为后缀名的字节码文件。);若在Visual Age For Java(IBM)、VJ+( Microsoft )、Java Builder( Borland )、 Visual Caf、Jcreator LE等专用集成开发环境中用菜单命令或按钮即可!3、 运行运行 运行一个编译好的运行一个编译好的 Java 字节码程序,需要字节码程序,需要调用调用 Java 的解释器软件的解释器软件 java.exe 。 解释运行的三个阶段:解释运行的三个阶段: (1)载入:)载入:Java解释器中的类载入器将字节解释器中的类载入器将字节码文件加载到内存(网上运行程序则通过网络码文件加载到内存(网上运行
12、程序则通过网络下载到本地内存);下载到本地内存); (2)代码校验:)代码校验:Java解释器中的代码检验器解释器中的代码检验器检查这些字节码的合法性;检查这些字节码的合法性; (3)解释执行:合法的字节码程序由)解释执行:合法的字节码程序由Java解解释器逐句地解释运行。释器逐句地解释运行。1.2.3 Applet 与与 Application 根据计算结构的不同,根据计算结构的不同,java程序可以划分为程序可以划分为 Application和和 Applet 两大类两者开发原理相同,但运两大类两者开发原理相同,但运行环境不同。行环境不同。 Java Application 程序的主要特点
13、:程序的主要特点: (1) Java Application 程序是独立完整的程序。程序是独立完整的程序。 (2)在命令行调用独立的解释器软件即可运行)在命令行调用独立的解释器软件即可运行 Java Application程序。程序。 (3) Java Application 程序的主类必须有一个定义为:程序的主类必须有一个定义为: public static void main(String args) 的的main方法,是方法,是 Java Application 程序执行的入口程序执行的入口点。如例点。如例 1.1例例 1.2 第一个第一个 Java Applet 程序:程序:MyFir
14、stJavaApplet.javaimport java.applet.Applet;/引入类库中定义好的引入类库中定义好的java.applet.Applet 类;类;import java.awt.Graphics;/引入引入 java.awt.Graphics 类(图形类)类(图形类)public class MyFirstJavaApplet extends Applet/主类必须主类必须是是 Applet 类的子类类的子类 public void paint(Graphics g) g.drawString(This is my first Java Applet!,15,20);
15、Applet程序的编译与运行过程(1) Applet编译过程与Application相同;(2)但Applet的运行环境却与Application有着很大的差异性: 首先了解WWW浏览器和HTML语言 Java Applet程序为HTML文件加入了动画、音频等动态内容。方法是将其字节码文件嵌入到HTML文件中,由浏览器中内置的java解释器来解释执行。 当运行一个Java Applet程序需要为它写一个HTML文件,然后在WWW浏览器中观看这个文件。例1.2对应的HTML文件:MyFirstJavaApplet Java Applet程序的主要特点及其与程序的主要特点及其与Java Appli
16、cation 程序的不同之程序的不同之处:处: (1) Java Applet 程序是在程序是在 WWW 浏览器环境下运行,即不是完浏览器环境下运行,即不是完整独立运行程序,而是已构建好的框架中的一个模块。整独立运行程序,而是已构建好的框架中的一个模块。 (2) 运行运行 Java Applet 程序的解释器不是独立的软件,而是嵌在程序的解释器不是独立的软件,而是嵌在 WWW 浏览器中做为浏览器软件的一部分。浏览器中做为浏览器软件的一部分。 (3) Java Applet 程序中不需要有程序中不需要有 main 方法,但是方法,但是 Java Applet 程序的主类必须是类库中已定义好的类程
17、序的主类必须是类库中已定义好的类 java.applet.Applet 的子类。的子类。 (4) Java Applet 程序可以直接利用浏览器或程序可以直接利用浏览器或 AppletViewer 提提供的图形用户界面,而供的图形用户界面,而 Java Application 程序则必须另外书写专程序则必须另外书写专用代码来营建自己的图形界面。用代码来营建自己的图形界面。 (5) Java Applet 更多的具体体现状态和状态之间的切换,而不更多的具体体现状态和状态之间的切换,而不是固定的顺序化的执行过程。是固定的顺序化的执行过程。本章小结 理解理解Java,首先必须掌握它的一些基本概首先必
18、须掌握它的一些基本概念:念:Java 对软件开发技术的影响;应用对软件开发技术的影响;应用前景及特点;前景及特点; Java是一种很典型的面向对象的程序设计是一种很典型的面向对象的程序设计语言。要掌握面向对象的一些基本概念:语言。要掌握面向对象的一些基本概念: 对象、类、继承和消息。以便更好地学对象、类、继承和消息。以便更好地学习和掌握习和掌握Java语言。语言。 布置作业:布置作业:p18 (17/19)学习导读学习导读 本章是学习本章是学习Java语言必须经过的基语言必须经过的基础阶段,通过本章的学习,应该能够对础阶段,通过本章的学习,应该能够对Java程序的构成有一个基本的理解,能程序的
19、构成有一个基本的理解,能够灵活运用够灵活运用Java语言提供的各种数据类语言提供的各种数据类型、运算符和表达式。型、运算符和表达式。第2章 Java语言基础 第2章 Java语言基础本章教学重点:Java的数据类型、常量和变量;表达式的构成、求值顺序和表达式中的类型转换;常用运算符的使用。本章教学难点:表达式的构成、求值顺序和表达式中的类型转换本章授课学时:课时第二章 Java 语言基础2.1 Java 程序的输入输出程序的输入输出1. 字符界面下的输入输出:字符界面下的输入输出:Java Application字符界面:是指计算机程序与使用程序的用户之间通过字符模式的界面进字符界面:是指计算
20、机程序与使用程序的用户之间通过字符模式的界面进行沟通。行沟通。例例 2.1 字符界面下基本输入输出程序:字符界面下基本输入输出程序:SimpleCharInOut.javaimport java.io.*;/引入引入 java.iojava.io. .* * 系系统输入输出类包统输入输出类包public class SinpleCharInOut/类头类头public static void main(String args)/main方法,说方法,说明该为主类明该为主类char c = ;/定义字符型变量,赋初值定义字符型变量,赋初值System.out.print(Enter a char
21、acter please:);System.out.print(Enter a character please:);/显示提示信息显示提示信息 trytry c=(char)System.in.read(); c=(char)System.in.read();/接受用户输入的字接受用户输入的字符并保存在变量符并保存在变量 c c 中中catch(IOException e)catch(IOException e)System.out.println(“YouveSystem.out.println(“Youve entered entered character:” + c);charact
22、er:” + c);/向屏幕输出变量向屏幕输出变量c c中保存的中保存的字符字符 说明:说明: a. = 是是Java语言的赋值号;语言的赋值号; b. System.in 是是 java.io 包中包中 InputStream 类的对象,类的对象,代表系统的标准输入,即键盘;代表系统的标准输入,即键盘;read()是读数据方法。是读数据方法。 c. System.out 是是 java.io 包中包中 OutputStream 类的对类的对象,代表系统的标准输出,即显示器;象,代表系统的标准输出,即显示器;print()是输出方是输出方法。法。 d. 当程序执行到当程序执行到 read()
23、方法就暂停下来,等待用户从方法就暂停下来,等待用户从键盘输入一个字符并按回车键。键盘输入一个字符并按回车键。 e. read()方法读入的字符是整型方法读入的字符是整型 int ,采用强制类型转,采用强制类型转换换(char)成为字符型成为字符型 char 。 f. 字符串连接运算符字符串连接运算符 + 。2、 图形界面下的输入输出:图形界面下的输入输出:Java Applet例例 2.2 图形界面下的基本输入输出程序:图形界面下的基本输入输出程序:SimpleGraphicsInOut.javaimport java.applet.Applet;import java.awt.*;publi
24、c class SimpleGraphicsInOut extends Applet Label prompt;/定义显示提示信息的标签对象TextField input;/定义接受用户键盘输入的文本区域对象Label output;/定义回显用户输入字符的标签对象public void init() /定义浏览器打开 Applet 后的初始操作prompt = new Label(Enter a character pleasea: ); /创建提示标签input = new TextField(3);/创建输入区域output = new Label ( ); /创建输出标签add(pro
25、mpt);/将提示标签加入图形界面add(input);/将输入区域加入图形界面add(output);/将输出标签加入图形界面public boolean action(Event e,Object o)/定义对用户输入的响应output.setText(Youve entered character:+o.toString(); /在输出标签回显输入内容return true;说明:说明: a. Label : java.awt 包中的包中的 Label类,用于定类,用于定义并创建图形界面的显示标签对象。义并创建图形界面的显示标签对象。 b. TextFeild : java.awt 包中
26、的包中的 TextFeild类,类,用于定义并创建图形界面的单行文本输入区域用于定义并创建图形界面的单行文本输入区域对象,用来接受用户输入的字符。对象,用来接受用户输入的字符。 c. add : 将将 Label 、TextFeild 等所创建的对象等所创建的对象加入到图形界面的方法。加入到图形界面的方法。 d. init() : 负责对负责对 Java Applet 程序进行初始化程序进行初始化的方法。的方法。 e. action() : 负责对用户的输入作响应的方法。负责对用户的输入作响应的方法。例例 2.3 对应对应 SimpleGraphicsInOut.java 程序的程序的 HTM
27、L 文件:文件:SimpleGraphicsInOut.htmlSimpleGraphicsInOut3、图形界面下的输入输出:、图形界面下的输入输出:Java Application例例 2.4 图形界面下的图形界面下的 Application 程序:程序:GraphicsApplicationInOut.javaimport java.awtimport java.awt. .* *; ;/引入引入 java.awtjava.awt 包中的所有类包中的所有类public class GraphicsApplctInOutpublic class GraphicsApplctInOut/定义
28、主类定义主类 GraphicsApplicationInOutGraphicsApplicationInOut public static void main(String argspublic static void main(String args ) ) /定义主类中的定义主类中的main main 方法方法 ApplctFrame MyFrame = new ApplctFrameApplctFrame MyFrame = new ApplctFrame();(); / /创建对象创建对象myFramemyFrame,形成图形界面形成图形界面 class ApplctFrameclas
29、s ApplctFrame extends Frame extends Frame/定义定义FrameFrame类的子类类的子类applictFrameapplictFrame Label prompt;Label prompt;/定义提示标签对象定义提示标签对象TextFieldTextField input; input;/定义输入单行文本区域对象定义输入单行文本区域对象Label output;Label output;/定义输出标签对象定义输出标签对象ApplctFrameApplctFrame()()/对对ApplctFrameApplctFrame对象初始化对象初始化 super(
30、Application Graphics Frame);super(Application Graphics Frame);/调用父类方法,指定图形界面窗口的标题调用父类方法,指定图形界面窗口的标题setLayout(new FlowLayoutsetLayout(new FlowLayout();();/指定图形界面窗口中各部件的排列方式指定图形界面窗口中各部件的排列方式prompt =new Label(Enter a character please:);prompt =new Label(Enter a character please:);/创建提示标签对象创建提示标签对象input
31、 = new TextField(4);input = new TextField(4);/创建输入单行文本区域对象创建输入单行文本区域对象output = new Label( );output = new Label( );/创建输出标签对象创建输出标签对象add(prompt);add(prompt);/将提示标签加入窗口将提示标签加入窗口add(input);add(input);/将输入区域加入窗口将输入区域加入窗口add(output);add(output);/将输出标签加入窗口将输出标签加入窗口pack();pack();/使上述三部件间紧密相连使上述三部件间紧密相连show(
32、);show();/显示图形窗口显示图形窗口 public booleanpublic boolean action(Event e,Object o) action(Event e,Object o)/定义对用户输入的响应定义对用户输入的响应 output.setText(Youve entered output.setText(Youve entered character:+o.toStringcharacter:+o.toString();(); / /在输出标签回显输入内容在输出标签回显输入内容return true;return true; public boolean handl
33、eEvent(Eventpublic boolean handleEvent(Event e e)/)/响应用户关闭窗口的操作响应用户关闭窗口的操作 if(e.id=Event.WINDOW_DESTROY)if(e.id=Event.WINDOW_DESTROY)/如果事件的如果事件的idid是关闭窗口,则执行退出。是关闭窗口,则执行退出。 System.exit(0);System.exit(0);return super.handleEvent(ereturn super.handleEvent(e);); 解释: 1 1、Java Application Java Applicatio
34、n 应用程序下如何创建图形界面示应用程序下如何创建图形界面示例;例; 2 2、程序由两个类构成:、程序由两个类构成: (1 1)主类)主类 public class GraphicsApplicationpublic class GraphicsApplication (包含(包含 main main 方法:方法:public static void main(String public static void main(String argsargs) (2 2)用户自定义类)用户自定义类 class ApplctFrameclass ApplctFrame extends extends
35、Frame Frame (继承父类(继承父类 Frame Frame 的属性与方法)的属性与方法) 3 3、Frame Frame 类:框架(类:框架(frame)frame)是一个具有附加属性的空是一个具有附加属性的空口,这些属性包括标题栏、菜单栏、边界、光标和图标口,这些属性包括标题栏、菜单栏、边界、光标和图标映象。是类库映象。是类库 java.awtjava.awt 包中的类。包中的类。 4、自定义类、自定义类 ApplctFrame 中的方法:中的方法: (1)构造方法)构造方法 ApplctFrame():在创建对象的同时完:在创建对象的同时完成对成对 ApplctFrame 对象初
36、始化;对象初始化; (2)action() 方法:当一个动作事件发生时被调用,方法:当一个动作事件发生时被调用,即定义为处理所有用户产生的事件。即定义为处理所有用户产生的事件。 (3)handleEvent() 方法:当组件接收到事件时被调方法:当组件接收到事件时被调用,被定义为可以处理所有类型的事件。用,被定义为可以处理所有类型的事件。 (4)action()方法和方法和handleEvent()方法都是组件方法都是组件 Component 类中的方法;类中的方法;5、Event 类:事件(类:事件(event)在)在AWT组件中流动的事件组件中流动的事件由由 Event 类的对象表示。是类
37、库类的对象表示。是类库 java.awt 包中的类;包中的类; 6、Component 类:组件(类:组件(component)是一种用户界面对象,它可以显示在屏幕是一种用户界面对象,它可以显示在屏幕上,还可以和用户交互。这样的用户界面上,还可以和用户交互。这样的用户界面对象包括按钮、滚动条和文本域。是类库对象包括按钮、滚动条和文本域。是类库 java.awt 包中的类;包中的类;7、Java Application 程序从主类的程序从主类的 main()方法开始运行。创建一个用户自定义的方法开始运行。创建一个用户自定义的 ApplictFrame类的对象,即创建一个用类的对象,即创建一个用户
38、图形界面窗口;户图形界面窗口;2.2 变量与数据类型变量与数据类型2.2.1 变量变量Java 中的变量定义:中的变量定义:a. 定义变量的名字定义变量的名字 b. 定义变量的数据类型定义变量的数据类型 如:如:int x ;char ch1,ch2; 其中,其中,x、ch1、ch2 为变量名,即变量标识符;为变量名,即变量标识符; int 、char 数据类型;数据类型; 标识符命名规定:标识符命名规定: (1)标识符可以由)标识符可以由字母字母、数字数字、下划线下划线或或$符号组成,符号组成,对标识符的长度没有特别限定。对标识符的长度没有特别限定。 (2)标识符必须以字母、下划线或)标识符
39、必须以字母、下划线或$符开头。符开头。 (3)标识符区分大小写。)标识符区分大小写。例例 2.5 定义简单变量:定义简单变量:VariableDefinition.javaimport java.awt.*;import java.applet.Applet;public class VariableDefinition extends Applet/定义主类定义主类VariableDefinition,是,是 Applet的子类的子类int x = 10; /定义整型变量定义整型变量 x 并赋初值并赋初值char char_MyClass_Flag = R;/定义子符型变量并赋初值定义子符型
40、变量并赋初值Label output1;/定义用来显示输出结果的两个标定义用来显示输出结果的两个标签签Label output2;public void init()/创建标签,指定其显示内容创建标签,指定其显示内容/并加入主类的并加入主类的Applet图形界面显示图形界面显示output1 = new Label(定义定义 int 类型变量类型变量+x,初值为初值为+x);output2 = new Label(定义定义 char 类型变量类型变量+char_MyClass_Flag,初值为初值为+char_MyClass_Flag); add(output1);add(output2);例
41、 2.6 使用变量简化程序:VariableDefinition2.javaimport java.awt.*;import java.applet.Applet;public class VariableDefinition2 extends Appletint x = 10;char char_MyClass_Flag = F;String prompt1 = 定义;/定义三字符串变量String prompt2 = 类型变量;/把固定的字符串常量赋给它们String prompt3 = , 初值为; /使编程更加方便public void paint(Graphics g)g.drawS
42、tring(prompt1+int+prompt2+x+prompt3+x,10,20);g.drawString(prompt1+char+prompt2+char_MyClass_Flag+prompt3+char_MyClass_Flag,10,50);注意: 程序中的变量必须先定义后使用,变量的有效范围在定义它的语句所在的大括号内部(包括其中嵌套的大括号内部),一旦出了这个范围,变量就失效了。1、布尔型、布尔型 boolean 取值:取值: true(真)(真) false(假)(假)例例 2.8 布尔型变量的定义与初值设备:布尔型变量的定义与初值设备:ShowBoolean.java
43、import java.awt.* ;import java.applet.Applet;public class ShowBoolean extends Applet boolean b1 = true ; boolean b2 ;/默认初值默认初值 false String prompt1 = boolean ; String prompt2 = 类型变量类型变量 ; String prompt3 = , 初值为初值为 ; public void paint(Graphics g) g.drawString(prompt1+prompt2+b1+prompt3+b1,10,20); g.d
44、rawString(prompt1+prompt2+b2+prompt3+b2,10,50); 2.2.2 数据类型数据类型 短整型短整型 short 16bit 整型整型 int32bit 长整型长整型 long 64bit 字符型字符型 char 16bit 整形变量的使用必须注意最大值和最小值,以免出现整形变量的使用必须注意最大值和最小值,以免出现溢出。溢出。 字符型变量的取值可以使用字符常量(用单引号括起字符型变量的取值可以使用字符常量(用单引号括起来的单个字符),也可以使用整型常数。来的单个字符),也可以使用整型常数。 例:例: char c_char = A ; char c_in
45、t = 65 ; 2、整型 int 与字符型 char注意:整型变量必须强制类型转换才能向字符变注意:整型变量必须强制类型转换才能向字符变量赋值。量赋值。 如下是错误的:如下是错误的: int i = 65 ;char c_char = i ; / i 是整型变量,是整型变量,c_char 是是字符型变量,无强制类型转换,错误。字符型变量,无强制类型转换,错误。 正确语句如下:正确语句如下: int i = 65 ; char c_char = (char)i ;/强制类型转换强制类型转换 浮点型浮点型float32bit 双精度型双精度型 double64bit float 和和 doubl
46、e 都是浮点数据类型,程序中使用它们来都是浮点数据类型,程序中使用它们来数。数。 科学计数法表示小数:科学计数法表示小数:3.14E3 表示表示 31403.14E-2表示表示 0.0314 float 浮点数的表示方法如:浮点数的表示方法如: 0.0314f或或 0.0314F3.14E-2f 或或 3.14E-2F double 浮点数的表示方法如:浮点数的表示方法如:0.0314d 或或 0.0314D3.14E-2d 或或 3.14E-2D l3、浮点型 float、double如果一个数没有带如果一个数没有带 f(F)或)或 d(D)后缀时,系)后缀时,系统默认为统默认为 doubl
47、e 浮点数。浮点数。 注意:将一个注意:将一个 double 类型的数据赋给类型的数据赋给 float 类类型变量,将产生编译错误。如型变量,将产生编译错误。如 float f = 3.14 ; /编译错误,因为编译错误,因为 3.14 默默认为认为 double 数据类型。数据类型。 float f = 3.14F;/正确的写法正确的写法4、类型转换(1)隐含类型转换:凡是把占用比特数较少的数)隐含类型转换:凡是把占用比特数较少的数据转换成占用比特数较多的数据为隐含类型轮据转换成占用比特数较多的数据为隐含类型轮换。换。(2)强制类型转换格式:)强制类型转换格式:(数据类型)(数据类型) 变量
48、名变量名 强制类型转换是将变量名的数据类型转换强制类型转换是将变量名的数据类型转换成括号里指定的数据类型。成括号里指定的数据类型。 注意:强制类型转换应防止数据溢出。如注意:强制类型转换应防止数据溢出。如 long l = 5 000 000 000 ; int i = (int) l ; /因为因为 l=5 000 000 000 的值大的值大于于 i 的最大值的最大值 2 147 483 647 溢出错误。溢出错误。2.3.1 算术运算算术运算 双目运算符:双目运算符: 、 分别为:加、减、乘、分别为:加、减、乘、除、取余除、取余 算术运算,用于整型与浮点型数据的运算。算术运算,用于整型与
49、浮点型数据的运算。 单目运算符:自加单目运算符:自加 + ; 自减自减 - 。例例 2.9 算术运算:算术运算:ArithmeticOperation.javaimport java.applet.Applet ;import java.awt.*;public class ArithmetcOperation extends Applet int i_x = 1;int i_y = 2;double d_x = 3.1415926;double d_y = 2.41;2.3 表达式与运算符public void paint(Graphics g)g.drawString(i_x+i_y+=+
50、(i_x+i_y),10,20);g.drawString(i_x+-+i_y+=+(i_x-i_y),10,40);g.drawString(i_x+*+i_y+=+(i_x*i_y),10,60);g.drawString(i_x+/+i_y+=+(i_x/i_y),10,80);g.drawString(i_x+%+i_y+=+(i_x%i_y),10,100);g.drawString(d_x+d_y+=+(d_x+d_y),10,140);g.drawString(d_x+-+d_y+=+(d_x-d_y),10,160);g.drawString(d_x+*+d_y+=+(d_x*
51、d_y),10,180);g.drawString(d_x+/+d_y+=+(d_x/d_y),10,200);g.drawString(d_x+%+d_y+=+(d_x%d_y),10,220);1、关系运算、关系运算关系运算符:关系运算符:=、!、!=、 、= 、+i_y+=+(i_xi_y),10,20);g.drawString(i_x+i_y+=+(i_x=+i_y+=+(i_x=i_y),10,100);g.drawString(i_x+=+i_y+=+(i_x+d_y+=+(d_xd_y),10,160);g.drawString(d_x+d_y+=+(d_xy1 & x
52、1+ = y1-;boolean b4 = x2y2 & x2+ = y2 -;public void paint(Graphics g)g.drawString (b1+&+b2+=+(b1&b2),10,20);g.drawString (b1+|+b2+=+(b1|b2),10,40);g.drawString (b1+b2+=+(b1b2),10,60);g.drawString (!+b2+=+(!b2),10,80);g.drawString (b1+&+b2+=+(b1&b2),10,100);g.drawString (b1+|+b2+=
53、+(b1|b2),10,120);g.drawString (x=+x1+,y=+y1,10,140);g.drawString (xy&x+=y-)=+b3+ ;x=+x1+,y=+y1,10,160);g.drawString (xy&x+=y-)=+b4+ ;x=+x2+,y=+y2,10,180);2.3.3 位运算位运算2.3.4 其他运算符其他运算符 1、三目条件运算符、三目条件运算符 ? : 使用格式:使用格式: x ? y : z 其规则是,先计算表达式其规则是,先计算表达式 x 的值,若的值,若 x 为真,则整个为真,则整个三目运算的结果为表达式三目运算的结果
54、为表达式 y 的值;若的值;若 x 为假,则整个为假,则整个运算结果为表达式运算结果为表达式 z 的值。的值。 例:例: int x = 5 , y = 8 , z = 2 ; int k = x 3 ? y : z ; / x 0 ? x : -x ; / y 为为 x 的绝对值。的绝对值。 2、复杂赋值运算符、复杂赋值运算符 ( P.39 表表 2.5 复杂赋值运算符)复杂赋值运算符)3、括号与方括号、括号与方括号 括号运算符()在某些情况下起到改变表达式运算先后括号运算符()在某些情况下起到改变表达式运算先后顺序的作用;在另一些情况下代表方法或函数的调用。顺序的作用;在另一些情况下代表方
55、法或函数的调用。它的优先级在所有的运算符中是最高的。它的优先级在所有的运算符中是最高的。 方括号运算符方括号运算符 是数组运算符,它的优先级也是很高,是数组运算符,它的优先级也是很高,其具体使用方法将在后面介绍。其具体使用方法将在后面介绍。 4、对象运算符、对象运算符 对象运算符对象运算符 instanceof 用来测定一个对象是否属于某用来测定一个对象是否属于某一个指定类或其子类的实例,如果是则返回一个指定类或其子类的实例,如果是则返回 true ,否,否则返回则返回 false 。 例:例: boolean b = MyObject instanceof MyClass ;2.3.5 运算
56、符的优先级与结合性运算符的优先级与结合性 运算符的优先级决定了表达式中不同运运算符的优先级决定了表达式中不同运算执行的先后顺序。如关系运算符的优先算执行的先后顺序。如关系运算符的优先级高于逻辑运算符。运算符的结合性决定级高于逻辑运算符。运算符的结合性决定了并列的相同运算的先后执行顺序。如对了并列的相同运算的先后执行顺序。如对于左结合的于左结合的 “+” ,x + y + z 等价于等价于 ( x + y ) + z ,对于右结合的,对于右结合的 “!”, !x 等价等价于于 !(!x)。本章小结 Java语言的源程序代码由一个或多个编译单元组成,每个编译单元可包含一个包声明、任意数量的impo
57、rt语句、类和接口声明。每个Java的编译单元可包含多个类或接口,但是每个编译单元最多只能有一个类或者接口是公共的。 关键字对Java技术编译器有特殊的含义,它们可标识数据类型名或程序构造名。标识符是赋予变量、类或方法的名称,标识符可从一个字母、下划线(_)或美元符号($)开始,随后也可跟数字、字母、下划线或美元符号,标识符是区分大小写。 Java编程语言有八个原始数据类型,分别为:boolean、char、byte、short、int、long、double和和float。 不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。常量就是指在程序执行期间其值不能发生变化的数据,常量是有
58、固定值的。变量的值则是可以变化的,变量实际上代表内存中指定的存储单元。它的定义包括变量名、变量类型和作用域几个部分。 基本的运算符分包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。优先级决定了同一表达式中多个运算符被执行的先后次序,结合性则决定了并列的相同优先级的运算的先后执行顺序。应当掌握好各种运算符的优先级。 学习导读学习导读 Java是真正的面向对象的语言,但面向对象的编程是真正的面向对象的语言,但面向对象的编程也是以面向过程编程为基础而发展起来的。面向对象也是以面向过程编程为基础而发展起来的。面向对象编程的核心思想之一就是软件编程的核心思想之一就是软件“复用
59、复用”,即程序片断,即程序片断或程序模块可以被不经修改地反复应用在同一个应用或程序模块可以被不经修改地反复应用在同一个应用软件或不同的其他软件中,从而提高开发效率并减低软件或不同的其他软件中,从而提高开发效率并减低维护成本。而这些被复用的程序片断或程序模块内部,维护成本。而这些被复用的程序片断或程序模块内部,仍然需要严格遵守传统的结构化程序设计原则,因此,仍然需要严格遵守传统的结构化程序设计原则,因此,熟练熟练掌握结构化程序设计的三种基本流程是进一步学掌握结构化程序设计的三种基本流程是进一步学习习Java面向对象程序设计的基础。面向对象程序设计的基础。 第三章 Java 语言的结构化程序设计第
60、三章 Java 语言的结构化程序设计本章教学重点:程序执行的流程;Java的三种控制结构语句;定义和使用Java的方法。本章教学难点:定义和使用Java的方法。本章授课学时:10课时第三章 Java 语言的结构化程序设计3.1 算法与结构化程序设计算法与结构化程序设计1、算法、算法 任何可计算性问题的解决过程都可以转化为按指定顺序执行的一系任何可计算性问题的解决过程都可以转化为按指定顺序执行的一系列操作过程。由列操作过程。由(1)可执行的操作;()可执行的操作;(2)执行操作的顺序)执行操作的顺序组组成解决问题的过程称为算法。成解决问题的过程称为算法。2、结构化程序设计的三种基本结构、结构化程序设计的三种基本结构 顺序结构:程序中的语句按它们书写的顺
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械构造案例课程设计
- 九年级语文下册 第三单元 12《江城子 密州出猎》教学设计 新人教版
- 箱梁预制施工安全管理方案
- 湖北省武汉为明学校高中语文 第六单元 11 牲畜林教学设计 新人教版《外国小说欣赏》
- 七年级英语下册 Unit 5 Our school life Topic 1 I usually come to school by subway Section C教案 (新版)仁爱版
- 机械制图全套课程设计
- 机械创新产品课程设计
- 2016年贵州省铜仁市中考真题语文试题(解析版)
- 机房强电布置课程设计
- 机床维修与操作课程设计
- 期中模拟检测(1-4单元)(试题)(含答案)-2024-2025学年四年级上册数学北师大版
- 企业名称预先核准通知书
- 大学生职业生涯规划学习通超星期末考试答案章节答案2024年
- GB 5920-2024汽车和挂车光信号装置及系统
- 2023-2024学年湖南省长沙市八年级(上)期中物理试卷
- 2024年人教版语文三年级上册《第八单元》大单元整体教学设计
- 万达入职性格在线测评题
- 学校义务教育均衡发展一校一策方案
- 躬耕教坛强国有我教师心得体会范文(10篇)
- 招投标管理招聘面试题及回答建议(某大型国企)2025年
- 2024年医院传染病管理制度范文(二篇)
评论
0/150
提交评论