资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章节程序相关设计基础2.1 n程序是指按照时间顺序依次安排的工作步骤。而程序设计则是对这些步骤的编排和优化。n计算机处理的核心是数据和运算。数据的基本存储单位是位,数据按照不同的数据类型来组织和存储。运算的基础是表达式,运算的控制手段是流程。无论是多么复杂的运算,都可以分解成顺序、选择和循环这三种基本的程序结构。 nJava程序由一个或多个独立的类组成,但其中必须有一个公有类,而且源代码文件(.java文件)必须与这个公有类的名字相同。2.1.1 初识Java程序 一个Java程序的基本框架结构:nJava程序由一个或多个独立的类组成,但其中必须有一个公有类(如:HelloWorld),而且源代码文件必须与这个公有类的名字相同(如:HelloWorld.java)。nJava的类可以由一个或多个方法组成,其中公有类中的main方法可用作程序运行的入口。 / The First Java Programpublic class HelloWorld public static void main(String args) System.out.println(Hello World!); 程序头的注释HelloWorld类main方法修饰符方法头方法体方法名参数返回类型2.1.1 初识Java程序o Java程序的编辑、编译和运行过程 编辑程序代码HelloWorld.javajavac生成出错信息Yes编译程序代码javac HelloWorld.javaHelloWorld.class解释执行字节码java HelloWorld有编译错误吗?NoJava程序编译通过,会自动生成一个包含了这个源程序字节码的同名.class文件。该文件可以通过Java虚拟机运行。 2.1.2 标识符和关键字 n在Java语言中,标识符用于表示变量、常量、方法、类或接口的名称。标识符是大小写敏感的,但没有长度限制。nJava关键字是为编译器保留的、具有特定含义的标识符,不能把它用做变量、类或方法的名称。nJava语言中的保留字 abstract default if private throw boolean do implements protected throws break double import public transient byte else instanceof return try case extends int short void catch final interface static volatile char finally long super while class float native switch const for new synchronized continue goto package this 2.1.3 撰写规范的程序代码 程序代码质量评审原则: n正确性正确性 指程序代码要实现软件设计所要求的功能;n可靠性可靠性 指程序代码最后编译的程序要能够稳定、可靠、安全的运行;n规范化范化 指程序代码书写的风格、命名规则等要符合规范;n可可读性性 指程序代码要便于查看和理解;n灵活性灵活性 指程序代码的设计和编写应该易于维护和改动。 / 程序说明package 包的名称import 类的名称类修饰符 class 类的名称构造方法类成员:方法 (按照以下访问特性次序排列)public protectedprivate protectedprivate 类成员:域 (按照以下访问特性次序排列)public protectedprivate protectedprivate 静态变量(即使用 static修饰符的。按照以下访问特性次序排列)public protectedprivate protectedprivate 常量 (即使用static final修饰符的)2.2 数据和数据类型 n数据是我们对信息的一种组织和表达形式。计算机是一个数据处理器,而程序就是处理数据的具体步骤和方法。nJava是强类型语言,在Java中,常量和变量必须事先声明数据类型才能使用。Java通过声明的数据类型在合适的地方为它们分配内存。2.2.1 数据 n无论数据以何种形式出现,但对于计算机而言,程序所处理的都是同样的二进制位模式数据。计算机存储器仅仅将数据以位模式存储。至于解释位模式是数值类型、文本类型、或其它的数据类型,则是由输入/输出设备或程序的完成。n位(bit,binary digit的缩写)是存储在计算机中的最小单位;它是0或1。长度为8的位模式被称为1个字节。n不同的位模式集合可以设计用于表示文本符号。我们称一类位模式集合为码。表示符号的过程被称为编码。常用的码有ASCII码、扩展ASCII码、Unicode码。数据的类型可以解决两个问题1.如何存储(二进制)2.可以进行的操作1、数字 2 和 字符 2 的存储二进制(参考 ASCII 码表)?2、数字 2 和 字符 2 所能进行的操作?2.2.2 常量和变量 变量是指其值在运行时可以改变的量。在程序运行期间其值保持不变的量,我们称之为常量。Java语言中使用关键字final来定义常量。例如:nfinal double PI = 3.14159; / PI是实数类型常量nint x, y; / x, y是整数类型变量ndouble w = 3.1415;/ w是实数类型变量nboolean truth = true;/ truth是布尔类型变量nConstant const = new Constant();/ const是对象类型变量2.2.3 数据类型 nJava中的数据类型可以分为基本类型(primitive type)和对象类型(object type)两大类。其中的基本数据类型包括:整数类型、实数类型(也称浮点类型)、字符类型和布尔类型。nJava中的对象数据类型是一种抽象数据类型(ADT),它将数据和相关的操作封装在一起。除了Java类库提供的大量作为API的对象数据类型外,Java允许程序员定义自己的对象数据类型,满足更复杂的编程需要。Java中的数据类型基本类型(primitive)字符类型布尔类型整数类型实数类型floatchar对象类型(object)intlongbyteshortdoubleboolean整数、字符、布尔、实数类、接口字、字节、位字符串、集合、数组基本数据类型机器内部表示对象数据类型抽象2.2.3 数据类型n字符串是指一个字符序列的集合。在Java中字符串完全被当成对象,字符串类型是标准Java类库中预定义的String类。字符串作为对象数据类型还封装了许多相关的操作,便于我们对字符串进行处理。nint length() 返回字符串的长度。nString substring(int beginIndex, int endIndex) 返回原字符串中从beginIndex位置开始到endIndex位置(不包括该位置)之间的所有字符组成的新字符串。nint indexOf(int ch) 返回从索引0开始的与ch字符相匹配的首个字符的位置(索引值)。未检索到匹配字符的则返回-1。nint indexOf(String str) 返回从索引0开始的与str字符串相匹配的首个子串的开始位置(索引值)。未检索到匹配的字符串则返回-1。nboolean equals(Object anObject) 比较字符串是否相等,相当时返回true,否则返回false。n比较字符串是否相等应该使用equals方法 。示例程序 22 字符串的引用与构造Srting name1 = new String(李白);/构造字符串对象“李白”, /name1引用该字符串对象Srting name2 = 李白;/name2引用已构造的字符串对象“李白”Srting name3 = 杜甫;/隐式构造字符串对象“杜甫”,name3引用该字符串对象name1 = 杜甫;/name1引用字符串对象“杜甫”2.2.3 数据类型Java程序在首次声明变量时,需要为其指定一种类型。类型决定了变量中存储的值的范围,以及能对变量值执行的操作。Java是一种强类型语言,它能区别多种数据类型,并且通常不允许用一种类型替换另一种。这样,使得编译器能高效处理数据,防止由于类型不匹配导致的运行时错误。当需要更高的灵活性时,Java语言也提供了类型转换的机制。 charbyteshortintlongfloatdouble语法与规则( 类型指示符类型指示符 ) 表达式表达式double pi = 3.1415926;int p = (int)pi; /p=32.3 表达式与运算符 n一个表达式就是一个能够返回值的简单结构。最简单的表达式是变量和常量。在Java中也可以通过使用运算符、方法调用以及类型转换等,建立复杂的表达式。n建立表达式没有通用的方法,因为要取决于所用的运算符,Java包括有赋值运算符、逻辑运算符、算术运算符、布尔运算符、位运算符等等。表达式可用于赋值给一个变量、计算方法的参数、或者判断一个条件,表达式也可以包含方法的调用。例如:x 变量 PI 常量 System.out.println(字符串长度:+n); 方法调用 x * y 算术运算 x = 1.5 变量赋值 love2.equals(love1) 逻辑运算 int p = (int)PI; 类型转换 n理解表达式的重点之一就是要了解不同的运算符。 2.3 表达式与运算符运算符是用来完成一个动作的特定语言的语法记号。n赋值运算符n增减运算符n算术运算符n关系运算符n逻辑运算符n位运算符运算符运算符含义含义=直接赋值+=加法赋值-=减法赋值*=乘法赋值/=除法赋值%=模赋值运算符运算符JavaJavaC/C+C/C+DelphiDelphiVisual BasicVisual Basic增+Inc()无减-Dec()无运算符运算符JavaJavaC/C+C/C+DelphiDelphiVisual BasicVisual Basic加+减-乘*浮点数除/整数除/div/取模%ModMod运算符运算符JavaJavaC/C+C/C+DelphiDelphiVisual BasicVisual Basic相等=或is不相等!=!=大于小于小于等于=运算符运算符JavaJavaC/C+C/C+DelphiDelphiVisual BasicVisual Basic逻辑与&AndAnd逻辑或|OrOr逻辑非!NotNo运算符运算符JavaJavaC/C+C/C+DelphiDelphiVisual BasicVisual Basic与&andand或notnot取反oror异或xorxor左移Shr无2.3 表达式与运算符Java语言中明确地规定了各种运算符的优先级。在优先级条件下,运算规则是:优先级高的运算符在优先级低的运算符之前求值,优先级相同时自左向右求值。优先级优先级运算符类型运算符类型运算符运算符优先级最高一元运算符 . ()(方法调用) ! + - + - new ()(强制类型转换)优先级较高算术运算符位移运算符* / % + -优先级较低关系运算符位移运算符逻辑运算符 = !=& |& |?:(三元判断运算符,例如:AB?X:Y)优先级最低赋值运算符=+= -= *= /= %= 作业分别输出如下两个表达式的值:1.(1+2)2.(1+2)提示:修改 HelloWorld.java 程序以下语句圆括号中的表达式即可:System.out.println( );2.4 流程控制 n任何程序流程均可以用顺序结构、选择结构、循环结构这三种基本控制结构实现。n程序中的语句是按照编写时写入的顺序一条接一条地执行的,这一过程称为顺序执行。nJava提供了两种选择结构语句:if语句和switch语句。n循环结构使用条件表达式来控制一个(一组)动作的重复执行。Java语言中支持的循环语句包括:while循环、do-while循环、for循环。2.4 流程控制nswitch语句是多分支判断选择结构。根据选择器的值,switch语句可以从很多可能的条件中选择一个分支中的语句或语句块执行。 语法与规则switch (表达式表达式) case 值值1: 语句语句1;/满足值满足值1的条件执行语句的条件执行语句 break; case 值值2: 语句语句2;/满足值满足值2的条件执行语句的条件执行语句 break; . case 值值n: 语句语句n;/满足值满足值n的条件执行语句的条件执行语句 break; default: 缺省语句缺省语句; 语法与规则if (条件表达式条件表达式) /做某事的语句做某事的语句; ./如果是单条语句,可不使用如果是单条语句,可不使用else /做另一件事的语句做另一件事的语句1; ./如果是单条语句,可不使用如果是单条语句,可不使用 nif-else语句允许在两个程序块之间进行选择。同样,无论条件的值如何,都能确保有且只有一种选择被执行。if语句还可以嵌套任意层以构成更复杂的判断选择结构。2.4 流程控制nbreak :在while、do-while或for循环中,当某种条件满足时需要立即跳出循环时,使用break关键字,可以使得程序的执行流程立即跳出循环。 ncontinue :如果想跳过循环中的部分代码重新开始下一次循环,就使用continue关键字。 一个有趣的例题 射雕英雄传的朋友,一定还记得黄蓉遇上神算子瑛姑,给她出的三道题目中有一题是这样的:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?也就是说,有一个未知数,这个数除以三余二,除以五余三,除以七余二,问这个数是多少? 示例程序 211 “黄蓉的题目”Calc.javapublic class Calc public static void main(String args) int x; for (x=0;x100;x+) if (x%3=2) & (x%5=3) & (x%7=2) System.out.println(这个数字是:+x); /end of main/end of Calc
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号