




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、情境3 产品库存管理系统面向对象设计,学习情境描述,要求根据第一个情境的需求分析结果,学生成立项目开发小组,划分角色,推选项目经理和CTO(首席技术师),程序员。经过讨论给出产品库存管理系统中的实体类:入库单、出库单、库存和用户类和控制类接口的详细设计;利用情境2搭建好的环境,对每个类予以编程实现。,所需知识,类的定义与对象的创建 构造方法的作用及应用 面向对象三大特征:封装性、继承性和多态性的Java语言实现 抽象类与接口的应用 包的创建与使用 访问控制符的应用 异常处理,重点及难点,构造方法的作用及应用 面向对象三大特征:封装性、继承性和多态性的Java语言实现 抽象类与接口的应用 异常处
2、理,能力目标,培养学生面向对象的编程能力 培养学生良好的团队合作意识及沟通协调能力、接收新知识的能力 培养学生分析问题、解决问题的能力、创新能力以及逻辑思维能力,任务一,用Java语言描述现实世界中的Person。,学生讨论确定Person的特征 譬如:name-姓名,age-表示年龄,sex-表示性别等。 确定Person相关的行为 譬如:吃饭、睡觉等。,用Java语言实现Person类,复习引入,面向对象与面向过程的区别?,面向对象编程,面向对象编程是软件设计与实现的有效方法,它将客观世界中存在的事物看作对象,每个客观事物都有自己的特征和行为。,对象的基本概念,变量,方法,客观世界的实体,
3、程序中对象,对象具有两方面的含义(考虑从哪些方面描述对象),面向对象的基本概念,类是抽象的,对象是具体的,具有相同特征和行为的对象被抽象为类。 类是对象的模板,包括一个对象的所有数据和代码。,类的示例,形状类,动物类,汽车类,对象,“对象是存在的具体实体,具有明确定义的状态和行为。”,对象的示例,收银员对象,顾客对象,顾客 姓名:朱丽叶 年龄:28 体重:52千克 操作: 购买商品,状态,姓名:布兰尼 职衔:收银员 年龄:35 体重:60千克 操作: 收款 打印帐单,行为,消息传递,“消息指一个对象为执行某项特定操作而向另一个 对象发送的请求”,类和对象的示例,雇员,收银员,系统管理员,仓库管
4、理员,面向对象技术的实现,对象、类和实体的关系,类是创建对象的模板,对象是类的实例,类的基本概念,现实生活中的对象,class Car int color; int name; int speed; void brake() void speedUp() void slowDown() ,抽象数据类型,程序中的对象,映 射,描述,实 现,类定义,类定义中必须要写类名,应该使用Java语言合法的标识符来命名 类名不能与java中已定义好的类名相同,格式: 修饰符class 类名 extends 父类名 implements 接口名表 成员变量声明 方法成员声明 ,其中class、extends和
5、implements都是Java的关键字。,类中的方法 6-1,方法的名称,参数列表,方法的主体,方法返回的对象类 型或原始类型,方法体,若局部变量与类的成员变量同名, 则类的成员变量被隐藏。,方法体是对方法的实现,它包括局部变量的声明以及所有合法的Java指令。方法体中声明的局部变量的作用域在该方法内部。,类的定义举例,class Car int color; int name; int speed; void brake() void speedUp() void slowDown() ,类的实现,任务一实现,class Person String name; int age; Strin
6、g sex; public void eat() System.out.println(Its delicious!); ,【实战】:定义一个名为Rectangle表示长方形的类,它包含double类型的长length和宽width两个数据成员和设置长方形长宽值的方法setDim()、计算长方形面积的方法area()。,类的实现,对象的创建,声明,类名 对象名;,声明并不为对象分配内存空间,而 只是分配一个引用空间,实例化,类名 对象名 = new 类名(),例:Person p=new Person();,运算符new为对象分配内存空间,它调用对象的构造方法,返回引用,初始化,另外执行构造方
7、法,可进行初始化,当一个变量被创建时,会对其中各种类型的成员变量自动按下表进行初始化赋值。,对象的使用,访问对象成员的一般形式为: 对象名.成员变量名 对象名.成员方法名(),运算符”.”在这里称为成员运算符,创建对象举例,class TestPerson public static void main(String args) Person p1=new Person(); =Tom; p1.age=12; p1.sex=male; p1.eat(); ,按照前面设计Person类来充当生产车间,创建Person对象,任务二,通过构造方法,初始化Person类的实例,为其成员变
8、量赋初值。,构造方法,在Java中,任何变量在被使用前都必须先设置初值。Java提供了为类的成员变量赋初值的专门功能:构造方法。,构造方法的特点,构造方法名与类名相同。 构造方法不返回任何值,也没有返回类型。 每一个类可以有零个或多个重载的构造方法。若没有为一个类显式的定义构造方法,则当创建类对象时,编译器将自动为它创建一个没有参数的默认构造方法. 构造方法只能在创建对象时通过new关键字来自动调用。,注意:一旦我们自己定义了构造方法,系统将不再为我们提供默认的不带参数的构造方法 。,class Person String name; int age; String sex; public P
9、erson(String s1) name = s1; public Person(String s1,int x) name = s1; age = x; ,任务二实现,public Person(String s1,int x,String s2) name= s1; age = x; sex = s2; public void eat() System.out.println(Its delicious!); ,class TestPerson public static void main(String args) Person p1=new Person(Tom); Person p
10、2=new Person(John,20); Person p3=new Person(Bob,22,male); System.out.println(+p1.age+p1.sex); System.out.println(+p2.age+p2.sex); System.out.println(+p3.age+p3.sex); ,通过构造方法赋初值,This引用句柄,构造方法的形式参数与类的成员变量名相同 在构造方法中调用其他重载的构造方法,用this(参数列表)的形式,自主学习内部类的定义和使用。,面向对象的基本特征,封装性、继承性、多态性是面向对
11、象的三个主要特性。,封装性的引入,class Person String name; int age; String sex; public void eat() System.out.println(Its delicious!); ,class TestPerson public static void main(String args) Person p1=new Person(); =Tom; p1.age=-12;/非法的值 p1.sex=male;System.out.println(“p1的年龄是:”+p1.age); ,通过实例启发学生思考为什么引入封装性?,封装
12、性的实现,外部世界,所谓封装,就是信息隐藏,隐藏对象的实现细节, 不让用户看到,封装的示例 3-1,接口,采购经理,罗杰斯先生,法拉力公司,.,迪斯尼汽车公司,.,市场经理,雪莉女士,要求,封装的示例 3-2,有选择地提供数据,法拉力公司,迪斯尼汽车公司,封装的示例 3-3,实体法拉力公司,实体迪斯尼汽车公司,Auti Ltd,.,Buto Ltd,.,设置器和访问器方法,封装举例,class Person private int age; public void setAge(int i) if(i130) return; age = i; public int getAge() retur
13、n age; ,将其设为私有的,方法设为公有,封装的好处,任务三,定义Person类的子类Student类,继承性,类继承是指一个类可以继承其他类的非私有成员,实现代码复用。 被继承的类称为父类,继承父类后产生的类称为子类。,继承,父 类,子类,继承的实现,class SubClass extends SuperClass ,Java中的继承是通过extends关键字来实现的。,关键字,任务三实现,class Student extends Person String school; public void study() System.out.println(Studding); publi
14、c static void main(String args) Person p=new Person(); =Tom; p.age=30; p.getInfo(); Student s=new Student(); =John; s.age=16; s.school=“清华大学”; s.getInfo(); s.study(); ,继承的特点,注意:在Java语言中,只允许单继承。,继承的优点,构造方法的继承,构造方法不能继承,但子类在创建对象时要对继承来自父类的成员进行初始化,因此,在创建子类时除了执行子类的构造方法外,还需要调用父类的构造方法,具体遵循原则如下:,
15、当子类未定义构造方法时,创建对象时将无条件地调用父类的无参构造方法; 对于父类的含参数构造方法,子类可以在自己构造方法中使用super调用它,但super调用语句必须是子类构造方法中的第一个可执行语句; 子类在自己的构造方法中如果没有用super明确调用父类的构造方法,则在创建对象时,将自动先执行父类的无参构造方法,然后再执行自己定义的构造方法。,任务四,对上例中Student 类继承了父类的所有非私有方法进行重写,多态性,方法重写实现的 动态多态性 (运行时多态),方法重载实现 的静态多态性 (编译时多态),多态性,方法重写,class Rectangle int length; int w
16、idth; Rectangle(int len , int wid) length = len; width = wid; /* 计算矩形的周长.*/ void getPerimeter() System.out.println(“矩形的周长为 + (2 * (length + width); ,方法重写,class Square extends Rectangle Square(int len) length = len; /* 计算周长.*/ void getPerimeter() System.out.println(“正方形的周长为 + (4 * length); ,public st
17、atic void main(String arg) Rectangle rectObj = new Rectangle(10, 15); rectObj.getPerimeter(); Rectangle sqObj= new Square(15); sqObj.getPerimeter(); ,调用父类方法,调用子类方法,任务四实现,class Person public String name; public int age; public void getInfo() System.out.println(name); System.out.println(age); public v
18、oid eat() System.out.println(Its delicious!); class Student extends Person String school; public void study() ,System.out.println(Studding); public void getInfo() System.out.println(name); System.out.println(age); System.out.println(school); public static void main(String args) Person p=new Person()
19、; =Tom; p.age=30; p.getInfo(); Student s=new Student(); =John; s.age=16; s.school=塔山小学; s.getInfo(); s.study(); ,多态性,【实战】:通过分析,编程实现上图,成员方法覆盖应注意的问题,覆盖方法的方法名、返回类型和参数列表必须与它所覆盖的方法相同 覆盖方法不能比它所覆盖的方法访问性更低 覆盖方法不能比它所覆盖的方法抛出更多的异常,成员变量的覆盖,若子类声明了与父类同名的变量,则父类的变量被隐藏起来,直接使用的是子类的变量,但父类的变量仍占据空间,可通过super或
20、父类名来访问。,程序运行结果: Subclass : 200 Superclass : 100,成员变量的覆盖,class A int x = 100; class B extends A int x = 200; void print() System.out.println(Subclass:+ x); System.out.println(Superclass:+ super.x); public static void main(String args) (new B().print(); ,成员变量的覆盖,类对象之间的类型转换,父类对象和子类对象的转换需要注意以下原则:,子类对象可以
21、被视为是其父类的一个对象,反之则不可。 若一个方法的形式参数定义的是父类的对象,则调用该方法的实际参数可以使用子类对象。 若父类对象引用指向的实际是一个子类对象,则这个父类对象的引用可以用强制类型转换转化成子类对象的引用。,类变量 static 修饰符,我们在Person类中增加一个成员变量国籍, 并假设所有的人都来自中国,该如何实现?,思考?,类变量,country=China,static,静态变量或类变量,静态变量的访问:类名.变量名,类变量的应用,class Count public static void main(String args) User u1=new User(); u
22、1.login(); User u2=new User(); u2.login(); ,class User static int count=0; void login() count+;System.out.println(你是第+count+位访问者); ,类方法 static修饰符,static修饰符修饰的方法叫静态方法,目的:使方法独立于类的实例,使用类去访问,类方法,调用静态方法的语法为: classname.methodname( );,类方法的应用,public class IsPrime public static boolean prime(int x) for(int k
23、=2;k=Math.sqrt(x);k+) if(x%k=0) return false; return true; ,Class TestIsPrime public static void main(String args) for(int m=10;m=100;m+) if(IsPrime.prime(m) System.out.println(m+“是素 数。); ,类方法的应用,为什么main()方法要用static来修饰?,思考?,final 修饰符,任务五,思考:怎样用一个方法实现两种体积的计算,编程实现计算圆柱体和长方体的体积,抽象类,由abstract修饰的方法叫抽象方法,抽
24、象方法没有方法体;包含抽象方法的类叫抽象类,由abstract修饰。 抽象方法必须声明在抽象类中。 抽象方法语法: abstract type method_name(parameter_list); 声明抽象类语法: abstract class 使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方法的实现细节,任务五实现,abstract class Shape . . . . . . . . . . . double length; double width; double height; double radius; . . . . . . . . . . .
25、abstract double vol(); ,class Circle extends Shape * 计算圆柱体的体积. . . . . . . . . . . . double vol() return Math.PI*radius*radius*height; ,class Rectangle extends Shape * 计算长方体的体积. . . . . . . . . . . . double vol() return length * width*height; ,抽象类,抽象类可以具有指向子类对象的对象引用,任务六,通过接口计算边长分别为3和4的长方形面积,接口,接口的定义
26、,public interface Myinterface int compute(int x, int y); ,使用interface关键字定义一个接口:,接口的实现,public calss Myclass implements Myinterface public int compute(int x, int y) return x+y; ,public calss Yourclass implements Myinterface public int compute(int x, int y) return x*y; ,注意:若实现接口的类不是抽象类,则在该类的定义部分必须实现指定接
27、口的所有抽象方法。,接口的继承,接口可以通过关键字extends继承其他接口 例如:Interface B Interface A extends B ,interface A String a = 在接口A中; void showA(); interface B extends A String b = 在接口B中; void showB(); class InterfaceABC implements C public void showA() System.out.println(a); public void showB() System.out.println(b); ,接口的继承举
28、例,程序运行结果: 在接口A中 在接口B中,public class UseInterface1 public static void main(String args) int x = 5,y=10; Myinterface o; Myclass my = new Myclass(); o = my; System.out.println(xy的和=“ + pute(x,y); Yourclass you = new YourClass(); o = you; System.out.println(“xy的积= + pute(x,y); ,接口类型的使用,接口可以作为一种引用类型来使用,接口
29、的优点,接口的使用使得方法的描述说明和方法功能的分开,有助于降低程序的复杂性,使程序设计灵活,便于扩充修改。这也是Java面向对象程序设计方法中多态特性的体现。,任务六实现,interface Irect double w=3,l=4; void compute(); ,定义接口,class Crect implements Irectpublic void compute() System.out.println(边长分别为3和4的长方形面积为:+w*l); ,定义实现接口的类,class InterfaceDemo public static void main(String args)
30、Crect r = new Crect(); pute(); ,定义主类 创建接口对象,综合实战,(1)根据要求实现Circle类: 成员变量:radius半径 成员方法:Circle()构造方法,将半径置0 Circle(double r )构造方法,将半径初始化为r double getRadius()获取圆的半径 double getPerimeter()获取圆的周长 double getArea()获取圆的面积 void disp()将圆的半径、周长和面积输出到屏幕 (2)通过继承Circle类,派生圆柱体类Cylinder: 成员变量:height高 成员方法:Cylinder(do
31、uble r,double h) 构造方法,初始化半径和高 double getHeight()获取圆柱体的高 double getVol()获取圆柱体体积 void dispVol()将圆柱体体积输出到屏幕,包,包将类和接口有机地组织成层次结构,与具体的文件系统的目录树结构层次一致。 包允许将类组合成较小的单元,使其易于找到和使用相应的类文件。 有助于避免命名冲突。 包允许在更广的范围内保护类、数据和方法。,创建包,package 包名1.包名2.,语法格式如下:,注意:在Java程序中,package语句必须是程序的第一条非空格、非注释语句。,创建包举例,package mypackage
32、; public class Person public String name; public int age; public void getInfo() System.out.println(name); System.out.println(age); public void eat() System.out.println(Its delicious!); ,导入包,1、使用import语句 import 包名.标识符; import 包名.*;,2、直接使用包 java.applet.Applet ap = new java.applet.Applet();,导入包举例,packa
33、ge yourpackage; import mypackage.Person; class Student extends Person String school; public void study() System.out.println(Studding); public static void main(String args) Student s=new Student(); =John; s.age=16; s.school=清华大学; s.getInfo(); s.study(); ,访问修饰符,访问修饰符,访问修饰符,访问修饰符,访问修饰符的使用,【实战】通过对
34、任务六的Person类和Student类设置包和访问修饰符,掌握访问修饰符的使用,包装类,Java语言中专门提供了包装类,将基本类型包装成类。与基本类型对应的包装类有Byte 、Short 、Integer 、Long 、Character 、Float 、Double 、Boolean 和Void ,可以完成一些数据的转换。,通过通过查看JDK帮助文档自主学习,任务七,从一个代表带有路径的文件名中分离出文件名和路径,类String字符串定义,可以用字符串常量直接初始化一个String对象 String s = Hello World ; 通过构造方法,String构造方法的使用举例,Stri
35、ng s,s1,s2,s3,s4,s5,s6,s7; byte byteArray =(byte)J,(byte)a,(byte)v,(byte)a; Char charArray = 程,序,设,计; StringBuffer sb = new StringBuffer(欢迎); s = new String(Hello!); s1 = new String(); s2 = new String(s); s3 = new String(sb); s4 = new String(charArray,2,2); s5 = new String(byteArray,0); s6 = new Str
36、ing(charArray); s7 = new String(byteArray,0,0,1);,字符串,长度,由 length() 方法确定,语法,public int length();,返回字符串中的字符数,String的常用方法字符串长度,String name = John Smith; System.out.println (name.length();,String的常用方法字符串比较,字符串 1,字符串 2,字符串 1,字符串 2,由 equals() 方法确定,检查组成字符串内容的字符,同一个对象,用 = 运算符检查,检查字符串是否指向同一个或不同的对象,public cl
37、ass StringCompare public static void main(String args) String s1=abc; String s2=abc; String t1=new String(abc); String t2=new String(abc); System.out.println(s1=s2); System.out.println(s1.equals(s2); System.out.println(t1=t2); System.out.println(t1.equals(t2); ,字符串比较举例,程序运行结果如下: true true false true
38、,思考:为什么?,Java在编译时对字符串常量的存储有一个优化处理策略,相同字符串常量只存储一份,字符串比较方法,搜索字符串,搜索字符串举例,public class SearchString public static void main(String args) String name = JohnS; System.out.println(“Email ID 是: + name); System.out.println(“ 的索引是: + name.indexOf(); System.out.println(“. 的索引是: + name.indexOf(.); if (name.ind
39、exOf(.) name.indexOf() System.out.println(“该电子邮件地址有效); else System.out.println(“该电子邮件地址无效); ,提取字符串方法,提取字符串,. char ch; ch = orange.charAt(3); .,它将从 index(3) 中提取单个字符串 “n”并将其存储在变量 ch 中,提取字符串举例,public class StringMethods public static void main(String args) String s = Java is a + platform independent la
40、nguage; String s1 = Hello world ; String s2 = Hello; System.out.println(s); System.out.println(index of t = + s.indexOf(t); System.out.println(last index of t = +s.lastIndexOf(t); System.out.println(index of(t, 10) = +s.indexOf(t, 10); System.out.println(s1.substring(3, 8); System.out.println(s2.con
41、cat(World); System.out.println(s2.replace(l, w); System.out.println(s1.trim(); ,任务七实现,public class GetFilename private String fullPath; private final char pathSepatator=; public GetFilename(String fname) fullPath=fname; public String getName() int pos=fullPath.lastIndexOf(pathSepatator); if(pos=-1)
42、return fullPath; else return fullPath.substring(pos+1); ,public String getPath() int pos=fullPath.lastIndexOf(pathSepatator); if(pos=-1) return fullPath; else return fullPath.substring(0,pos); public static void main(String args) GetFilename fn=new GetFilename(F:avamyexamplea.java); System.out.print
43、ln(fn.getName(); System.out.println(fn.getPath(); ,更改字符大小写方法,Hello,使用 toUpperCase( ) 方法,HELLO,HELLO,使用 toLowerCase( ) 方法,hello,语法,public String toUpperCase();,语法,Public String toLowerCase();,更改字符大小写方法举例,public class StringTest public static void main(String args) String name = new String(George); Sy
44、stem.out.println(“姓名是 + name); int length = name.length(); System.out.println(“姓名的长度为 ” + length + “ 个字符); System.out.println(“姓名用大写形式表示为: ); String nameUppercase = name.toUpperCase(); System.out.println(nameUppercase); ,任务八,判断一个字符串是否为回文,即将一个字符串进行反转,得到的字符串与源串相同:例如原始字符串为“aba”, 逆转后的字符串也为“aba”。,StringB
45、uffer 类,StringBuffer 用于表示可以修改的字符串 使用连接运算符 (+) 的字符串会自动创建字符串缓冲对象,StringBuffer 类的方法,不变性,String类,创建后,直接修改,不变性的概念,解决方法,StringBuffer 类,String 的对等类,表示可增加和可编 写字符的可变序列,将字符插入到字符串中间 或附加到字符串末尾,不变性举例,public class StringBuf public static void main(String args) StringBuffer buf = new StringBuffer(Java); buf.append
46、(“ Guide Ver1/”); buf.append(3); int index = 5; buf.insert(index, Student ); index = 23; buf.setCharAt(index, .); int start = 24; int end = 25; buf.replace(start, end, 4); String s = buf.toString(); /转换为字符串 System.out.println(s); ,任务八实现,public class StringReverse public static void main(String args)
47、 String s=I am a Chinese; int len=s.length(); StringBuffer dest=new StringBuffer(len); for(int i=len-1;i=0;i-) dest.append(s.charAt(i); System.out.println(dest.toString(); ,main方法的参数,main方法的形参为String类的数组参数args,args可以用来接收Java命令行传送给Java应用程序的数据。例如: java HelloEcho How are you? 123,若要将包含多个空格的单词作为一个字符串,可用
48、引号括起来。例如: java HelloEcho How are you? 123,main方法的参数举例,class CommandLine public static void main(String args) for(int i=0; iargs.length; i+) System.out.println(args + i + : + argsi); ,显示所有命令行参数,Java异常处理,任务九,public class ExceptionRaised public ExceptionRaised() public int calculate( int operand1, int
49、operand2) int result = operand1 / operand2; return result; public static void main(String args) ExceptionRaised obj = new ExceptionRaised(); int result = obj.calculate(9, 0); System.out.println(result); ,异常情况,异 常,程序突然终止并将控制交给操作系统,在运行时发生的错误,什么是异常,在程序运行过程中发生的、会打断程序正常执行的事件称为异常(Exception),也称为例外。,例如,零用作除
50、数(产生算术异常ArithmeticException)、 在指定的磁盘上没有要打开的文件(产生文件未找到异常 FileNotFoundException) 数组下标越界(产生数组下标越界异常 ArrayIndexOutOfBoundsException)等,常见 异常,异常类的层次,为内部错误,因此在正常情况下不期望用户的程序捕获它们,Java虚拟机在运行时生成的例 外,由系统检测, 用户可不做处 理,系统将它们交给缺省的异常 处理程序,程序中可预知的问题,可能会带来意想不到的结果,Java程序必须捕获或声明所有的非运行时异常,异常处理机制,捕获异常,声明抛出异常,throws,Try-ca
51、tch,消极的处理方式,积极的处理方式,捕获异常,捕获异常是通过try-catch-finally语句实现的。,try,finally,catch,try 和 catch 块,try,catch,异常,单 元,任务九的解决方案一,public class ExceptionRaised public ExceptionRaised() public int calculate( int operand1, int operand2) int result=0; try result = operand1 / operand2; catch (Exception e) System.err.pr
52、intln(发生异常: + e.toString(); e.printStackTrace(); return result; ,指明catch可以捕获并处理的异常类型,调用异常类的方法,异常类的常用方法,实战,阅读下列程序代码,分析程序可能产生的异常情况,捕获并处理异常。,public class ExceptionDemo int array=1,2,3,4,5,6,7,8,9,0; public void exceptest(int j) for (int i=0;ij;i+) System.out.println(array+i+=+arrayi); public static voi
53、d main(String args) ExceptionDemo ex=new ExceptionDemo(); ex.exceptest(11); ,多重 catch 块2-1,一段代码可能会生成多个异常 当引发异常时,按顺序查看每个 catch 语句,并执行第一个类型与异常类型匹配的语句 执行其中的一条 catch 语句之后,其他的 catch 语句将被忽略,try . catch(ArrayIndexOutOfBoundsException e) catch(Exception e) ,多重 catch 块2-2,try . catch(Exception e) catch(Array
54、IndexOutOfBoundsException e) ,使用多重 catch 语句时,异常子类一定要位于异常父类之前。,多重 catch 块示例,class ExceptionCode public void calculate() try int num = 0; int num1 = 42 / num; int c = 1,2,3,4 ; c4 = 99; catch (Exception e) System.out.println(父类异常 catch 子句); catch (ArithmeticException ae) / 错误 不能到达的代码 System.out.printl
55、n(这个子类的父类是exception 类,且不能到达); ,class UnreachableCode public static void main(String args) ExceptionCode obj = new ExceptionCode(); obj.calculate(); ,finally 块,try、catch 和 finally 块的执行流程,finally子句可以保证,无论try块中是否抛出异常,finally块中的语句都会被执行到,这样可以对程序的状态作统一的管理。 finally语句对增强程序的鲁棒性非常重要。,try 块,finally 块,catch 块,无
56、异常,异常,异常处理块的一般形式,try / 要监控错误的代码块 catch (Exception e) / Exception e 的异常处理程序 finally / 在 try 结束前要执行的代码块 ,finally块示例,public class SystemException public static void main(String args) int a = 68; int b = 0; try System.out.println(a / b); / 0用作了除数 catch(ArithmeticException e) System.out.println (“0用作了除数”); return; fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业管理新人培训心得体会
- 重症监护有创血压监测流程他
- 基层妇幼工作站出生缺陷防控管理制度与措施他
- 河道养护管理施工方案与技术措施
- 2025年教导处学生安全计划
- 护理创新思维培养培训计划
- 学校教科研评价体系心得体会
- 制造业销售年终总结与计划
- IT运维岗位KPI绩效考核表及工作职责
- 新人教版四年级英语口语教学计划
- 国家开放大学《药物治疗学(本)》形考作业1-4参考答案
- 基于深度学习的光学图像海面舰船目标智能检测与识别技术探究
- 一年级家长心理辅导课件
- DB50-T 1808-2025“一表通”智能报表市级业务数据规范
- 《太阳能电池片制造培训》课件
- 特殊饮食情况的案例讨论试题及答案
- 深圳辅警考试试卷真题及答案
- 收楼验房知识培训课件
- 林草行业安全生产
- 防中暑课件部队
- 《洗红领巾》(教案)-2024-2025学年二年级上册劳动苏科版
评论
0/150
提交评论