Microsoft Word - 新正文.doc

Size: px
Start display at page:

Download "Microsoft Word - 新正文.doc"

Transcription

1 第 5 章继承和接口 本章主要讲解 Java 语言继承和多态的概念及其实现 ; 介绍包和接口的概念及其使用 继承和多态的概念及其实现 super 的使用 包的使用 接口的使用 5.1 类的继承 继承性是面向对象程序设计语言的一个重要特征, 通过继承可以实现代码的复用 Java 语 言中, 所有的类都是直接或间接地继承 java.lang.object 类 子类继承父类的属性和方法, 同时 也可以增加属性和方法, 在 Java 语言中不支持多继承, 但可通过实现接口来实现多继承功能 类继承的实现 1. 创建子类 Java 中的继承是通过 extends 关键字来实现的, 在定义新类时使用 extends 关键字指明新 类的父类, 就在两个类之间建立了继承关系 创建子类的一般格式为 : [ 修饰符 ] class 子类名 extends 父类名 { // 类体 子类名为 Java 标识符, 子类是父类的直接子类 如果父类又继承某个类, 则子类存在间 接父类 如果默认 extends 子句, 则该类的父类为 java.lang.object 子类可以继承父类中访问 控制为 public protected default 的成员变量和方法, 但不能继承访问控制为 private 的成员 变量和方法 例 5-1 类的继承实例 class Point{ int x,y; void setxy(int a,int b){ x=a;y=b; void showlocation(){ // 定义父类 // 表示位置 // 显示位置

2 第 5 章继承和接口 77 System.out.println("Location:("+x+","+y+")"); class Rectangle extends Point{ // 定义子类 int width,height; // 定义矩形的宽和高 int area(){return width*height; // 计算矩形的面积 void setwh(int w,int h){width=w; height=h; void showlocarea(){ // 显示位置和面积 showlocation(); // 继承父类成员 System.out.println("Area:"+area()); 程序运行结果为 : Location:(100,200) Area: 成员变量的隐藏和方法的重写 在类的继承中, 若子类定义了与父类相同名字的成员变量, 则子类继承父类的成员变量 被隐藏 这里所谓的隐藏是指子类拥有两个相同名字的变量, 一个继承自父类, 另一个是自 己声明的 当子类执行继承自父类的方法时, 处理的是继承自父类的成员变量 ; 当子类执行 它自己声明的方法时, 操作的是它自己声明的变量, 而把继承父类的相同名字的变量 隐藏 起来 子类定义了与父类相同的成员方法, 包括相同的名字, 参数列表和相同返回值类型 这 种情况称为方法重写 行为 一般出现下面情况需要使用方法重写 : (1) 子类中实现与父类相同的功能, 但采用的算法或计算公式不同 (2) 在子类的相同方法中, 实现的功能比父类更多 (3) 在子类中需要取消从父类继承的方法 子类通过成员变量的隐藏和方法的重写可以把父类的属性和行为改变为自身的属性和 例 5-2 方法重写实例 import java.io.*; class Point{ int x,y; void setxy(int a,int b){ x=a;y=b; void show(){ System.out.println("Location:("+x+","+y+")"); class Rectangle extends Point{ int y; int width,height; int area(){ return width*height; void setwhy(int w,int h,int yy){width=w; height=h; y=yy; void show(){ System.out.println("Location:("+x+","+y+")");

3 78 Java 语言程序设计 ( 第二版 ) System.out.println("Area:"+area()); 程序运行结果为 : Location:(100,300) Area: super 关键字 super 表示当前对象的直接父类对象, 是当前对象的直接父类对象的引用 所谓直接父 类是相对于当前对象的其他 父类 而言 super 代表的是直接父类 若子类的数据成员或 成员方法名与父类的数据成员或成员方法名相同, 当要调用父类的同名方法或使用父类的 同名的数据成员时, 则可以使用关键字 super 来指明父类的数据成员和方法 super 的使用 方法有以下 3 种 : 用来访问直接父类中被隐藏的数据成员, 其使用形式如下 : super. 数据成员 用来调用直接父类中被重写的的成员方法, 其使用形式如下 : super. 成员方法 用来调用直接父类的构造方法, 其使用形式如下 : super( 参数 ) 例 5-3 super 的使用 class A{ int x,y; public A(int x,int y){ this.x=x; this.y=y; // 定义父类 // 父类构造方法 public void display(){ System.out.println("In class A: x="+x+", y="+y); class B extends A{ // 子类 int a,b; public B(int x,int y,int a,int b){ super(x,y);this.a=a; this.b=b; public void display(){ // 子类构造方法 // 方法重写 super.display(); System.out.println("In class B: a="+a+", b="+b); 程序运行结果为 : In class A: x=1, y=2 In class B: a=3, b= 抽象类和抽象方法 1. 抽象类与抽象方法的声明 在 Java 中用 abstract 关键字修饰的类称为抽象类 用 abstract 关键字修饰的方法, 称为抽

4 第 5 章继承和接口 79 象方法 当一个类的定义完全表示抽象概念时, 它不应该被实例化为一个对象, 因此不能为 抽象类实例化对象, 也就是说 abstract 类必须被继承,abstract 方法必须被重写 抽象类体现 数据抽象的思想, 是实现程序多态性的一种手段 定义抽象类的目的是子类共享 子类可以 根据自身需要扩展抽象类 抽象类和抽象方法有以下特征 : 抽象类不能实例化, 即不能用 new 生成一个实例对象 抽象方法只有方法名 参数列表及返回值类型, 抽象方法没有方法体 抽象方法必须在子类中给出具体实现 一个抽象类里可以没有定义抽象方法 但只要类中有一个方法被声明为抽象方法, 则该类必须为抽象类 若一个子类继承一个抽象类, 则子类需用覆盖的方式来实例化该抽象父类中的抽象 方法 若没有完全实例化所有的抽象方法, 则子类仍是抽象的 抽象方法可与 public protected 复合使用, 但不能与 final private 和 static 复合使用 在以下情况中, 某个类将被定义为抽象类 : 当类的一个或多个方法为抽象方法时 当类为一个抽象类的子类, 并且没有为所有抽象方法提供实现细节或方法主体时 当类实现一个接口, 并且没有为所有抽象方法提供实现细节或方法主体时 声明一个抽象类的格式为 : abstract class 类名 { 抽象类中可以包含抽象方法, 对抽象方法只需声明, 而不需要具体的内容, 格式如下 : abstract 数据类型方法名 ([paramlist]); 对于抽象方法声明格式,abstract 保留字不能缺少, 还需要注意如下内容 : (1) 声明格式中没有 { (2) 最后的 ; 不能省略 抽象类首先是一个类, 因此具有类的一般属性 抽象类必须被其他类继承, 抽象类中不 一定要包含抽象方法 但是如果一个类中包含了抽象方法, 也就是 abstract 关键字修饰的方法, 那么该类就必须声明为抽象类 在类中的方法中除构造方法 静态方法 私有方法不能声明 为抽象方法外, 其他任何方法都可以被声明为抽象方法 例如 : abstract class Employee { int basic = 2000; abstract void salary(); // 抽象类 // 抽象方法 class Manager extends Employee{ void salary() { System.out.println(" 工资等于 "+basic*5+8672); class Worker extends Employee {

5 80 Java 语言程序设计 ( 第二版 ) void salary() { System.out.println(" 工资等于 "+basic*2+4567); 2. 抽象类与抽象方法的使用 由于抽象类只预先确定了总体结构, 缺少实际内容或实现过程, 又不能被实例化, 所以 要发挥它的作用, 只能被继承, 把它作为父类, 在子类中创建对象, 同时将抽象方法重写 例 5-4 定义车类 import java.awt.color; abstract class Car { // 公用数据成员声明 public Color color; public int gearnum; public String tiretype; public float engine; // 公共抽象方法声明 public abstract void shiftgear(); public abstract void brake(); public abstract void aircon(); public abstract void headlight(); class Audi extends Car{ static int gearnum=5; public Audi () { tiretype="goodtire2085bt"; engine=2400.0f; // 车辆颜色 // 挡位数 // 轮胎型号 // 引擎排气量 // 换挡 // 刹车 // 开冷气 // 开大灯 // 声明 gearnum 为类变量 // 轮胎型号 // 排气量 public void shiftgear(){ // 换挡 System.out.println(" 轿车换挡方式 :"+ gearnum+" 挡 "); public void brake(){system.out.println(" 助力刹车系统 "); public void aircon(){; public void headlight(){; // 刹车 // 开冷气 // 开大灯 public class MyCar extends Audi{ private Color color; public MyCar() { color=color.blue; // 设置车辆颜色 public void equipment(){ System.out.println(" 我的车挡位数 :"+this.gearnum); System.out.println(" 我的车颜色 :"+this.color); System.out.println(" 我的车轮胎型号 :"+this.tiretype); System.out.println(" 我的车引擎排气量 :"+this.engine); public void shiftgear(){ // 换挡 - 重写的新方法 super.shiftgear(); System.out.println(" 我的车换挡方式 : "+this.gearnum+" 挡 " );

6 第 5 章继承和接口 81 程序的运行结果为 : 我的车挡位数 :5 我的车颜色 :java.awt.color[r=0,g=0,b=255] 我的车轮胎型号 :GoodTire2085BT 我的车引擎排气量 : 轿车换挡方式 :5 挡我的车换挡方式 :5 挡助力刹车系统 类对象之间的类型转换 类对象之间的类型转换, 是指父类对象与子类对象之间在一定条件下的相互转换 父类 对象与子类对象之间的相互转换规则如下 : (1) 子类对象可以隐式, 也可以显示转换为父类对象 (2) 处于相同类层次的类对象之间不能进行转换 (3) 父类对象在一定的条件下可以转换成子类对象, 但必须使用强制类型转换 例 5-5 类对象之间的类型转换的使用 class SuperClass{ int a=5,b=8,c=85; void show(){system.out.println("a*b="+(a*b)); class SubClass extends SuperClass{ int b=26,d=32; void show() { System.out.println("b+d="+(b+d)); public class ClassExchangeDemo{ public static void main(string args[]){ SuperClass super1,super2; // 声明父类对象 SubClass sub1,sub2; // 声明子类对象 super1=new SuperClass(); sub1=new SubClass(); System.out.println("super1.a="+super1.a+"\tsuper1.b="+super1.b+"\tsuper1.c="+super1.c); super1.show(); System.out.println("sub1.b="+sub1.b+"\tsub1.c="+sub1.c+"\tsub1.d="+sub1.d); sub1.show(); super2=(superclass)sub1; // 子类对象转换为父类对象 System.out.println("super2.a="+super2.a+"\tsuper2.b="+super2.b+"\tsuper2.c="+super2.c); System.out.println("super2.show():\t"); super2.show(); sub2=(subclass)super2; // 父类对象转换为子类对象 System.out.println("sub2.a="+sub2.a+"\tsub2.b="+sub2.b+"\tsub2.d="+sub2.d); System.out.println("sub2.show():\t"); sub2.show();

7 82 Java 语言程序设计 ( 第二版 ) 程序运行结果为 : super1.a=5 super1.b=8 super1.c=85 a*b=40 sub1.b=26 sub1.c=85 sub1.d=32 b+d=58 super2.a=5 super2.b=8 super2.c=85 super2.show(): b+d=58 sub2.a=5 sub2.b=26 sub2.d=32 sub2.show(): b+d=58 子类对象可以被看作是其父类的对象, 因此在程序中子类对象可以引用父类的数据成员 子类对象转换为父类对象时, 可以使用强制类型转换, 也可以使用默认转换方式, 直接把子 类对象引用赋值给父类对象引用 若父类对象引用指向的实际是一个子类对象的引用, 则这 个父类对象使用强制类型转换可转换为子类对象 5.2 类的多态 多态是面向对象的又一个重要特性, 与继承密切相关 在面向对象程序设计中, 类的功 能通过类的方法实现 多态是为类创建多个同名的方法, 通过方法的重载或子类重写父类方 法实现多态 方法重载 在同一个类中定义了多个同名而内容不同的成员方法, 称这些方法是重载的方法 重载 的方法主要通过参数列表中参数的个数 参数的数据类型和参数的顺序来进行区分 在编译 时,Java 编译器检查每个方法所用的参数数目和类型, 然后调用正确的方法 例 5-6 求加法重载的例子 public class AddOverridden{ int add(int a,int b){ return (a+b); int add(int a,int b,int c){ return (a+b+c); double add(double a,double b){ return (a+b); double add(double a,double b,double c){ return (a+b+c); 程序运行结果为 : Sum(37,73)=110 Sum(10,33,67)=110 Sum(97.88,36.99)= Sum(9.8,3.73,6.97)=20.5 该类中定义了 4 个名为 add 的方法 : 第一个方法是计算两个整数的和 ; 第二个方法是计 算三个整数的和 第三个方法是计算两个双精度浮点数的和 ; 第四个方法是计算三个双精度 浮点数的和 Java 编译器根据方法引用时提供的实际参数选择执行对应的重载方法

8 第 5 章继承和接口 方法重写 通过面向对象系统中的继承机制, 子类可以继承父类的方法 但是, 子类的某些特征可 能与从父类中继承来的特征有所不同, 为了体现子类的这类特性,Java 允许子类对父类的同 名方法重新进行定义, 即在子类中定义与父类中已定义的名称相同而内容不同的方法 这种 多态称为方法重写, 也称为方法覆盖 由于重写的同名方法存在于子类对父类的关系中, 所以只需要在方法引用时指明引用的 是父类的方法还是子类的方法, 就可以很容易把它们区分开来 对于重写的方法,Java 运行 时系统根据调用该方法的实例的类型来决定选择哪个方法调用 对于子类的一个实例, 如果 子类重写了父类的方法, 则运行时系统调用子类的方法 如果子类继承父类的方法, 则运行 时系统调用父类的方法 例 5-7 重写方法的调用 class A{ void display(){ System.out.println("A's method display() called!"); void print(){system.out.println("a's method print() called!"); class B extends A{ void display(){ System.out.println("B's method display() called!"); public class OverRiddenDemo1{ public static void main(string args[]){ A a1=new A(); a1.display(); a1.print(); A a2=new B(); a2.display(); a2.print(); 程序运行结果为 : A's method display() called! A's method print() called! B's method display() called! A's method print() called! 在上例中, 定义了类 A 和类 A 的子类 B 然后声明类 A 的变量 a1 a2, 用 new 建立类 A 的一个实例和类 B 的一个实例, 并使 a1 a2 分别存储 A 类实例引用和 B 类实例引用 Java 运行时系统分析该引用是类 A 的一个实例还是类 B 的一个实例, 从而决定调用类 A 的方法 display() 还是调用类 B 的方法 display() 方法重写时要遵循两个原则 : (1) 改写后的方法不能比被重写的方法有更严格的访问权限 (2) 改写后的方法不能比被重写的方法产生更多的例外 进行方法重写时必须遵循这两个原则, 否则编译器会指出程序出错 编译器加上这两个

9 84 Java 语言程序设计 ( 第二版 ) 限定, 是为了与 Java 语言的多态性特点一致而做出的 例 5-8 方法重写注意的原则 class SuperClass{ public void fun(){ class SubClass extends SuperClass{ protected void fun(){ public class OverRiddenDemo2{ public static void main(string args[]){ SuperClass a1=new SuperClass(); SuperClass a2=new SubClass(); a1.fun(); a2.fun(); 上面程序编译时产生下列错误 : fun() in SubClass cannot override fun() in SuperClass; attempting to assign weaker access privileges; was public 产生错误的原因在于 : 子类中重写的方法 fun() 的访问权限比父类中被重写的方法有更严 格的访问权限 5.3 接口 (interface) 在 Java 中通过 extends 实现单继承, 从类的继承上来讲,Java 只支持单继承, 这样可避 免多继承中各父类含有同名成员时在子类中发生引用无法确定的问题 但是, 为了某些时候 的操作方便 增加 Java 的灵活性, 达到多继承的效果, 可利用 Java 提供的接口来实现 一个接口允许从几个接口继承而来 Java 程序一次只能继承一个类但可以实现几个接 口 接口不能有任何具体的方法 接口也可用来定义由类使用的一组常量 接口的定义 Java 中的接口是特殊的抽象类, 是一些抽象方法和常量的集合, 其主要作用是使得处于 不同层次上以至于互不相干的类能够执行相同的操作 引用相同的值, 而且可以同时实现来 自不同类的多个方法 接口与抽象类的不同之处在于 : 接口的数据成员必须被初始化 ; 接口中的方法必须全部 都声明为抽象方法 接口的一般定义格式为 : [public] interface 接口名 { // 接口体 其中 interface 是接口的关键字, 接口名是 Java 标识符 如果缺少 public 修饰符, 则该接 口只能被与它在同一个包中的类实现 接口体中可以含有下列形式的常量定义和方法声明 :

10 第 5 章继承和接口 85 [public] [static] [final] 类型常量名 = 常量值 ; [public] [abstract] 方法类型方法名 ([ 参数列表 ]); // 数据成员必须被初始化 // 方法必须声明为抽象方法 其中, 常量名是 Java 标识符, 通常用大写字母表示 ; 常量值必须与声明的类型相一致 ; 方 法名是 Java 标识符, 方法类型是指该方法的返回值类型 final 和 abstract 在 Java 中可以省略 例如, 下列程序段声明了一个接口 : // 定义程序使用的常量和方法的接口 public interface myinterface { double price = ; final int counter = 555; public void add(int x, int y); public void volume(int x,int y, int z); 接口的实现 接口中只包含抽象方法, 因此不能像一般类一样, 使用 new 运算符直接产生对象 用户 必须利用接口的特性来打造一个类, 再用它来创建对象 利用接口打造新的类的过程, 称为 接口的实现 接口实现的一般语法格式为 : class 类名 implements 接口名称 { // 类体 例 5-9 求给定圆的面积 interface shape{ double PI= ; abstract double area(); class Circle implements shape{ double radius; public Circle(double r){radius=r; public double area(){return PI*radius*radius; 程序运行结果为 : // 接口的实现 Circle area= 在类实现一个接口时, 如果存在接口中的抽象方法, 在类中没有具体实现, 则该类是一 个抽象类, 不能生成该类的对象 接口的继承 接口也可以通过关键字 extends 继承其他接口 子接口将继承父接口中所有的常量和抽象 方法 此时, 子接口的非抽象实现类不仅要实现子接口的抽象方法, 而且需要实现父接口的 所有抽象方法 例 5-10 接口的继承 interface shape2d{ double PI= ;

11 86 Java 语言程序设计 ( 第二版 ) abstract double area(); interface shape3d extends shape2d{ double volume(); class Circle implements shape3d{ double radius; public Circle(double r) {radius=r; public double area(){return PI*radius*radius; public double volume(){return 4*PI*radius*radius*radius/3; 程序运行结果为 : Circle area= // 实现间接父接口的方法 // 实现直接父接口的方法 Circle vloume= 在 Java 中不允许有多个父类的继承, 因为 Java 的设计是以简单 实用为导向, 而利用类 的多继承将使得问题复杂化, 与 Java 设计意愿相背 虽然如此, 但通过接口机制, 可以实现 多重继承的处理 通过将一个类实现多个接口, 就可以达到多重继承的目的 例 5-11 实现多个接口 interface shape{ double PI= ; double area(); double volume(); interface color{void setcolor(string str); class Circle implements shape,color{ double radius; String color; public Circle(double r){ radius=r; public double area(){return PI*radius*radius; public double volume(){ return 4*PI*radius*radius*radius/3; public void setcolor(string str){ color=str; String getcolor(){ return color; 程序运行结果为 : Circle area= Circle vloume= Circle color=red 注意 : 在实现接口的类中, 定义抽象方法的方法体时, 一定要声明方法为 public, 否则 编译会出现如下的出错信息 : attempting to assign weaker access privileges; 中文含义为 : 试图缩小方法的访问权限

12 第 5 章继承和接口 接口的多态 接口的使用使得方法的描述和方法的功能实现分开处理, 有助于降低程序的复杂性, 使 程序设计灵活, 便于扩充和修改 例 5-12 求给定图形的面积 // InterfaceDemo4.java // 接口 shape interface shape{ double PI= ; abstract double area(); // 定义 Rectangle 类实现接口 shape class Rectangle implements shape{ double width,height; public Rectangle(double w,double h){width=w; height=h; public double area(){ return width*height; // 定义 Circle 类实现接口 shape class Circle implements shape{ double radius; public Circle(double r){radius=r; public double area(){return PI*radius*radius; 程序运行结果为 : Rectanle area=300.0 Circle area= 在上面的例子中, 定义了接口 shape, 并在类 Rectangle 和 Circle 中实现了接口, 但两个 类对接口 shape 的抽象方法 area() 的实现是不同的, 实现了接口的多态 5.4 包 (package) 在 Java 中, 把复用的代码组织到一起, 称为 包 包是一种将相关类 接口或其他包组织起来的集合体 目的是为了将包含类代码的文件组织起来, 易于查找和使用 包不仅能包含类和接口, 还能包含其他包, 形成有层次的包空间 包有助于避免命名冲突 当使用很多类时, 确保类和方法名称的唯一性是非常困难的 包形成层次命名空间, 缩小了名称冲突的范围, 易于管理名称 包的创建建立一个包的方法很简单, 只要将 package 这个关键字放在一个程序中所有类或实现接口的类或接口声明前, 并选定一个包名称, 这样所有用到此包名称的类及接口就成了此包的成员 创建包的一般语法格式为 : package PackageName;

13 88 Java 语言程序设计 ( 第二版 ) 关键字 package 后面的 PackageName 是包名 利用这个语句可以创建一个具有指定名字 的包, 当前.java 文件中的所有类都被放在这个包中 在 Java 程序中,package 语句必须是程序的第一个非注释 非空白行 行首无空格的一 行语句来说明类和接口所属的包 例如 : package MyPackage; package MyPackage1. MyPackage2; 创建包就是在当前文件夹下创建一个子文件夹, 存放这个包中包含的所有类的.class 文 件 在 package MyPackage1. MyPackage2; 语句中的符号. 代表目录分隔符, 说明这个语句 创建两个文件夹 : 第一个是当前文件夹下的子文件夹 MyPackage1; 第二个是 MyPackage1 文 件夹下的 MyPackage2 文件夹, 当前包中的所有类文件就存在这个文件夹下 若源文件中未使用 package, 则该源文件中的接口和类位于 Java 的默认包中 在默认包 中, 类之间可以相互使用 public protected 或默认访问权限的数据成员和成员方法 默认包中 的类不能被其他包中的类引用 包的引用 将类组织成包的目的是为了更好地利用包中的类 一般情况下一个类只能引用与它在同 一个包中的类 如果需要使用其他包中的 public 类, 则可以通过 import 这个关键词来引入, 例如 : import java.awt.color; 就是把 java.awt 包里的 Color 类引用进来, 如果需要引用整个包内所有的类及接口时, 就使用 * 号 : import java.awt.*; 在一个类中引用一个包中的类时, 可采用两种方式 : (1) 类长名 (Long Name), 即加上包名称的类名, 如 : javax.swing.jbutton button1=new javax.swing.jbutton (); (2) 类短名 (Short Name), 需要在类程序最前面引入包, 然后使用该类名, 如 : import java.awt.*; Color color1=new Color(); 例 5-13 包的应用实例 //shapes.java package shape; public interface shapes{ abstract double area(); abstract double circulms(); //locate.java package shape; class locate{ public int x,y;

14 第 5 章继承和接口 89 public locate(int x,int y){ this.x=x;this.y=y; //rectangle.java package shape; public class rectangle extends locate implements shapes{ public int width,height; public double area(){return width*height; public double circulms(){return 2*(width+height); public rectangle(int x,int y,int w,int h){ super(x,y); width=w; height=h; //circle.java package shape; public class circle extends locate implements shapes{ public double radius; public double area(){return Math.PI*radius*radius; public double circulms(){return 2*Math.PI*radius; public circle(int x,int y,double r){ super(x,y); radius=r; //PackageDemo.java package mypackage; import shape.*; public class PackageDemo{ public static void main(string []args){ 分别编译程序 shapes.java locate.java rectangle.java circle.java, 则建立包 shape, 包中 包含接口 shapes 和类 locate rectangle circle 编译并运行 PackageDemo.java 设置 CLASSPATH 环境变量 包是一种组织代码的有效手段, 包名实际上就是指出了程序中需要使用的.class 文件的所 在之处 另一个能指明.class 文件夹所在结构的是环境变量 CLASSPATH 当一个程序找不到 它所需使用的其他类的.class 文件时, 系统就会自动到 CLASSPATH 环境变量所指明的路径下 去查找 环境变量的设置在前面已经叙述过, 不再赘述 5.5 Java 类库及主要类的使用 Java 提供了强大的应用程序接口 (Java API), 即 Java 类库或 Java API 包 它包括大量已经设计好的工具类, 帮助编程人员进行字符串处理 绘图 数学计算 网络应用等方面的工作 在程序中合理和充分利用 Java 类库提供的类和接口, 可以大大提高编程的效率, 写出短小精悍的程序, 取得良好效果

15 90 Java 语言程序设计 ( 第二版 ) Java API 常用包 绝大多数 Java API 包都是以 java. 开头, 以区别用户创建的包 Java API 包含多种包, 下面主要介绍常用的几种包 : 1.java.lang 包 在所有的 Java API 类库中,java.lang 包是核心包, 它提供 Java 语言中 Object String 和 Thread 等核心类与接口 这些核心类与接口自动导入到每个 Java 程序中, 没有必要显示地导 入它们 java.lang 包中还包含基本类型包装类 访问系统资源的类 数值类和安全类等 下面分别介绍 java.lang 包中的常用类库 (1)java.lang.Object Object 类处于 Java 层次结构的最上层, 是所有类的父类 Java 语言中所有类都是直接或 间接继承 Object 类得到的 (2)java.lang.Object java.lang.boolean Boolean 与 Java 中的 boolean 布尔数据类型有所不同, 该类将一个基本类型 boolean 的值 封装在一个对象里 (3)java.lang.Object java.lang.character 该类封装了 Java 的基本字符类型数据及其对象的属性特征 (4)java.lang.Object java.lang.character.subset 该类是 Unicode 字符集的一个特殊子集 (5)java.lang.Object java.lang.class Class 类封装了类和对象的属性特征, 包含解释一个 Java 类的信息 没有公共的构造方法, Class 对象由 Java 虚拟机在通过调用类装载器中的 defineclass 方法装载类时自动构造 (6)java.lang.Object java.lang.classloader 抽象字节码的文件装载类, 定义将 Java 执行文件装载到 Java 执行环境内的规则 (7)java.lang.Object java.lang.compiler 用于支持 Java 本地码编译器以及相关的服务 (8)java.lang.Object java.lang.number java.lang.byte 字节类, 该类为 byte 类型数值提供一个对象包装器, 该类对象包含一个 byte 类型数据 主要数据成员 : Static byte MAX_VALUE: 代表 byte 类型整数最大值 Static byte MIN_VALUE: 代表 byte 类型整数最小值

16 第 5 章继承和接口 91 主要成员方法 : Static byte parse Byte (String s): 将字符串 s 转换为 byte 类型数据 Static byte parse Byte(String s, int radix): 将字符串 s 转换为 radix 进制 byte 类型数据 String tostring(): 将当前 byte 对象转换为字符串 static String tostring(byte d): 将 double 类型数据 d 转换为字符串 static Byte valueof(string s): 返回表示字符串 s 的 Byte 类型对象 static Byte valueof(string s, int radix): 返回表示字符串 s 的 radix 进制 Byte 类型 对象 (9)java.lang.Object java.lang.number java.lang.double 浮点数类, 该类为 double 数值提供一个对象包装器, 同时还提供将双精度数转换或传递 给 Java 对象作为参数接收的方法 主要数据成员 : static double MAX_VALUE: 代表 double 类型整数最大值 static double MIN_VALUE: 代表 double 类型整数最小值 主要成员方法 : static double parsedouble(string s): 将字符串 s 转换为 double 类型数据 String tostring(): 将当前 Double 对象转换为字符串 static String tostring(double d): 将 double 类型数据 d 转换为字符串 static Double valueof(string s): 返回表示字符串 s 的 Double 类型对象 (10)java.lang.Object java.lang.number java.lang.float 单精度浮点数类, 该类将 float 类型数据及其操作封装在对象中 主要数据成员 : static float MAX_VALUE: 代表 float 类型整数最大值 static float MIN_VALUE: 代表 float 类型整数最小值 主要成员方法 : static float parsefloat(string s): 将字符串转换为 float 类型数据 String tostring() : 将当前 Float 类对象转换为字符串 static String tostring(float f): 将 float 类型数据转换为字符串 static Float valueof(string s): 返回表示字符串 s 的 Float 类对象 (11)java.lang.Object java.lang.number java.lang.interger 将 Java 的基本类型 interger 封装在一个对象中 主要数据成员 : public static final int MIN_VALUE: 代表 int 类型整数最小值

17 92 Java 语言程序设计 ( 第二版 ) public static final int MAX_VALUE: 代表 int 类型整数最大值 主要成员方法 : public static String tostring(int i): 将 i 转换成字符串 public static String tostring(int i,int radix): 将 i 转换成 radix 进制整数字符串 public static String tohexstring(int i): 将 i 转换成 16 进制整数字符串 public static String tooctalstring(int i): 将 i 转换成 8 进制整数字符串 public static String tobinarystring(int i): 将 i 转换成 2 进制整数字符串 public static int parseint(string s,int radix) throws NumberFormatException: 将字符串 s 转换成 radix 进制整数 public static int parseint(string s) throws NumberFormatException: 将字符串 s 转换成 整数 static Integer valueof(string s): 将字符串 s 转换成 Integer 对象 static Integer valueof(string s, int radix): 将字符串 s 转换成 radix 进制的 Integer 对象 (12)java.lang.Object java.lang.number java.lang. Long 将 Java 的基本类型 long 封装在一个对象中 主要数据成员 : public static final int MIN_VALUE: 代表 long 类型整数最小值 public static final int MAX_VALUE: 代表 long 类型整数最大值 主要成员方法 : public static String tostring(long i): 将 i 转换成字符串 public static String tostring(long i,int radix): 将 i 转换成 radix 进制整数字符串 public static String tohexstring(long i): 将 i 转换成 16 进制整数字符串 public static String tooctalstring(long i): 将 i 转换成 8 进制整数字符串 public static String tobinarystring(longt i): 将 i 转换成 2 进制整数字符串 public static long parseint(string s,int radix) throws NumberFormatException: 将字符串 s 转换成 radix 进制 long 型整数 public static long parseint(string s) throws NumberFormatException: 将字符串 s 转换成 long 型整数 static Long valueof(string s): 返回表示字符串 s 的 Long 对象 static Long valueof(string s, int radix): 返回表示字符串 s 的 radix 进制的 Long 对象 (13)java.lang.Object java.lang.number java.lang.short 将 Java 的基本类型 short 封装在一个对象中 主要数据成员 : public static final short MIN_VALUE: 代表最小 short 类型整数 public static final short MAX_VALUE: 代表最大 short 类型整数

18 第 5 章继承和接口 93 主要成员方法 : public static String tostring(short i): 将 i 转换成字符串 public static String tostring(short i,int radix): 将 i 转换成 radix 进制整数字符串 public static short parseint(string s,int radix)throws NumberFormatException: 将字符串 s 转换成 radix 进制 short 型整数 public static int parseint(string s)throws NumberFormatException: 将字符串 s 转换成 short 型整数 static Short valueof(string s): 返回表示字符串 s 的 Short 对象 static Short valueof(string s, int radix): 返回表示字符串 s 转换成 radix 进制的 Short 对象 (14)java.lang.Object java.lang.math 数学类, 封装了一个标准的数学库, 包含一些完成基本算术运算的方法 前面讲述过, 不再赘述 (15)java.lang.Object java.lang.runtime 运行类, 封装了 Java 的执行环境, 可以通过 getruntime() 方法获得该类的实例 (16)java.lang.Object java.lang.system 提供与平台有关的系统功能, 包括输入 输出 加载动态库等 (17)java.lang.Object java.lang.string 字符串类, 用于常量字符串 Java 程序中的所有字符串都是通过该类的实例来实现的 (18)java.lang.Object java.lang.stringbuffer 字符串缓冲区类, 用于可变长度的字符串 (19)java.lang.Object java.lang. Throwable 是 Java 程序中的所有错误类与异常类的父类 (20)java.lang.Object java.lang.thread 线程类, 该类用于线程的创建以及线程控制 (21)java.lang.Object java.lang.threadgroup 线程组类, 用于将多个线程放在一个线程组中进行操作控制 (22)java.lang.Object java.lang.error Java 应用程序发生的严重错误, 不会被捕捉 (23)java.lang.Object

19 94 Java 语言程序设计 ( 第二版 ) java.lang.exception Java 应用程序发生的异常, 能够被捕捉 2.java.io 包 该包提供一系列用来读 / 写文件或其他输入 / 输出源的输入 / 输出流 其中有基本输入 / 输 出类 缓冲流类 比特数组与字符串流类 数据流类 文件流类 管道类 流连接类和异 常类等 3.java.util 包 包含一些低级的实用工具类 这些工具类实用方便, 而且很重要 主要有 : 日期类 堆 栈类 随机数类 向量类 4.java.net 包 包含一些与网络相关的类和接口, 以方便应用程序在网络上传输信息, 分为 : 主机名解 析类 Socket 类 统一资源定位器类 异常类和接口 5.java.awt 包 提供了 Java 语言中的图形类 组成类 容器类 排列类 几何类 事件类和工具类 6.java.applet 包 java.applet 是所有小应用程序的父类 它只包含一个 Applet 类, 所有小应用程序都是从 该类继承的 7.java.security 包 包含 java.security.acl 和 java.security.interfaces 子类库, 利用这些类可对 Java 程序进行加 密, 设定相应的安全权限等 8.javax.swing 包 该类库提供一个 轻量级 控件集 所有 swing 控件都是由 Java 程序写成, 并且尽可 能地实现平台的无关性 该类库中具有完全的用户界面组件集合, 是在 AWT 基础上的扩 展, 因此, 对于图形方面的 java.awt 组件, 大多数都可以在 javax.swing 类库中找到对应的 组件 想要了解更详细的 Java 类库中的内容, 参考 JDK 帮助文档, 其中包含 Java API 的所有包 类和接口 Math 类 Math 类是 java.lang 包的一部分 在 Math 类中提供一些方法以完成常见的数学运算,Math 类常用的方法如表 5-1 所示 表 5-1 Math 类一些常用方法 方法 功能 public static int abs(int x) public static long abs(long x) public static float abs(float x) public static double abs(double x) 取绝对值取绝对值取绝对值取绝对值

20 第 5 章继承和接口 95 续表 方法 public static double sin(double x) public static double cos(double x) public static double tan(double x) public static double asin(double x) public static double acos(double x) public static double atan(double x) public static double exp(double x) public static double log(double x) public static double sqrt(double x) public static double toradius(double x) public static double todegrees(double x) public static double pow(double x, double y) public static int max(int x, int y) public static long max(long x, long y) public static float max(float x, float y) public static double max(double x, double y) public static int min(int x, int y) public static long min(long x, long y) public static float min(float x, float y) public static double min(double x, double y) 求正弦求余弦求正切求反正弦求反余弦求反正切求指数取自然对数求平方根将角度值转为弧度值将弧度值转为角度值 x 的 y 次方 x y 中较大值 x y 中较大值 x y 中较大值 x y 中较大值 x y 中较小值 x y 中较小值 x y 中较小值 x y 中较小值 功能 Date 类 Date 类在包 java.util 中, 表示时间 从 JDK 1.1 开始大多数功能, 由 Calendar 类的方法替代, 这里仅介绍没有过时的一些方法 1. 构造方法与创建 Date 类对象 public Date(): 分配 Date 对象并初始化此对象, 以表示分配它的时间 ( 精确到毫秒 ) public Date(long date): 分配 Date 对象并初始化此对象, 以表示自从标准基准时间 ( 称为 新纪元 (epoch), 即 1970 年 1 月 1 日 00:00:00 GMT) 以来的指定毫秒数 2.Date 类常用方法 (1) 比较两个日期 public boolean before(date when): 测试此日期是否在指定日期之前 当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间早, 才返回 true; 否则返回 false public boolean after(date when): 测试此日期是否在指定日期之后 当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚, 才返回 true; 否则返回 false

21 96 Java 语言程序设计 ( 第二版 ) public boolean equals(object obj): 比较两个日期的相等性 当且仅当参数不为 null, 并且 是一个表示与此对象相同的时间点 ( 到毫秒 ) 的 Date 对象时, 结果才为 true 当且仅当 gettime 方法对于两个 Date 对象返回相同的 long 值时, 这两个对象才是相等的 public int compareto(date anotherdate): 比较两个日期的顺序 如果参数 Date 等于此 Date, 则返回值 0; 如果此 Date 在 Date 参数之前, 则返回小于 0 的值 ; 如果此 Date 在 Date 参数之 后, 则返回大于 0 的值 秒数 (2) 复制日期 public Object clone(): 返回此对象的副本 (3) 获取时间 public long gettime(): 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫 (4) 设置时间 public void settime(long time): 设置此 Date 对象, 以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点 (5) 转换为字符串 public String tostring(): 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中 : dow 是一周中的某一天 (Sun,Mon,Tue,Wed,Thu,Fri,Sat) mon 是月份 (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec) dd 是一月中的某一天 (01~31), 显示为两位十进制数 hh 是一天中的小时 (00~23), 显示为两位十进制数 mm 是小时中的分钟 (00~59), 显示为两位十进制数 ss 是分钟中的秒数 (00~61), 显示为两位十进制数 如果不提供时区信息, 则 zzz 为空, 即根本不包括任何字符 yyyy 是年份, 显示为 4 位十进制数 Date 对象表示时间的默认顺序是星期 月 日 小时 分 秒 年, 若要按照希望的格 式输入, 可以使用 DateFormat 的子类 SimpleDateFormat 来实现日期的格式化 Calendar 类 Calendar 类在 java.util 包中, 它是一个抽象类, 它为特定瞬间与一组诸如 YEAR MONTH DAY_OF_MONTH HOUR 等日历字段之间的转换提供了一些方法, 并为操作日历字段 ( 例 如获得下星期的日期 ) 提供了一些方法 瞬间可用毫秒值来表示, 它是距历元 ( 即格林威治 标准时间 1970 年 1 月 1 日的 00:00:00.000) 的偏移量 (1) 初始化日历对象 Calendar 提供了一个类方法 getinstance, 以获得此类型的一个通 用的日历对象 public static Calendar getinstance(): 使用默认时区和语言环境获得一个日历 返回的 Calendar 基于当前时间, 使用了默认时区和默认语言环境 例如 :

22 第 5 章继承和接口 97 Calendar rightnow = Calendar.getInstance(); 初始化一个 Calendar 对象, 其日历字段已由当前日期和时间值进行初始化 (2) 获得并设置日历字段值 可以通过调用 set 方法来设置日历字段值 在需要计算时 间值 ( 距历元所经过的毫秒 ) 或日历字段值之前, 不会解释 Calendar 中的所有字段值设置 调用 get gettimeinmillis gettime add 和 roll 涉及此类计算 该类为具体日历系统提供了一些常用的字段, 有 : public static final int YEAR: 指示特定日历的年 public static final int MONTH : 指示特定日历的月份, 一年中的第一个月是 JANUARY, 它为 0; 最后一个月取决于一年中的月份数 public static final int DAY_OF_MONTH: 指示一个月中的某天 它与 DATE 是同义 词 一个月中第一天的值为 1 public static final int HOUR: 指示上午或下午的小时 HOUR 用于 12 小时制时钟 (0-11) 中午和午夜用 0 表示, 不用 12 表示 例如, 在 10:04: PM 这一时刻, HOUR 为 10 public static final int MINUTE: 指示一小时中的分钟 例如, 在 10:04: PM 这 一时刻,MINUTE 为 4 public static final int SECOND: 指示一分钟中的秒 例如, 在 10:04: PM 这一 时刻,SECOND 为 15 public static final int DAY_OF_WEEK: 指示一个星期中的某天 该字段可取的值为 SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY 和 SATURDAY 常用的 set 方法有 : public void set(int field, int value): 将给定的日历字段设置为给定值 其中参数 field 表示给定的日历字段,value 为给定日历字段所要设置的值 public final void set(int year,int month,int date): 设置日历字段 YEAR MONTH 和 DAY_OF_MONTH 的值 保留其他日历字段以前的值 如果不需要这样做, 则先调 用 clear() 参数 year 用来设置 YEAR 日历字段的值 ;month 用来设置 MONTH 日历 字段的值 Month 值是基于 0 的 例如, 0 表示 January; Date 用来设置 DAY_OF_MONTH 日历字段的值 public final void set(int year,int month, int date, int hourofday, int minute): 设置日历字 段 YEAR MONTH DAY_OF_MONTH HOUR_OF_DAY 和 MINUTE 的值 保留 其他字段以前的值 参数 year 用来设置 YEAR 日历字段的值 ;month 用来设置 MONTH 日历字段的值 Month 值是基于 0 的 例如,0 表示 January;date 用来设 置 DAY_OF_MONTH 日历字段的值 ;hourofday 用来设置 HOUR_OF_DAY 日历字 段的值 ;minute 用来设置 MINUTE 日历字段的值 public final void set(int year,int month,int date,int hourofday, int minute, int second): 设 置字段 YEAR MONTH DAY_OF_MONTH HOUR MINUTE 和 SECOND 的值 保留其他字段以前的值 参数 year 用来设置 YEAR 日历字段的值 ;month 用来设置 MONTH 日历字段的值 Month 值是基于 0 的 例如,0 表示 January;date 用来设

23 98 Java 语言程序设计 ( 第二版 ) 置 DAY_OF_MONTH 日历字段的值 ;hourofday 用来设置 HOUR_OF_DAY 日历字 段的值 ;minute 用来设置 MINUTE 日历字段的值 ;second 用来设置 SECOND 日历 字段的值 常用的 get 方法有 : public long gettimeinmillis(): 返回此 Calendar 的时间值, 以毫秒为单位 public int get(int field): 返回给定日历字段的值 (3) 修改日历字段方法 public abstract void add(int field,int amount): 根据日历的规则, 为给定的日历字段添 加或减去指定的时间量 参数 field 为日历字段 ;amount 表示为字段添加的日期或 时间量 例如, 要从当前日历时间减去 5 天, 可以通过调用以下方法做到这一点 : add(calendar.day_of_month, -5) public void roll(int field,int amount): 向指定日历字段添加指定 ( 有符号的 ) 时间量, 不更改更大的字段 负的时间量意味着向下滚动 例 5-14 输出当前日期和时间, 并计算 1969 年 11 月 6 日到今天 2009 年 4 月 6 日之间 共有多少天? import java.io.*; import java.util.*; public class CalendarTest{ public static void main(string args[]){ Calendar calendar=calendar.getinstance(); calendar.settime(new Date()); int year=calendar.get(calendar.year), month=calendar.get(calendar.month)+1, day=calendar.get(calendar.day_of_month), week=calendar.get(calendar.day_of_week)-1, hour=calendar.get(calendar.hour), minute=calendar.get(calendar.minute), second=calendar.get(calendar.second); System.out.println(" 现在日期是 :"+year+" 年 "+month+" 月 "+day+" 日星期 "+week); System.out.println(" 时间为 :"+hour+" 时 "+minute+" 分 "+second+" 秒 "); calendar.set(1969,11,6); long time69116=calendar.gettimeinmillis(); calendar.set(2009,4,6); long time0946=calendar.gettimeinmillis(); System.out.println("1969 年 11 月 6 日到 2009 年 4 月 6 日相隔 : "+(time0946-time69116)/1000/60/60/24+" 天 "); 程序运行结果为 : 现在日期是 :2009 年 4 月 6 日星期 1 时间为 :10 时 46 分 44 秒 1969 年 11 月 6 日到 2009 年 4 月 6 日相隔 :14396 天

24 第 5 章继承和接口 99 例 5-15 输出 2009 年 4 月日历 import java.io.*; import java.util.*; public class CalendarTest{ public static void main(string args[]){ Calendar calendar=calendar.getinstance(); System.out.println("------"+calendar.get(Calendar.YEAR)+" 年 "+ calendar.get(calendar.month)+" 月 "); System.out.println(""); System.out.println(" 日一二三四五六 "); calendar.set(2009,4,6,9,50,22); int weekday=calendar.get(calendar.day_of_week)-1; String days[]=new String[weekday+30]; for(int i=0;i<weekday;i++) days[i]=string.valueof(32-weekday+i); for(int i=1;i<=30;i++){ if(i<10) days[weekday+i-1]=" "+String.valueOf(i); else days[weekday+i-1]=string.valueof(i); for(int i=0;i<days.length;i++) { if(i%7==0) System.out.println(""); System.out.print(" "+days[i]); 本章主要介绍了 Java 的重要特性 : 继承 接口以及多态机制 继承是类之间的一般与特殊关系, 子类继承父类, 子类获得父类的全部属性和行为, 然后在此基础上, 可以新增特性 接口是面向对象的一个重要机制, 使用接口可以实现多继承的功能 接口中的所有方法都是抽象的, 这些抽象方法由实现这一接口的不同类来具体实现 多态性是指不同类型的对象可以响应相同的消息 包是一种将相关类 接口或其他包组织起来的集合体 目的是为了将包含类代码的文件组织起来, 易于查找和使用 最后介绍了 Java 的类库 常见的包和主要的类 一 选择题 1.Java 语言的类间的继承关系是 ( ) A. 多继承 B. 单继承 C. 线程的 D. 不能继承 2. 定义包使用的关键字是 ( ) A.import B.implements C.package D.extends

25 100 Java 语言程序设计 ( 第二版 ) 3. 以下 ( ) 是接口的正确定义 A.interface B1{ B.abstract interface B1{ void print(){ ; void print() ; C.abstract interface B1 extends A1,A2 { D.interface B1 { /A1 A2 为已定义的接口 void print(); abstract void print(){ ; 4. 下列叙述中, 错误的是 ( ) A. 父类不能替代子类 B. 子类能够替代父类 C. 子类继承父类 D. 父类包含子类 5. 下列类定义中 ( ) 是合法的抽象类定义 A.class A{abstract void fun1(); B.abstract A{ abstract void fun1(); C.class abstract A{abstract void fun1(); D.abstract class A{ abstract void fun1(); E.abstract class A{ abstract void fun1(){; F.abstract class A{void fun1(){; 6. 定义接口使用的关键字是 ( ) A.public B.implements C.package D.interface 7. 如果在子类中需要调用父类带参数的构造方法, 可通过 super 调用所需的父类构造方 法, 且该语句必须作为父类构造方法中的 ( ) A. 第一条语句 B. 第二条语句 C. 倒数第二条语句 D. 最后一条语句 8. 在子类中重写父类的方法的过程称为 ( ) A. 方法重载 B. 方法重用 C. 方法覆盖 D. 方法继承 二 填空题 1. 是一种软件重用形式, 在这种形式中, 新类获得现有类的数据和方法, 并 可增加新的功能 2.Java 程序中定义接口所使用的关键字是, 接口中的属性都是, 接口中的方法都是 方法 3. 是 Java 程序中所有类的直接或间接父类, 也是类库中所有类的父类 4.Java 程序引入接口的概念, 是为了弥补只允许类的 的缺憾 5. 在 Java 程序中, 把关键字 加到方法名称的前面, 来实现子类调用父类的 6.Java 语言通过接口支持 继承, 使类继承具有更灵活的扩展性 7. 接口是一种只含有抽象方法或 的一种特殊抽象类

26 第 5 章继承和接口 接口中的成员只有静态常量和 三 简答题 1. 什么是继承? 什么是基类和子类? 2. 什么是数据成员的隐藏? 什么是方法的重写? 3. 基类对象与子类对象相互转换的条件是什么? 如何实现它们之间的相互转换? 4. 什么是接口? 接口的功能是什么? 接口与类有何异同? 5. 如何定义接口? 使用什么关键字? 6. 一个类如何实现接口? 实现接口的类是否一定要重写该接口中的所有抽象方法? 7. 什么是包? 如何创建包? 如何引用包中的类? 四 编程题 1. 编写一个完整的 Java Application 程序, 包括 ShapeArea 接口 MyTriangle 类 Test 类, 具体要求如下 : (1) 接口 ShapeArea: double getarea(): 求一个形状的面积 double getperimeter (): 求一个形状的周长 (2) 类 MyTriangle: 实现 ShapeArea 接口, 另有以下属性和方法 : 1) 属性 x,y,z:double 型, 表示三角形的三条边 s: 周长的 1/2( 注 : 求三角形面积公式为 s(s x)(s y)(s z),s=(x+y+z)/2, 开方可用 Math.sqrt(double) 方法 ) 2) 方法 MyTriangle(double x, double y, double z): 构造函数, 给三条边和 s 赋初值 tostring(): 输出矩形的描述信息, 如 three sides:6.0,8.0,10.0,perimeter=24.0,area=24.0 (3)Test 类作为主类要完成测试功能 : 1) 生成 MyTriangle 对象 2) 调用对象的 tostring 方法, 输出对象的描述信息 2. 定义接口 Shape 及其抽象方法 getarea() 和 getperimeter() 用于计算图形的面积和周长 定义类 Rectangle( 矩形 ) 类 Circle( 圆形 ) 和类 Triangle( 三角形 ) 继承类 Coordinates( 点 ) 并实现接口的抽象方法 3. 编写一个程序, 用来根据租用汽车的大小来支付一天的租金 : 汽车的规格有 : 大 中 小及实际大小 添加一个需要汽车大小的构造方法 添加一个用于添加汽车电话选项的子类 编写一个使用这些类的程序 4. 编写一个程序, 用来计算某项物品的价格 添加一个需要数量 物品名称和物品的构 造方法 添加一个子类以便根据定购的数量提供折扣 编写一个使用这些类的程序 5. 编写一个命名为 UserLoan 的程序, 该程序使用命名为 Loan 的抽象类和多个子类, 用 来显示不同类型的贷款和每月的花费 ( 家庭 汽车等项 ) 在每个具有合适参数的类中使用构

27 102 Java 语言程序设计 ( 第二版 ) 造方法 添加获取和设置方法, 其中至少有一个方法是抽象的 提示用户输入显示的类型, 然后创建合适的对象 还要创建一个接口, 该接口至少有一个用于子类的方法 6. 设计程序要求实现 : (1) 抽象类的定义 (2) 定义子类并继承抽象类, 实现其抽象方法 (3) 终极类的使用 (4) 静态成员的使用

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

1 下列类头定义中, 正确的是 面向对象程序设计网络课程 A class x { } B public x extends y { } C public class x extends y {.} D class x extends y implements y1 { } 2 现有两个类 A B,

1 下列类头定义中, 正确的是 面向对象程序设计网络课程 A class x { } B public x extends y { } C public class x extends y {.} D class x extends y implements y1 { } 2 现有两个类 A B, 1 下列类头定义中, 正确的是 A class x B public x extends y C public class x extends y. D class x extends y implements y1 2 现有两个类 A B, 以下描述中表示 B 继承自 A 的是 (D ) A) class A extends B B) class B implements A C) class A

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 复习 创建对象 构造函数 函数重载 : 函数 = 函数名 + 参数列表 public class MyType { int i; double d; char c; void set(double x)

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class - Table.class

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

模板

模板 制作人 : 张刚 目录 类和对象 面向对象程序设计基本特征 类的声明 构造方法 成员变量和方法 封装 继承 多态 包 访问控制 final static 抽象类和接口 内部类 沈阳工业大学软件学院 Java 课程教研组 Page 2 核心知识点 类 对象 三个基本特征 类的基本结构 成员变量 构造方法 成员方法 类实例 对象创建和操作 沈阳工业大学软件学院 Java 课程教研组 Page 3 1.

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

OOP with Java 通知 Project 3: 4 月 19 日晚 9 点

OOP with Java 通知 Project 3: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 4 月 19 日晚 9 点 复习 Upcasting 同一基类的不同子类可以被视为同一类型 ( 基类 ) 放宽类型一致性 简化接口 class A{ class B{ A a = new A(); B b = new B(); // A a = new B(); compile

More information

授课内容 内容 备注 第 4 章接口 内部类和 Java API 基础内容和要求 : 1. 理解接口的作用, 理解接口和实现接口的类的关系, 掌握声明接口 重点 : 接口和实现接口的一个类实现多个接口的声明和使用方法 类 ;Java API 2. 理解内嵌类型的概念, 掌握声明内部类的方法 难点 :

授课内容 内容 备注 第 4 章接口 内部类和 Java API 基础内容和要求 : 1. 理解接口的作用, 理解接口和实现接口的类的关系, 掌握声明接口 重点 : 接口和实现接口的一个类实现多个接口的声明和使用方法 类 ;Java API 2. 理解内嵌类型的概念, 掌握声明内部类的方法 难点 : 金陵科技学院教案 第 7 次课授课学时 2 教案完成时间 : 2014.2 章 节 第四章接口 内部类和 Java API 基础 4-1 接口与实现接口的类 4-2 内部类和内部接口 4-3 Java API 基础 4-4 泛型 ( 简单介绍, 不深入学习 ) 1. 接口与实现接口的类 主要内容 2. 内部类和内部接口 3. Java API 基础 目的与要求 1. 理解接口的作用, 理解接口和实现接口的类的关系,

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式]

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式] 用户定义类型 User-defined Datatypes classes and structs 几何向量 (Geometry Vector) 二维平面上的向量由起点和终点构成 每个点包含两个坐标 (x, y), 因此一个向量需要四个实数表示 Start= (0.9,1.5) Start= (0.4,0.8) int main() { double xstart = 0.4; double xend

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

chp5_1

chp5_1 Java 软件设计基础 5. 继承与多态 类的封装 类的特性 Java 程序设计的基本单位是类, 类是用来创建具体对象的模板, 有以下三个重要特性 : 封装 Java 语言中, 对象就是对一组变量和相关方法的封装 (Encapsulation), 通过对对象的封装, 实现模块化和信息隐藏 通过对类的成员辅以一定的访问限制, 实现类中成员的信息隐藏 继承 继承 (inheritance) 允许创建分等级层次的类,

More information

untitled

untitled 1 Outline 類别 欄 (1) 類 類 狀 更 易 類 理 若 類 利 來 利 using 來 namespace 類 ; (2) namespace IBM class Notebook namespace Compaq class Notebook 類别 類 來 類 列 欄 (field) (property) (method) (event) 類 例 立 來 車 類 類 立 車 欄 料

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 lambda 表达式及其应用 lambda 表达式是 Java 8 提供的一种新特性, 它使得 Java 也能像 C# 和 C++ 语言一样进行简单的 函数式编程, 这不仅简化了某些通用结构的实现方式, 也大大增强了 Java 语言的表达功能 3.1 lambda 表达式简介 lambda 表达式是基于数学中的 λ 演算得名, 本质上就是一个没有方法名的匿名方法 例如, 有一个方法定义如下

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 第 5 章 面向对象编程 除了基本的类和对象,Java 语言的面向对象编程还包括抽象类 接口 内部类及包等高级特性 通过对这些高级特性的支持,Java 语言全面实现了面向对象的编程 本章将进一步深入介绍 Java 语言面向对象编程方面的知识 5.1 类的三大特性 第 4 章介绍了有关类定义的基本知识 面向对象中的类还具有封装 继承与多态的特性, 这也是面向对象编程所具有的重要特点 Java 语言对类的封装

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

姓名 : 年级专业 : 学号 : 凡年级专业 姓名 学号错写 漏写或字迹不清者, 成绩按零分记 密 封 线 java 较难 试卷 总分 题号 一 二 三 四 五 题分 得分 D 国际通信协议 4 下面选项中, 不是面向对象的特征的是 ( ) A 封装 B 继承 得分 一 单选题 ( 每题 3 分,

姓名 : 年级专业 : 学号 : 凡年级专业 姓名 学号错写 漏写或字迹不清者, 成绩按零分记 密 封 线 java 较难 试卷 总分 题号 一 二 三 四 五 题分 得分 D 国际通信协议 4 下面选项中, 不是面向对象的特征的是 ( ) A 封装 B 继承 得分 一 单选题 ( 每题 3 分, java 较难 试卷 总分 题号 一 二 三 四 五 题分 D 国际通信协议 4 下面选项中, 不是面向对象的特征的是 ( ) A 封装 B 继承 一 单选题 ( 每题 3 分, 共计 15 分 ) 1 下列修饰符中, 成员内部类被 ( ) 修饰后, 可以被外界访问 C 多态 D 重构 5 下列关于构造方法重载的说法中, 错误的是 () A 不同构造方法中调用本类其它的构造方法时, 需要使用 this([

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 Java 高级技术 课程第二讲 Java 语言的面向对象特性 (2) 李戈 北京大学信息科学技术学院软件研究所 2010 年 3 月 21 日 课程助教 : 前言 黎育龙 (10817195@pub.ss.pku.edu.cn) Email 标题 :Java 高级技术 + 题目 请不要把作业发到我的信箱 ; 新的课程网站 http://www.ontoedu.pku.edu.cn/index.jsp

More information

试卷代号 : 座位号 中央广播电视大学 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共

试卷代号 : 座位号 中央广播电视大学 学年度第一学期  开放本科  期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 试卷代号 : 1 2 9 7 座位号 中央广播电视大学 2 0 1 0 2011 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 2 0 分 } 1. Java 是一门 ( ) 语言 A. 机器 B. 汇编 C. 面向过程的高级 D.

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

Strings

Strings Polymorphism and Virtual Functions Cheng-Chin Chiang Virtual Function Basics 多 型 (Polymorphism) 賦 予 一 個 函 數 多 種 意 涵, 存 在 於 同 一 類 別 之 內 祖 先 類 別 與 後 代 類 別 間 物 件 導 向 程 式 設 計 基 本 原 理 虛 擬 函 數 (Virtual Function)

More information

<4D6963726F736F667420506F776572506F696E74202D20B5DA3035D5C220C3E6CFF2B6D4CFF3B8DFBCB6B3CCD0F2C9E8BCC6>

<4D6963726F736F667420506F776572506F696E74202D20B5DA3035D5C220C3E6CFF2B6D4CFF3B8DFBCB6B3CCD0F2C9E8BCC6> Java 程 序 设 计 教 学 课 件 河 南 农 业 大 学 信 管 学 院 计 算 机 系 河 南 农 业 大 学 信 管 学 院 计 算 机 系 高 级 语 言 程 序 设 计 课 程 组 第 5 章 面 向 对 象 高 级 程 序 设 计 主 要 内 容 5.1 继 承 5.2 多 态 性 5.3 抽 象 类 和 抽 象 方 法 5.4 接 口 5.5 内 部 类 和 匿 名 类 5.1

More information

第三章面向对象基本特性 面向对象程序设计是一种先进的编程思想, 更加容易解决复杂的问题 面向对象系统最突出的特性是封装性 继承性和多态性 学习完本章节, 您能够 : 理解封装的概念 实现对象封装特性 实现继承特性 使用接口 掌握对象的多态性 任务 3.1 保护个人数据 情境描述 Tom

第三章面向对象基本特性 面向对象程序设计是一种先进的编程思想, 更加容易解决复杂的问题 面向对象系统最突出的特性是封装性 继承性和多态性 学习完本章节, 您能够 : 理解封装的概念 实现对象封装特性 实现继承特性 使用接口 掌握对象的多态性 任务 3.1 保护个人数据 情境描述 Tom 第三章面向对象基本特性 面向对象程序设计是一种先进的编程思想, 更加容易解决复杂的问题 面向对象系统最突出的特性是封装性 继承性和多态性 学习完本章节, 您能够 : 理解封装的概念 实现对象封装特性 实现继承特性 使用接口 掌握对象的多态性 任务 3.1 保护个人数据 3.1.1 情境描述 Tom 设计的 A 类员工类, 外部可以直接访问它的成员变量, 在现实社会中, 一个对象的 某些属性外界是不可以得知的,

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 Java 高级技术 课程第二讲 Java 语言的面向对象特性 (3) 李戈 北京大学信息科学技术学院软件研究所 2010 年 3 月 21 日 进入一个新的主题 抽象类 vs. 接口 抽象类的引出 抽象类 现实世界中一些没有具体对象的纯粹抽象概念, 例如, 鸟 鱼 灯 树 动物 ; 抽象类用于建模现实世界中的纯粹抽象概念 ; 定义方法 : 使用保留字 abstract public abstract

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 2 章 Java 语言基础 通过本章的实践, 要掌握 Java 中的标识符 关键字 常量, 熟练掌握算术 关 系 逻辑 条件 赋值 位运算符的使用, 掌握简单顺序结构的程序设计 2.1 典型习题解答 2.1 Java 中怎样进行注释? 解答 Java 语言中的注释有 3 种形式 : (1) 单行 : // (2) 多行 : /* */ (3) 文档注释 : /** */ 第三种形式是第二种形式的变形,

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 上机实践 5 子类与继承 实验 1 中国人 北京人和美国人 1 相关知识点 由继承而得到的类称为子类, 被继承的类称为父类 ( 超类 ),Java 不支持多重继承, 即子类只能有一个父类 人们习惯地称子类与父类的关系是 is-a 关系 如果子类和父类在同一个包中, 那么, 子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量, 并且也自然地继承了父类中不是 private 的方法作为自己的方法,

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 求职者在介绍自己的基本情况时不必 从头说起, 比如, 不必介绍自己所具有的人的一般属性等, 因为人们已经知道求职者肯定是一个人, 已经具有了人的一般属性, 求职者只要介绍自己独有的属性就可以了 当准备编写一个类的时候, 发现某个类有我们所需要的成员变量和方法, 如果想复用这个类中的成员变量和方法, 即在所编写的类中不用声明成员变量就相当有了这个成员变量, 不用定义方法就相当有了这个方法,

More information

Guava学习之CharSequenceReader

Guava学习之CharSequenceReader CharSequenceReader 类是以 CharSequence 的形式读取字符 CharSequenceReader 类继承自 Reader 类, 除了 remaining() hasremaining() 以及 checkopen() 函数之后, 其他的函数都是重写 Reader 类中的函数 CharSequenceReader 类声明没有用 public 关键字, 所以我们暂时还不能调用这个类

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

Microsoft PowerPoint - 08_OO_CJC.ppt

Microsoft PowerPoint - 08_OO_CJC.ppt C++ 中的 Hello World! C 程序设计语言 第 8 章 OO 与 C++ Java C# 孙志岗 sun@hit.edu.cn http://sunner.cn 兼容 C 语言的 : #include int main() printf("hello,, world!\n"); return 0; 更具 C++ 味道的 : #include int

More information

第3 章 类 对象与方法 3.1 类 类的定义 在 Objective-C 中 每个类的定义包括两个部分 接口 interface 和实现 implementation 接口部 分定义在.h 文件中 包含类的声明 属性以及方法 主要作用是对外提供访问接口 实现部分定义在.m 文件中 主要

第3 章 类 对象与方法 3.1 类 类的定义 在 Objective-C 中 每个类的定义包括两个部分 接口 interface 和实现 implementation 接口部 分定义在.h 文件中 包含类的声明 属性以及方法 主要作用是对外提供访问接口 实现部分定义在.m 文件中 主要 第3 章 类 对象与方法 3.1 类 3.1.1 类的定义 在 Objective-C 中 每个类的定义包括两个部分 接口 interface 和实现 implementation 接口部 分定义在.h 文件中 包含类的声明 属性以及方法 主要作用是对外提供访问接口 实现部分定义在.m 文件中 主要用于方法的功能实现 这种定义类的方法 好处在于将公共声明 接口 与代码实现分开 对外屏蔽了功能实现的细节

More information

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 CIRCLE 1 Circle 描述 编写一个圆类 Circle, 实现半径的输入 面积的计算和输出 输入 圆的半径 (double 类型 ) 输出 圆的面积 ( 保留小数点后两位 ) 样例输入 3 样例输出 28.27 提示 圆周率的取值需要比较精确, 以保证计算结果的精度 #include

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址 access_token=access_token (http

停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址   access_token=access_token (http 停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址 https://webapi.zego.im/cgi/stop-mix? access_token=access_token (https://webapi.zego.im/cgi/stop-mix? access_token=access_token)

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

java2d-4.PDF

java2d-4.PDF 75 7 6 G r a d i e n t P a i n t B a s i c S t r o k e s e t P a i n t ( ) s e t S t o r k e ( ) import java.awt.*; import java.awt.geom.*; public class PaintingAndStroking extends ApplicationFrame { public

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 第 5 课 深入面向对象编程 在面向对象的概念中, 大家可以知道所有的对象都是通过类来描绘的, 但是反过来却不是这样, 并不是所有的类都是用来描绘对象的 如果一个类中没有包含足够的信息来描绘一个具体的对象, 那么这样的类就是抽象类 由于 Java 语言只支持单继承, 那么接口的存在就弥补了单继承的不足 内部类也是嵌套的类, 方法的重载和重写是 Java 语言多态性的不同表现 本课将深入讲解面向对象编程中的这些类和方法的使用以及包的概念

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

教学内容 1 2 类和对象 Java 面向对象特性

教学内容 1 2 类和对象 Java 面向对象特性 2013-2014 学年度第二学期课程 C 语言程序设计 Java 语言程序设计面向过程编程方法 编程方法学 新疆农业大学计算机与信息工程学院 陈燕红 :cyh@xjau.edu.cn 教学内容 1 2 类和对象 Java 面向对象特性 3 4 5 6 Java 程序的执行过程 经典的 Java 工具包是 JDK 可以用任何文本编辑器, 如记事本, 都可以直接编写 Java 程序然后用 JDK 的命令编译和运行.

More information

(京)新登字063号

(京)新登字063号 教 育 部 职 业 教 育 与 成 人 教 育 司 推 荐 教 材 Java 程 序 设 计 教 程 ( 第 二 版 ) 沈 大 林 主 编 沈 昕 肖 柠 朴 曾 昊 等 编 著 内 容 简 介 Java 是 由 美 国 SUN 公 司 开 发 的 一 种 功 能 强 大 的, 具 有 简 单 面 向 对 象 分 布 式 可 移 植 等 性 能 的 多 线 程 动 态 计 算 机 编 程 语 言

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

untitled

untitled How to using M-Power Report API M-Power Report API 力 了 M-Power Report -- Java (Library) M-Power Report API 行 Java M-Power Report M-Power Report API ( 30 ) PDF/HTML/CSV/XLS JPEG/PNG/SVG 料 料 OutputStream

More information

<4D F736F F F696E74202D C DB5DA3131D5C25FBCCCB3D0BACDB6E0CCAC2E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D C DB5DA3131D5C25FBCCCB3D0BACDB6E0CCAC2E BBCE6C8DDC4A3CABD5D> 第 11 章继承和多态 1 动因 假设要定义一个类来对圆 矩形和三角形建模 这些类有 很多共同的特性 设计这些类来避免冗余的最好的方式是 什么? 答案就是使用继承 2 学习目标 通过继承由父类创建子类 ( 第 11.2 节 ) 使用关键字 super 调用父类的构造方法和方法 ( 第 11.3 节 ) 在子类中覆盖实例方法 ( 第 11.4 节 ) 区分覆盖和重载的不同 ( 第 11.5 节 ) 探究

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

拦截器(Interceptor)的学习

拦截器(Interceptor)的学习 二 拦截器 (Interceptor) 的学习 拦截器可以监听程序的一个或所有方法 拦截器对方法调用流提供了细粒度控制 可以在无状态会话 bean 有状态会话 bean 和消息驱动 bean 上使用它们 拦截器可以是同一 bean 类中的方法或是一个外部类 下面介绍如何在 Session Bean 类中使用外部拦截器类 @Interceptors 注释指定一个或多个在外部类中定义的拦截器 下面拦截器

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

untitled

untitled (encapsulation) 例 類 說 類 料 來 料 information hiding 念 (inheritance) 來說 類 類 類 類 類 類 行 利 來 (polymorphism) 不 類 數 不 1 2 3 4 類 類 不 類 不 類 5 6 7 // virtual 不見了 #include #include using namespace

More information

PowerPoint Presentation

PowerPoint Presentation 第 3 章 类 类的继承和接口 3.1 类 3.2 包的创建和使用 源文件结构 3.3 类的继承和多态 3.4 接口和接口的实现 3.5 内部类和匿名内部类 3.1 类 1 Java 中类的定义格式 : [ 类的修饰符 ] class 类名 [extends 父类名 ]{ 变量声明 ; 构造方法定义 ; 其他方法定义 ; 2 创建一个类的对象的格式 : 类名对象名 =new 构造函数 ( 实际参数

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

教案模板4-2

教案模板4-2 传智播客 Java 基础入门 教学设计 课程名称 : Java 基础入门 授课年级 : 2014 年级 授课学期 : 2014 学年第一学期 教师姓名 : 某某老师 2014 年 02 月 09 日 课题名称第 3 章面向对象上 计划学时 6 课时 Java 是一种面向对象的语言, 认识面向对象的编程思想对于 Java 学习至关重 内容分析 要 在面向对象中, 有两个重要的概念, 分别是类和对象,

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 第十一讲 运算符重载 与类型转换 运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 为什么要运算符重载 预定义的运算符只针对基本数据类型, 若要对类的对象进行类似的运算, 需要重新定义运算符的功能 运算符重载实质就是函数重载 : 对已有的运算符赋予多重含义, 使得同一个运算符作用于不同类型的数据时导致不同的行为

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法 ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 0 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : 0 /// 测试方法 : 测试将 DataTable 导出到 EXCEL, 无模板 public void TestExportToExcelByDataTable() string excelpath

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

利用Java技术编写桌面软件基础

利用Java技术编写桌面软件基础 利 用 Java 技 术 编 写 桌 面 软 件 基 础 在 学 习 Java 编 程 语 言 的 细 节 和 语 法 时, 我 们 会 碰 到 这 样 一 个 问 题 : 开 发 桌 面 应 用 软 件 需 要 使 用 哪 些 Java 技 术, 应 当 引 入 哪 些 package? 这 一 问 题 的 答 案 取 决 于 开 发 的 应 用 软 件 类 型 和 它 的 作 用 这 篇 文 章

More information

Microsoft Word - 投影片ch11

Microsoft Word - 投影片ch11 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十一章抽象類別與介面 本章學習目標認識抽象類別學習介面的使用認識多重繼承與介面的延伸 抽象類別與介面 11-2 11.1 抽象類別 抽象類別的目的是要依據它的格式來修改並建立新的類別 11.1.1 定義抽象類別 定義抽象類別的語法如下 : abstract class 類別名稱 { 宣告資料成員 ; // 定義抽象類別

More information

untitled

untitled 1 Outline ArrayList 類 列類 串類 類 類 例 理 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object

More information

设计模式 Design Patterns

设计模式 Design Patterns 丁勇 Email:18442056@QQ.com 组件技术概述 现在软件开发都已经转向了基于组件的开发, 目前具备代表性的组件技术有微软的 COM COM+, 有 Sun 的 Bean 和 EJB(Enterprise Bean), 另外还有 CORBA(Common Object Request Broker Architecture, 公 共对象请求代理结构 ) Bean Bean 规范将 软件组件

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

Microsoft Word - word模板-教师.doc

Microsoft Word - word模板-教师.doc 传智播客 Java 基础入门 教学设计 课程名称 : Java 基础入门 授课年级 : 2014 年级 授课学期 : 2014 学年第一学期 教师姓名 : 某某老师 2014 年 02 月 09 日 课题名称内容分析教学目标及基本要求重点及措施难点及措施 计划第 3 章面向对象上 6 课时学时 Java 是一种面向对象的语言, 认识面向对象的编程思想对于 Java 学习至关重要 在面向对象中, 有两个重要的概念,

More information