第三章:流程控制语句
第一节:Java程序的结构
①概念:java程序是由一个或多个.java文件组成,这些文件称为源文件。每个源文件含有一个或多个类或接口。一个源文件种如果有多个类,则最多有一个是public类型的类。
java程序是由一条条语句组成,包含以下内容:
Ⅰ package语句:包语句,每个文件中最多只有一个,放在文件开始的地方
Ⅱ import语句:引入语句,python中也称为调用函数语句,可以没有,可以多个,放在所有类定义前面
Ⅲ 具有public权限的类定义:每个文件中最多有一个
Ⅳ 类定义:每个文件中包含的非public权限的类定义的个数没有限制
Ⅶ 接口定义:每个文件中包含的接口定义个数没有限制
②java包:包含一些相关类,目的就是将相关源代码文件组织在一起
包语句格式为:package pkg1 [ . pkg2 [ . pkg3...]];
****如果程序中又package语句,该语句一定是源文件中得第一条非注释语句************
****包的名字有层次关系,各层之间以点分隔**********
*****一个包可包含若干个类文件,还可以包含若干个包*********
③引入语句:用import语句引入所需要得类。 引入语句格式:import pkg1 [ . pkg2[ . pkg3...]].(类名 | * ); **使用具体p52-p53**
特别注意:应先声明一个包,具有类,再使用import进行调用。不可有两个package ,且package应在前面。
*****程序中不一定要有引入语句,当引用某个类的类与被引用的类存储在同一个物理目录下时,可以直接使用被引用的类******
第二节:流程控制
概念:语句是java的最小执行单行,语句间以分号(;)作为分隔符。
语句分为:单语句和复合语句
几类语句:赋值语句、分支语句、循环语句等
①赋值语句:表达式将一个值赋予某个变量。有的表达式也可单独当作语句,也被称为表达句语句。
实例:customer1 = new Customer();
x=12;
x++;
②分支语句:动态决定程序的流程方向,从程序的多个分支中选择一个或几个来执行。有if语句和switch两种。
Ⅰ if语句:(用法和python差不多)详细参考p55
Ⅱ switch: 参考p56-58
③循环语句:三种循环语句①for语句 ②while语句 ③do语句
Ⅰ for 语句:
语义:先执行初始语句,判断表达式的指,为真执行循环体语句再执行迭代语句,知道为假时结束。
语法格式:for(初始语句;条件表达式;迭代语句)
示例:for(ink=0 ; k<3 ; k++) 详情书本p59
Ⅱ while语句:
语法格式:while(条件表达式)
****和If语句一样,while语句中的条件表达式亦不能用数值来代替*****
语义:值为真时,重复执行循环体语句,直到为假停下。
Ⅲ do语句:
语句格式:do
语句 ;
while(条件表达式)
语义:首先执行循环体语句,当值为真重复执行循环体语句,为假时结束。
④跳转语句:以两条特殊的流控制语句组成,分别是break语句和continue语句,用于分支语句或循环语句中。
Ⅰ 标号可放在任意语句前,通常与for、while或do语句配合使用。语法格式为:标号:语句;
Ⅱ break语句
概念:可用于3类语句中,第一类是switch语句中,第二类再for、while、do循环语句中,第三类在语句块中。break意义是跳过本快中余下的所有语句,转到快尾,执行其后的语句。
实例参考P62
Ⅲ continue语句
概念:continue语句可以立即结束当次循环,开始执行下一次循环。语句格式:continue标号;
第三节:简单的输入、输出
① Scanner类:P64
Ⅰ 用于方便读入不同类型的输入值。
Ⅱ 调用Scanner类方法,先创建一个Scanner对象,使用new运算,读入键盘输入为:Scanner scan = new Scanner (System. in );
Ⅲ Scanner类的构造方法接受一个参数,这个参数代表了输入源。
Ⅳ Scanner对象用空白作为输入的分隔元素。
Ⅴ Scanner类的next()方法读入下一个输入对象,将他作为字符串返回。
②NumberFormat类和DecimalFormat类 P65
Ⅰ NumberFormat类提供对数值进行格式化操作的一般功能
Ⅱ NumberFormat类只能直接使用类名调用一个特殊的静态方法来得到一个对象,比如,NumberFormat类中的getInstance()方法,将参数按相应的模式格式化后作为字符串返回。
Ⅲ NumberFormat类中常用方法如下:
*getInstance():返回当前默认语言环境的默认数值格式
*getCurrencyInstance():返回当前默认语言环境的通用格式
*getNumberInstance():返回当前默认语言环境的通用数值格式
*getPercentInstance():返回当前默认语言环境的百分比格式
*setMaximumFractionDigits( int ) :设置数值的小数部分允许的最大位数。
*setMaximumIntegerDigits ( int ): 设置数值的整数部分允许的最大位数。
*setMinimumFractionDigits ( int ):设置数值的小数部分允许的最小位数
*setMinimumIntegerDigits (int):设置数值的证书部分允许的最小位数
Ⅳ DeciamlFormat类按惯例使用new运算符来实例化对象。构造方法要带一个String类型的参数,这个参数表示格式化处理模式。然后可以使用format()方法对一个具体的值进行格式化,之后还可以调用applyPattern()方法来改变对象要使用的模式。
第四节:处理异常
错误分两类:一种非致命性,被称为异常。 第二种为致命性,就称之为错误。
①异常及处理机制
为了解决问题,JAVA提供了异常处理机制,预定义了Exception类。Exception类中定义了程序产生异常的条件。
②异常分类:
概念:JAVA语言在所有的预设包中都定义了异常类和错误类。Exception类是所有异常类的父类,Error类是所有错误类的父类,这两个类同时又是Throwable类的子类。
异常分三种:1.受检异常,必须被处理 2.运行时异常,还不需要处理 3错误,不需要处理
Ⅰ受检异常:是程序执行期间发生严重事件的后果,例如程序从磁盘读入数据,而系统找不到含有数据文件,称为受检异常。
Ⅱ 运行时异常:是程序中逻辑错误的结果,例如下标越界导致ArrayIndexOutOfBounds异常。
Ⅲ 错误:是标准类Error或其后代类的一个对象,Error是Throwable的后代。
③异常处理:
当发生异常时,程序会终端执行,并输出信息。一般有两种处理方法:1.在方法内处理异常,2.或是告诉方法的调用者来处理
详情p70-71
④公共异常:
1.ArithmeticException:整数除法中,除数为0,则发生该异常。
2.NullPointerException:如果一个对象没有实例化,那么访问对象或调用它将出现该异常。
3.NegativeArraySizeException:常规,数组元素个数应是大于等于0的整数,如果创建数组时,元素个数是负数,引出该异常。
4.ArrayIndexOutOfBoundsException:数组下标越界,将导致该异常。
⑤抛出异常:
程序员处理异常方法有两种。一种为使用try块和catch块。捕获到所发生的异常类,进行处理。
catch块可以为空,表示对发生的异常不进行处理。
如果一个方法引发了一个异常,自己不进行处理,就要由调用者进行处理,例如抛出异常的throw语句,则要在方法头添加一个throws子句。