文档库 最新最全的文档下载
当前位置:文档库 › Java语言与面向对象技术复习资料

Java语言与面向对象技术复习资料

Java语言与面向对象技术复习资料
Java语言与面向对象技术复习资料

一、单项选择题。

1、下列哪个是Java应用程序主类中正确的main方法?()

A.public void main(String args[])

B.static void main(String args[])

C.public static void Main(String args[])

D.public static void main(String args[])

2、下列哪项是正确的float变量的声明?()

A.float foo=-1; B.float foo=1.0;

C.float foo=2.02f; D.float foo=0x0123;

3、对于int a[]=new int[3];下列哪个叙述是错误的?()

A.a.length的值是3。B.a[1]的值是1。

C.a[0]的值是0。D.a[a.length-1]的值等于a[2]的值。

4、下列哪个叙述是正确的?()

A.5.0/2+10的结果是double型数据。

B.(int)5.8+1.0的结果是int型数据。

C.’苹’+’果’的结果是char型数据。

D.(short)10+’a’的结果是short型数据。

5、对于下列Hello类,哪个叙述是正确的?()

A.Hello类有2个构造方法。

B.Hello类的int Hello()方法是错误的方法。

C.Hello类没有构造方法。

D.Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。

class Hello {

Hello (int m) {

}

int Hello() {

Return 20;

}

hello() {

}

}

6、下列哪个叙述是正确的?()

A.成员变量的名字不可以和局部变量的名字相同。

B.方法的参数的名字可以和方法中声明的局部变量的名字相同。

C.成员变量没有默认值。

D.局部变量没有默认值。

7、下列哪个叙述是正确的?()

A.子类继承父类的构造方法

B.abstract类的子类必须是非abstract类

C.子类继承的方法只能操作子类继承和隐藏的成员变量

D.子类重写或新增的方法也能直接操作被子类隐藏的成员变量

8、下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?()class A {

static int m;

static void f() {

m=20; //A

}

}

class B extends A {

void f() //B

{ m=222; //C

}

}

class E {

public static void main(String args[]) {

A.f();

}

}

9、将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?()A.public float getNum() {return 4.0f;}

B.public void getNum() {};

C.public void getNum(double d) {}

D.public double getNum(float d) {return 4.0d;}

class A {

public float getNum() {

return 3.0f;

}

}

public class B extends A {

【代码】

}

10、下列哪个叙述是正确的?()

A. 一个类最多可以实现两个接口

B. 如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法

C. 如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法

D. 允许接口中只有一个抽象方法

二、程序填空题。

1、public class TV {

int channel; //电视频道

void setChannel(int m) {

if(m>=1){

channel=m;

}

}

int getChannel(){

【代码1】// 返回成员变量的值

}

void showProgram(){

switch(channel) {

case 1 : System.out.println("综合频道");

break;

case 2 : System.out.println("经济频道");

break;

case 3 : System.out.println("文艺频道");

break;

case 4 : System.out.println("国际频道");

break;

case 5 : System.out.println("体育频道");

break;

default : System.out.println("不能收看"+channel+"频道");

}

}

}

public class Family {

TV homeTV;

void buyTV(TV tv) {

【代码2】//将参数tv赋值给homeTV }

void remoteControl(int m) {

【代码3】//调用setChannel()方法}

void seeTV() {

【代码4】//调用showProgram()方法}

}

public class MainClass {

public static void main(String args[]) {

TV haierTV = new TV();

【代码5】

//haierTV调用setChannel(int m),并向参数m传递5

System.out.println("haierTV的频道是"+haierTV.getChannel());

Family zhangSanFamily = new Family();

【代码6】

//zhangSanFamily调用void buyTV(TV tv)方法,并将haierTV传递给参数TV System.out.println("zhangSanFamily开始看电视节目");

zhangSanFamily.seeTV();

int m=2;

System.out.println("hangSanFamily将电视更换到"+m+"频道");

zhangSanFamily.remoteControl(m);

System.out.println("haierTV的频道是"+haierTV.getChannel());

System.out.println("hangSanFamily再看电视节目");

zhangSanFamily.seeTV();

}

}

2、abstract class Employee {

public abstract double earnings();

}

class YearWorker extends Employee {

【代码1】//重写earnings()方法

}

class MonthWorker extends Employee {

【代码2】//重写earnings()方法

}

class WeekWorker extends Employee {

public void earnings() {

return 52*780;

}

}

class Company {

Employee[] employee;

double salaries=0;

Company(Employee[] employee) {

this.employee=employee;

}

public double salariesPay() {

salaries=0;

for (int i=0;i

salaries=salaries+employee[i].earnings();

}

return salaries;

}

}

public class CompanySalary {

public static void main(String args[]) {

【代码3】//公司有29名雇员

【代码4】{ //雇员简单地分成三类

if(i%3==0)

employee[i]=new WeekWorker();

else if(i%3==1)

employee[i]=new MonthWorker();

else if(i%3==2)

employee[i]=new YearWorker();

}

Company company=new Company(employee);

System.out.println("公司薪水总额:"+company.salariesPay()+"元");

}

}

三、阅读程序写结果题。

1、Public class E {

Public static void main (String []args) {

Int x=1,y=6;

While (y-->0) {

x--;

}

System.out.print(“x=”+x+”,y=”+y);

}

}

2、class B {

int n;

static int sum=0;

void setN(int n) {

this.n=n;

}

int getSum() {

for (int i=1;i<=n;i++)

sum=sum+i;

return sum;

}

}

public class A {

public static void main(String args[]) {

B b1=new B(),b2=new B();

b1.setN(3);

b2.setN(5);

int s1=b1.getSum();

int s2=b2.getSum();

System.out.println(s1+s2);

}

}

3、请说出E类中【代码1】~【代码4】的输出结果。

class A {

double f(double x,double y) {

return x+y;

}

static int g(int n) {

return n*n;

}

}

class B extends A {

double f(double x,double y) {

double m=super.f(x,y);

return m+x*y;

}

static int g(int n) {

int m=A.g(n);

return m+n;

}

}

public class E {

public static void main(String args[])

B b=new B();

System.out.println(b.f(10.0,8.0)); //【代码1】

System.out.println(b.g(3)); //【代码2】

A a=new B();

System.out.println(a.f(10.0,8.0)); //【代码3】

System.out.println(a.g(3)); //【代码4】

}

}【代码1】【代码2】

【代码3】【代码4】

四、编程题1。

编写应用程序,输出满足1+2+3+……+n<8888的最大正整数n。

五、编程题2。

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下。

●编写抽象类Animal

Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称。

●编写模拟器类Simulator

该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用Animal的子类的重写的cry()方法播放具体动物的声音,调用子类重写的getAnimalName()方法显示动物种类的名称。

编写Animal类的子类:Dog和Cat类

下图是Simulator、Animal、Dog、Cat的UML图。

部分答案

一、单项选择题。

二、程序填空题。

1、【代码1】return channel;

【代码2】homeTV = tv;

【代码3】homeTV.setChannel(m);

【代码4】homeTV.showProgram();

2、【代码1】public void earnings() {

return 12000;

}

【代码2】public void earnings() {

return 12*2300;

}

三、阅读程序写结果题。

1、答:x=-5,y=-1

2、答:27

3、答:【代码1】98.0

【代码2】12

四、编程题1。

public class Xiti6 {

public static void main(String args[]) {

int n=1;

long sum=0;

while (true) {

sum=sum+n;

n++;

if (sum>=8888) break;

}

System.out.println(“满足条件的最大整数:”+(n-1));

}}

五、编程题2。

答:Animal.java

public abstract class Animal {

public abstract void cry();

public abstract String getAnimalName();

}

Simulator.java

public class Simulator {

public void playSound(Animal animal) {

System.out.print(”现在播放”+animal.getAnimalName+”类的声音:”); animal.cry();

}

}

Dog.java

public class Dog extends Animal {

public void cry() {(1分)

System.out.println(“汪汪…汪汪”);

}

public String getAnimalName() {

return “狗”;

}

}

Cat.java

public class Cat extends Animal {

public void cry() {(1分)

System.out.println(“喵喵…喵喵”);

}

public String getAnimalName() {

return “猫”’

}

}

Application.java

public class Example {

public static void main(String args[]) { Simulator simulator=new Simulator(); Simulator.playSound(new Dog());

Simulator.playSound(new Cat());

}

}

面向对象技术Java 期末复习试卷(三)

期末复习试卷(三) 一、单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源 文件名是() A. teststudent.java B. teststudent .class C. TestStudent.java D. TestStudent.class 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的? public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.println(https://www.wendangku.net/doc/4b18328264.html,pareTo(n2)); } } A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,

提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下: 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer: System.out.println(https://www.wendangku.net/doc/4b18328264.html,pareTo(n2)); 正确写法如下: System.out.println(https://www.wendangku.net/doc/4b18328264.html,pareTo((Integer) n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型?() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean

2.Java面向对象知识测试(答案版)解析

面向对象部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面描述函数重写错误的是(c) A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public的 2.下列说法哪个正确?(a b c) A. 一个程序可以包含多个源文件 B. 一个源文件中只能有一个公共类 C. 一个源文件中可以有多个类 D. 一个源文件只能供一个程序使用

3.下面关于类的设计思路描述错误的是 ( b c ) A. 根据需求写出类所包含的字段(成员变量) B. 根据面向对象的思想要求,所有的字段都必须私有化 C. 封装之后的字段在本类内也必须使用get/set方法 D. 按需求可添加若干构造方法 4.关于封装下面介绍错误的是(d )。 A. 封装将变化隔离 B. 封装提高重用性。 C. 封装提高安全性 D. 只有被private修饰才叫做封装 5.试图编译运行下面的代码会发生什么情况 (d) public class MyClass{ static int i; public static void main(String[] args){ System.out.println(i); } } A. 错误,变量i没有被初始化 B. 输出null C. 输出1 D. 输出0 6.下面对static的描述错误的是 b A. 静态修饰的成员变量和成员方法随着类的加载而加载 B. 静态修饰的成员方法可以访问非静态成员变量 C. 静态修饰的成员可以被整个类对象所共享

面向对象数据库技术的研究综述

面向对象数据库技术的研究综述 摘要:本文在提出传统数据库技术的不足及新应用领域需求的同时,介绍了面向对象数据库的特征与功能,并探讨了该技术面l临的一些问题;最后还对这一新技术的前景进行了展望。 关键词:面向对象;数据库技术;面向对象数据库 面向对象的思想首先出现在程序设计方法中。这一思想指导下产生的面向对象技术是一种按照人们对现实世界习惯的认识论思维方式来研究和模拟客观世界的方法学。它将现实世界中的任何事物均视为“对象”.将客观世界看成是由许多不同种类的对象构成。不同对象之间的相互联系和相互作用就构成了完整的客观世界。面向对象方法学所引入的对象、方法、消息、类、实例、继承性、封装性等一系列重要概念和良好机制为人们认识和模拟客观世界分析、设计和实现大型复杂系统奠定了良好的科学技术基础。 随着研究的不断深入和发展。面向对象技术已大大地超出了程序设计语言的范围。并渗透和应用到了诸多复杂的工程领域。并给软件工程、信息系统、工业设计与制造等带来了深远的影响。如面向对象的软件工程、面向对象的信息管理系统、面向对象的操作系统、面向对象的数据库系统、面

向对象的专家系统、面向对象的开发工具和面向对象的用户界面等的出现。其中,面向对象的数据库系统已成为当今数据库领域研究和发展的主要方向之一。 数据库技术与面向对象技术相结合已成为当前数据库技术研究、应用和发展的一个重要方向。将面向对象技术应用到数据库系统中。使数据库管理系统能够支持面向对象数据模型和数据库模式。这对于提高数据库系统模拟和操纵客观世界的能力,扩大数据库应用领域具有重要的意义:将面向对象技术应用到数据库的集成开发环境中。使数据库应用开发工具能够支持面向对象的开发方法井提供相应的开发手段,这对于提高应用软件的开发质量和扩大软件的应用推广是十分重要的。纵观数据库系统的发展,面向对象(00)技术的诞生为数据库的发展带来了希望。尽管目前面向对象数据库技术的实际发展与关系数据库系统相比,它的理论研究和形式化、标准化等方面还不完备和成熟。但是。从面向对象技术的前景和应用来看,面向对象数据库系统将代表着新一代数据库系统的发展方向。 一、新应用领域的需求及面向对象数据库的发展 从80年代以来,数据库技术在商业领域的巨大成功激发了其它领域对数据库技术需求的迅速增长。这些新的领域包括:CAD/CAM、CIM、CASE、OIS(办公信息系统)、GlS (地理信息系统)、知识库系统和实时系统等。新的应用领

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

实验三Java面向对象高级编程

实验三Java面向对象高级编程 一、实验目的 1. 掌握Java 面向对象编程技术 2. 能够使用继承创建子类并实现方法覆盖 3. 能够创建异类集合并使用多态 4. 能够创建抽象类和接口,并探究它们的多态特性 二、预备知识 1. JDK的安装设置:JDK/JRE/JVM; 2. Eclipse集成开发环境的绿色安装; 3. 掌握Java语言的面向对象特性(封装性、继承性、多态性); 4. 掌握Java语言的抽象类和接口。 三、实验描述 1. 实验类型:设计 2. 实验学时:4学时 3. 实验容:2项(参照四) 四、实验容 (1) 检查所使用的计算机系统: 1. 确认是否已安装JDK,并确认系统的环境变量设置; 2. 确认是否已绿色安装Eclipse集成开发环境。 (2) 实验容一:使用继承和方法覆盖创建子类,并能够创建异类集合并使用多态 具体要求: 1. 在上述银行项目中,创建Customer类: ·位于包:.mybank.domain中; ·向Customer类添加四个实例变量:firstName,lastName,accounts(Account 对象数组,长度为10)和numberOfAccounts(记录accounts数组索引的一个整数); ·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户、创建accounts数组和初始化accounts数组元素个数numberOfAccounts; ·添加getFirstName方法:该方法返回客户的firstName实例变量; ·添加getLastName方法:该方法返回客户的lastName实例变量; ·添加addAccount方法:该方法有一个形式参数(即Account对象),数组的下标通过实例变量numberOfAccounts实现递增,同时将该参数对象存储在accounts 数组中; ·添加getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量; ·添加getAccount方法:该方法返回与指定的index数组下标相关的对象。 2. 创建SavingsAccount类,该类是Account类的子类: ·位于包:.mybank.domain中; ·向SavingsAccount类中添加interestRate实例变量; ·添加一个有两个参数的公有构造方法:initBalance和interestRate。调用父类构造

面向对象的数据库技术

面向对象的数据库技术 肖阳辉 摘要:面向对象的数据库极有可能是数据库发展的方向,关系型数据库已显得力不从心,面向对象技术已经渗透到了数据库领域,把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。论文关键词:关,键,词,数据库,面向对象,技术 随着应用的日趋复杂和智能化,传统的关系数据库的缺点一点点的暴露出来,人们迫切希望产生一种新的数据库解决方案来适应这些复杂需求。一种新的解决方案呼之欲出。而这个解决方案极有可能就是面向对象数据库技术。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。在传统的面向对象应用开发中,由于传统的关系数据库开发风格完全不同于面向对象风格,使得许多程序员难以从复杂的SQL编程中解脱出来(尽管已经有一些成熟的ORM技术框架,如Hibernate,但程序员仍需要做大量的数据库代码工作),从而也无法从实质上提高工作效率。 1、面向对象数据库技术概述 面向对象是当前计算机界关心的重点,面向对象是一种新的方法学,也是一种认知方法学。它是一种支持模块化设计和软件重用的实际可行的编程方法,它把程序间的逻辑活动建立在对象间的消息传递之上,且设计上更加符合现实世界,更加自然,所以面向对象方法得到了更广泛的应用。 面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。在数据库中提供面向对象的技术是为了满足特定应用的需要。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。 还有许多应用要求多媒体数据库。它们要求以集成方式和文本或图形信息一起处理关系数据,这些应用包括高级办公室系统的其它文档管理系统。 面向对象数据库从面向程序设计语言的扩充着手使之成为基于面向对象程序设计语言的面向对象数据库。例如:ONTOS、ORION等,它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。 面向对象数据库研究的另一个进展是在现有关系数据库中加入许多纯面向对象数据库的功能。在商业应用中对关系模型的面向对象扩展着重于性能优化,处理各种环境的对象的物理表示的优化和增加SQL模型以赋予面向对象特征。如UNISQL、O2等,它们均具有关系数据库的基本功能,采用类似于SQL的语言,用户很容易掌握。 2.面向对象数据库的优点 面向对象数据库是数据库技术与面向对象程序设计方法相结合的产物,由于同是面向对象方法学,所以其具有了所有面向对象的优点。同时,由于数据库主要操作的是集合(而不是单个数据),所以其又具有自身的特点和优点。 (1)提高数据库开发效率

面向对象技术(本)阶段练习四资料

《面向对象技术(本)》课程第四阶段练习题 、填充题 1超类的private成员不能被子类继承。 2.在声明一个类变量时,前面必须要加上static修饰符。 3. import java.util.*;语句可导入Java的实用包中所有的类。 4.方法的覆盖是后期绑定,方法的重载是前期绑定。 5.写出一个表达式:输出角度300的余弦值Math.cos(30*3.14/I80。 二、选择题 旦1.找出有关类的正确说法。 a. 类具有封装性,所以类的数据是不能被访问的。 b. 类具有封装性,但可以通过类的公共接口访问类 中的数据。 c. 声明一个类时,必须用Public修饰符。 d. 每个类中,必须有main方法,否则程序无法运 行。 e. A 2.将类的成员的访问权限设置为默认的,则该成员能被 a. 同一包中的类访问 b. 其它包中的类访问 c. 所有的类访问 d. 所有的类的子类访问

C 3.下面哪一种是正确的方法重栽 a. int fun (i nt afloat b{} float fun (i nt a,float b{} b. float fun (i nt a,float b{} float fun (i nt x,float y{} c. float fun( float a{} float fun (float a,float b{} d. flaot fun 1(i nt a,float b{} float fun 2(i nt a,float b{} D 4.下面关于继承的说法那个是正确的 a. 超类的对象就是子类的对象。 b. 一个类可以有几个超类。 c. 一个类只能有一个子类。 d. 一个类只能有一个超类。 C 5.下面关于多态性的说法那个是正确的 a. 一个类中,不能有同名的方法。 b. 子类中不能有和父类中同名的方法。 c. 子类中可以有和父类中同名且参数相同的方法。 d. 多态性就是方法的名字可以一样,但返回的类型必须不一样。 三、简答题 1. 什么是类,什么是对象? 在面向对象的程序设计语言中,类是一种特殊属性类型,类可以看作具有共同属性和行为的

java基础知识点总结

Created by AIwen on 2017/5/14、 java就是面向对象的程序设计语言;类可被认为就是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都就是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则就是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、与多态。java提供了private、protected、与public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量与与方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承就是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)与对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、与方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器就是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总就是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以就是public、protected、private其中之一,或者省略构造器名:构造器名必须与类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再就是构造器。 实际上类的构造器就是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总就是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值就是隐式的。 java类名必须就是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其她字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再与后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其她字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以就是java语言允许的任何数据类型,包括基本类型与引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static与final最多只能出现其中的一个,与abstract组合起来使用。也可省略。 返回值类型:可以就是java语言的允许的任何数据类型,包括基本类型与引用类型。 方法名:与成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总就是后执行。

UML面向对象技术期末复习整理

UML面向对象技术期末复习整理 第一章 1、UML支撑软件整个生命周期 2、对象:面向对象系统的基本构造块,是一些相关的变量和方法的软件集 3、事件:指一种由系统预先定义而由用户或系统发出的动作 4、面向对象的基本特征:抽象,封装,继承,多态 5、模型:对现实客观世界的形状或状态的抽象模拟和简化 6、UML定义:是对软件密集系统进行可视化建模的一种语言,也是为面向对象开发系统的产品进行说明、可视化、构造和编制问的一种标准语言 7、UML可贯穿软件开发周期的每一阶段,最适用于数据建模、业务建模、对象建模、组件建模 填空题 1、统一建模语言UML是绘制软件蓝图的标准工具语言,可以对软件系统产品进 行说明、可视化、构造和编制文档 2、UML在实际软件项目中,可以用于构造各种类型系统的业务模型和软件模 型。 3、软件的开发模式有瀑布模型、喷泉模型、基于构件的开发模型和XP方法。 4、面向对象程序的三大要素是多态、封装和继承。 5、瀑布模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的 问题。 选择题 1、对象程序的基本特征是:抽象、封装、继承、多态 2、类包含的要素有:名字、属性、操作 3、下列关于类与对象的关系说法不正确的是:有些对象是不能被抽象类的 4、面向对象方法中的继承机制是子类可以自动地拥有(复制)父类全部属性和 操作 5、建立对象的动态模型一般包含的步骤有:准备脚本、确定事件、准备事件 跟踪表、构造状态图 第二章 1、UML的概念和模型分为静态结构、动态行为、实现构造、模型组织和扩展机制这几个机制 2、面向对象的事物分为:结构事物、行为事物、分组事物、注释事物

面向对象数据库技术复习资料1

一、单选题(本大题共20小题,每小题2分,共40分) (请将最符合题意的答案代码填写在相应的题号括号内,错选、多选或未选均无分。) 1.在当前表中查询,若无满足条件的记录,下列函数中,其值为.T.的是( )。 A)BOF() B)FOUND()C)EOF()D)RECNO() 2.一数据库名为学生,要想打开该数据库,应使用命令( )。 A)OPEN 学生B)OPEN DATABASE 学生C)USE DATABASE 学生D)USE 学生 3.在下列的数据类型中,默认值为.F.的是( )。 A)数值型B)字符型C)逻辑型D)日期型 4.在Visual FoxPro中,调用表设计器建立数据库表“学生.DBF”的命令是( )。 A)MODIFY STRUCTURE 学生B)MODIFY COMMAND 学生 C)CREATE 学生D)CREATE TABLE 学生 5.下列操作中,不能用MODIFY STRUCTURE命令实现的是( )。 A)为表增加字段B)删除表中的某些字段 C)对表的字段名进行修改D)对记录数据进行修改 6.在Visual FoxPro中,下面关于自由表的叙述正确的是( )。 A)自由表和数据库表是完全相同的B)自由表不可以加入到数据库中 C)自由表不能建立字段级规则和约束D)自由表不能建立候选索引。 7.执行命令LIST NEXT 1后,记录指针的位置指向( )。 A)下一条记录B)原来的记录C)首记录D)尾记录 8.下列命令中,能够进行条件定位的命令是( )。 A)SKIP B)GO C)LOCATE D)SEEK 9.不能向表文件增加记录的命令是( )。 A)BROWSE B)APPEND C)INSERT D)REPLACE 10.对表文件中的记录进行修改,不需要交互操作的命令是( )。 A)EDIT B)CHANGE C)REPLACE D)BROWSE 11.在Visual FoxPro中,建立索引的作用之一是( )。 A)节省存储空间B)便于管理C)提高查询速度D)提高查询速度和更新速度12.在VFP中,在两个表的主索引之间建立的联系是( )。 A)一对一联系B)一对多联系 C)一对一联系和一对多联系都可以D)以上都不正确 13.设职工表和按“工作日期”索引文件已经打开,要把记录指针定位到工作刚好满90天的职工,应当使用命令( )。 A)FIND DATE()-90B)SEEK DATE()+90 C)FIND DATE()+90D)SEEK DATE()-90 14.Visual FoxPro参照完整性规则不包括( )。 A)更新规则B)删除规则C)查询规则D)插入规则 15.下列命令在不带任何子句(短语)时,可对当前表中所有记录操作的命令是( )。 A)DISPLAY B)RECALL C)DELETE D)COUNT 16.如果成功的执行了命令H—>KCH,M—>KCH,则说明( )。 A)两个KCH都是内存变量 B)前一个KCH是内存变量,后一个KCH是字段变量 C)两个KCH都是字段变量 D)前一个KCH是字段变量,后一个KCH是内存变量 17.Visual FoxPro中,使用SET RELATION命令可以建立两个表之间的联系,这种联系是( )。 A)永久联系B)临时联系或永久联系C)临时联系D)普通联系 18.Visual FoxPro在SQL方面不支持( )。 A)数据定义功能B)数据查询功能C)数据操纵功能D)数据控制功 19.在SQL查询时,用WHERE子句(短语)指出的是( )。 A)查询目标B)查询结果C)查询条件D)查询视图 20.某商场的销售数据库有如下表:部门表(部门号,部门名称)和商品表(部门号,商品 号,商品名称,单价,数量,产地)。下面SQL语句的查询结果是( )。 SELECT部门表.部门号,部门名称,SUM(单价*数量) FROM部门表,商品表; WHERE 部门表.部门号=商品表.部门号GROUP BY 部门表.部门号 A)各部门商品数量合计B)各部门商品金额合计 C)所有商品金额合计D)各部门商品金额平均值 二、多选题(本大题共5小题,每小题3分,共15分) (选对1个得1分,全对得3分,多选不得分;将最符合题意的答案直接填进括号内)

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 一、单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变. B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果. C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量. 正确答案:B 2、选出下面不能作为void Med(int x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案:B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法. B. 定义了抽象方法的类必定是抽象类. C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案:A 4、Circle是GeometricObject的子类。如果有语句:Circle circle = new Circle(1);GeometricObject object = new GeometricObject();那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject)

C. (circle instanceof Circle) D. (object instanceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 二、程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如 下,其中speedUp()方法实现加速功能,速度上限为240 km/h;speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

java面向对象知识点总结

j a v a面向对象知识点总 结 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 类和对象 类: 类是用来描述一类事物的共性内容的, 类是抽象的; 创建类,如何描述 属性功能 用变量来描述属性 用方法来描述功能 对象: 就是现实中具体的事物,对象是具体的; 创建对象 类名对象名 = new 类名(); 如何通过对象访问类中属性和方法呢 对象名.变量名 对象名.方法名(); 只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间匿名对象 创建的对象没有赋值给具体的变量; 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景

1 调用方法 2 作为参数传递 3 添加进容器中 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字This. 就代表当前对象, 普通方法, 创建对象调方法, 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项: 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 构造函数(方法) 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 构造函数何时执行 对象一创建就会调用与之相对应的构造函数

构造函数语法 修饰符没有返回值类型类名(参数列表){ 具体执行的代码 } 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造, 如果我们指定了,就不添加了 构造函数和普通函数的区别 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现 return; 3 构造函数中也可以有return关键字 成员变量和局部变量 1 作用范围不同, 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用

超级经典java基础知识总结

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,javac命令和java命令做什么事情呢?

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

Java语言编程基础知识

Java语言编程基础知识 Java语言编程基础知识 学习Java要掌握不同数据类型的变量定义与使用,掌握不同运 算符的运算规则,掌握流程控制语句的执行流程,编写方法的声明 与调用,创建数组并访问数组元素等知识。那么Java语言编程基础 知识有哪些呢,一起来看看! 1)注释 在程序开发工程中,用于解释和说明程序的文字我们称之为注释,Java中的注释分为以下几种:单行注释、多行注释、文档注释。 2)关键字 了解Java关键字的含义及特点,掌握关键字使用的注意事项。 3)标识符 了解什么是标识符,标识符的组成规则,以及标识符使用时的注意事项。 4)常量与变量 理解常量与变量的含义,并掌握常量与变量的区别、变量的定义格式以及变量的赋值。 5)数据类型 掌握Java语言的'数据类型,如基本数据类型:byte、short、int、long、float、double、char、boolean,以及引用类型:类、 接口、数组。 6)运算符

熟练掌握Java中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。 7)流程控制语句 了解什么是流程控制语句,掌握以下流程控制语句:顺序结构、选择结构、循环结构,并能够通过流程控制语句实现特定的功能。 8)方法 掌握方法的定义及格式,并能正确的调用方法,理解方法的调用过程,同时清楚方法的注意事项;掌握方法重载及其特点。 9)数组 了解数组的概念,掌握数组的定义格式、静态初始化、动态初始化,并能够理解Java中数组的内存图解。熟练掌握数组的遍历、获取最值、数组元素逆序、数组元素查找、数组排序和二分查找,以及二维数组的定义格式及初始化。

java语言与面向对象技术复习资料

一、单项选择题。 1、下列哪个是Java应用程序主类中正确的main方法?() A.public void main(String args[]) B.static void main(String args[]) C.public static void Main(String args[]) D.public static void main(String args[]) 2、下列哪项是正确的float变量的声明?() A.float foo=-1; B.float foo=1.0; C.float foo=2.02f; D.float foo=0x0123; 3、对于int a[]=new int[3];下列哪个叙述是错误的?() A.a.length的值是3。B.a[1]的值是1。 C.a[0]的值是0。D.a[a.length-1]的值等于a[2]的值。 4、下列哪个叙述是正确的?() A.5.0/2+10的结果是double型数据。 B.(int)5.8+1.0的结果是int型数据。 C.’苹’+’果’的结果是char型数据。 D.(short)10+’a’的结果是short型数据。 5、对于下列Hello类,哪个叙述是正确的?() A.Hello类有2个构造方法。 B.Hello类的int Hello()方法是错误的方法。 C.Hello类没有构造方法。 D.Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。class Hello { Hello (int m) { } int Hello() { Return 20; } hello() { } } 6、下列哪个叙述是正确的?() A.成员变量的名字不可以和局部变量的名字相同。 B.方法的参数的名字可以和方法中声明的局部变量的名字相同。 C.成员变量没有默认值。 D.局部变量没有默认值。 7、下列哪个叙述是正确的?()

2019级面向对象技术复习提纲-10页文档资料

2012级面向对象技术复习提纲 概念部分 1 理解面向对象的思想(封装性、继承性、多态性),作出一个简述。 2 理解多态性的概念和应用,理解动态绑定机制。 3 什么是用例图,用例图有哪些部分组成。用例图中参与者之间的关系有哪些?用例之间的关系有哪些? 4 试描述用例图在UML中的地位和作用。 5 掌握用例模型的获取方法。 6 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。 7 对象与类的概念;类图有哪些元素构成?类之间的关系有哪些?掌握UML中类图的绘制方法。 8 简述类的聚合和组合关系的异同点。 9在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。 10什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型。11理解对象图的概念,对象图的适用场景以及它的优缺点。 12互图(时序图与协作图)的概念与作用,掌握其的绘制方法。 13、状态图概念与作用,掌握活动图、状态图的绘制方法。 14类的设计原则包括哪些内容? 15 包图与组件图的概念,掌握包图的设计原则,包括稳定性和抽象度的衡量方法。 16掌握设计模式、软件复用的概念,掌握所介绍的各种设计模式(单实例、

工厂、适配器、对象装饰、桥接、职责链、策略等)的用途,类图,以及相关实例。 综合部分 17观察一部电梯的运行方式,并用状态图描述它的各种状态(简化为“第一层”、“向上运动”、“向下运动”、“等待”、“运动到第一层”五种状态)和可能转移。 18简单的数字钟包含两个按钮A和B,系统启动后进入显示时间(时、分、秒)状态。在显示时间状态下按钮A用于切换显示时间->设置小时->设置分钟->显示时间等状态;在设置小时、设置分钟状态下按B键用于修改时间。试画出其状态转换图。 19 用状态图描述顾客在ATM机上的操作过程。ATM机主要包括等待顾客插入磁卡的起始状态和结束服务的终止状态,以及输入密码、选择服务类型、存款及取款等状态。顾客插入磁卡后进入输密码状态,当密码输入正确时进入选择服务类型状态,当输入密码不正确时,停留在原状态,但如果三次不正确,服务结束。进入选择服务类型后根据选择的不同,顾客可进入存款和取款状态。存、取款结束后,顾客既可以选择结束服务到最终状态,也可以选择继续服务回到选择服务类型状态。 20. 信用卡可能处于“开放”和“关闭”状态,其中“开放”状态可以直接进入“关闭”状态,而从“关闭”状态必须提供密码验证才能进入“开放”状态,“开放”状态又包括“透支”和正常状态之间的变化,当剩余金额少于0,或者使用额度大于剩余金额,或者结算余额小于0时进入透支状态,反之则为正常状态。画出信用卡的状态转换图。

相关文档
相关文档 最新文档