面向对象程序设计1
- 格式:doc
- 大小:114.50 KB
- 文档页数:12
《面向对象程序设计》教案一、教案简介本教案旨在帮助学生掌握面向对象程序设计的基本概念、原理和方法,培养学生的编程能力和软件开发思维。
通过本课程的学习,学生将能够熟练运用面向对象的编程语言,如Java或C++,进行软件开发和设计。
二、教学目标1. 了解面向对象程序设计的基本概念,如类、对象、封装、继承和多态等。
2. 掌握面向对象程序设计的基本原则,如单一职责原则、开闭原则、里氏替换原则等。
3. 学会使用面向对象的编程语言进行程序设计和开发。
4. 培养学生的软件开发思维和团队协作能力。
三、教学内容1. 面向对象程序设计的基本概念1.1 类与对象1.2 封装1.3 继承1.4 多态2. 面向对象程序设计的基本原则2.1 单一职责原则2.2 开闭原则2.3 里氏替换原则2.4 接口隔离原则2.5 依赖倒置原则3. 面向对象的编程语言3.1 Java3.2 C++4. 面向对象的设计模式4.1 创建型模式4.2 结构型模式4.3 行为型模式四、教学方法1. 讲授法:讲解面向对象程序设计的基本概念、原理和编程方法。
2. 案例分析法:分析实际项目中的面向对象设计案例,让学生理解并掌握面向对象的设计思想。
3. 实践操作法:让学生通过编写代码,亲身体验面向对象程序设计的流程和方法。
4. 小组讨论法:分组进行讨论,培养学生的团队协作能力和解决问题的能力。
五、教学评价1. 课堂参与度:评估学生在课堂上的发言和提问情况,了解学生的学习兴趣和积极性。
2. 课后作业:布置相关的编程作业,检查学生对面向对象程序设计知识的掌握程度。
3. 项目实践:评估学生在团队项目中的表现,包括代码质量、设计思路和团队协作能力。
4. 期末考试:全面测试学生对面向对象程序设计知识的掌握情况。
六、教学资源1. 教材:推荐《Java面向对象程序设计》、《C++ Primer》等经典教材。
2. 在线资源:提供相关的在线教程、视频课程和编程练习平台,如慕课网、Coursera、LeetCode等。
实验一类和对象一、实验目的:掌握类的设计和对象的创建及相关知识点如对象数组、类聚合、友元函数、静态成员。
二、实验内容:1、设计圆类,求两个圆的位置关系;2、设计圆类和直线类,求直线与圆的位置关系;3、设计学生类,求某班学生成绩的最高分、最低分及平均分;4、设计部门类和教师类,其中部门类成员为教师类的子对象;5、设计家庭银行账户类,其中账户资金为静态数据成员,为家庭成员共享;6、设计复数类,友元函数实现复数的加减。
三、实验过程:1、根据实验题目确定需要设计哪些类、各类中包含哪些数据成员和函数成员,设计各成员的访问权限,设计数据成员的数据类型,设计函数成员的函数原型;2、给出类设计的程序实现,特别要注意重载构造函数的实现;3、在主函数中完成题目中的逻辑,一般情况下需要创建相关类的对象,通过对象对成员函数的调用或者通过对象指针对成员函数的调用完成相应的功能。
四、参考程序代码:1、设计圆类,求两个圆的位置关系#include <iostream>#include <math.h>using namespace std;class Circle{private:float a,b,r;public:Circle(float c,float d,float e){a=c;b=d; r=e;}friend void position(Circle &,Circle &);};void position(Circle &c1,Circle &c2){float n,m,p;p=sqrt((c1.a-c2.a)*(c1.a-c2.a)+(c1.b-c2.b)*(c1.b-c2.b)); n=fabs(c1.r-c2.r);m=c1.r+c2.r;if(p>m)cout << "相离";if(p==m)cout << "相切";if(p<m)cout << "相交";}int main(){float a,b,c,d,e,f;cin >> a >> b >> c >> d >> e >> f ;Circle c1(a,b,c),c2(d,e,f);position(c1,c2);return 0;}运行结果:2、设计圆类和直线类,求直线与圆的位置关系#include<iostream>#include<math.h>using namespace std;class Circle//圆类{private:float x,y,r;public:Circle(float a,float b,float c) {x=a;y=b;r=c;}float getx(){return x;}float gety(){return y;}float getr(){return r;}};class Line//直线类{private:float a,b,c;public:Line(float x,float y,float z){a=x;b=y;c=z;}void position(Circle c1){float d=fabs(a*c1.getx()+b*c1.gety()+c)/sqrt(a*a+b*b) ;//圆心到直线的距离if(d<c1.getr())cout << "相交";if((d-c1.getr())<0.000001)cout << "相切";cout << "相离";}};int main(){Line l1(3,3,4);//创建直线对象Circle c1(-23,3,7);//创建圆对象l1.position(c1);return 0;}运行结果:3、设计学生类,求某班学生成绩的最高分、最低分及平均分#include <iostream>#include <string.h>using namespace std;class Student{private:char name[20],xuehao[20];float math;public:Student(){}Student(char *na,char *xu,float ma):math(ma) {strcpy(name,na);strcpy(xuehao,xu);}void set(char *na,char *xu,float ma){math=ma;strcpy(name,na);strcpy(xuehao,xu);}char *get_name(){return name;}char *get_xuehao(){return xuehao;float get_math(){return math;}};void max_min(Student stu[],int n){Student max,min;max=min=stu[0];for(int i;i<n;i++){if(stu[i].get_math()>max.get_math())max=stu[i];if(stu[i].get_math()<min.get_math())min=stu[i];}cout << "学生成绩最高:" << max.get_name() << "," << max.get_xuehao() << "," << max.get_math() << endl;cout << "学生成绩最低:" << min.get_name() << "," << min.get_xuehao() << "," << min.get_math() << endl;}void ave(Student stu[],int n){float sum=0;for(int i=0;i<n;i++){sum=sum+stu[i].get_math();cout << "ave=" << sum/n;}int main(){char na[20],xu[20];float ma;Student stu[20];int n;cout << "请输入学生总人数"; cin >> n;for(int i=0;i<n;i++){cin >> na >> xu >> ma ; stu[i].set(na,xu,ma); }max_min(stu,n);ave(stu,n);return 0;}运行结果:4、设计部门类和教师类,其中部门类成员为教师类的子对象#include <iostream>#include <string.h>using namespace std;class Department{private:int dep_num;char dep_master[20];char dep_name[20];public:Department(){}Department(int num,char *ma,char *na){dep_num=num;strcpy(dep_master,ma);strcpy(dep_name,na);}void show(){cout << dep_num << "," << dep_master << "," << dep_name ; }};class Teacher{private:char name[20];char haoma[20];Department dep;public:Teacher(char *n,char *nu,int num,char *ma,char *na):dep(num,ma,na) {strcpy(name,n);strcpy(haoma,nu);}void show(){dep.show();cout << "," << name << "," << haoma << endl;}};int main(){Teacher hp("wanghai","12345",6,"kiki","computer");hp.show();return 0;}运行结果:5、设计家庭银行账户类,其中账户为静态数据成员,为家庭成员共享#include <iostream>#include <string.h>using namespace std;class Familymember//家庭成员类{private:char membername[10];//成员名public:static float account;//共享账户资金 Familymember(char *name);static void save(float money);//存钱 static void pay(float money);//支出 static void show(); //显示账户余额};float Familymember::account=0;Familymember::Familymember(char *name) {strcpy(membername,name);}void Familymember:: save(float money) {account= account+money;}void Familymember:: pay(float money){account= account-money;}void Familymember:: show(){cout<<account<<endl;}int main()//主函数{ Familymember husband("wang"),wife("Li"); husband.save(10000);wife.pay(3000);wife.save(5000);wife.show();husband. show();}运行结果:6、设计复数类,友元函数实现复数的加减#include <iostream>using namespace std;class Fushu{private:float ss,xs;public:Fushu(){}Fushu(float a,float b){ss=a;xs=b;}friend Fushu jiafa(Fushu &f1,Fushu &f2){return Fushu((f1.ss+f2.ss),(f1.xs+f2.xs)); }friend Fushu jian(Fushu &f1,Fushu &f2){return Fushu((f1.ss-f2.ss),(f1.xs-f2.xs)); }void show(){cout << ss << " + " << xs << "i" << endl; }};int main(){Fushu f1(2,3),f2(4,5);Fushu f3,f4;f3=jiafa(f1,f2);f4=jian(f1,f2);f3.show();f4.show();return 0;}运行结果:。
《面向对象程序设计》实验一实验报告1 实验目的:(1)了解在VC++、C-free中如何编辑、编译、连接和运行一个C++程序;(2)掌握声明类的方法,类和类的成员的概念以及定义对象的方法(3)了解多文件的C++程序结构2 实验任务(1)输入两个整数,将它们按由大到小的顺序输出。
要求使用变量的引用;(2)编写一个程序,将两个字符串连接起来,结果取代第一个字符串;(3)声明Animal 类,数据成员有age,成员函数有SetAge()等。
首先把数据成员声明为公有的,在main()函数中访问,再把它改为私有的,指出在main()函数中访问会出现怎样的情况,如何避免?该程序需要在同一个文件中分别给出类的声明、类的实现、类的演示每部分的代码。
(4)声明日期类,数据成员有year、month、day,成员函数有输出日期、加一天等。
练习使用多文件结构来组织程序。
3 程序清单实验一:#include"iostream"using namespace std;int main(){int i,j;cout<<"input two number"<<endl;cin>>i>>j;swap(i,j);cout<<i<<","<<j<<endl;return 0;}void swap(int &a,int &b){int temp;temp=a;a=b;b=temp;}实验二:#include"iostream"#include"string"using namespace std;int main(){string string1,string2;cout<<"please input two string:";cin>>string1>>string2;string1=string1+string2;cout<<string1<<endl;return 0;}实验三:4 运行结果图1.1 任务一运行结果图2.1任务二运行结果5 总结或感悟(对运行结果所作的分析以及本次调试程序所取得的经验。
面向对象程序设计的方法面向对象程序设计(Object-Oriented Programming,简称OOP)是一种程序设计方法,它以对象为基本单位,通过封装、继承和多态等概念来组织和管理代码。
以下是一些常用的面向对象程序设计方法:1.封装(Encapsulation):封装是将数据和操作封装在一个对象中的过程。
通过封装,对象可以隐藏内部实现细节,并提供公共接口供其他对象进行交互。
封装有助于提高代码的可维护性、重用性和安全性。
2.继承(Inheritance):继承是指一个类可以继承另一个类的属性和方法。
通过继承,子类可以拥有父类的特性,并可以在此基础上添加、修改或覆盖功能。
继承有助于代码的重用和组织,同时支持创建层次结构和多态性。
3.多态(Polymorphism):多态是指同一个方法可以根据调用的对象不同而表现出不同的行为。
多态可以通过继承和接口实现。
它允许不同类型的对象对同一个方法进行不同的实现,提高代码的灵活性和扩展性。
4.抽象(Abstraction):抽象是将问题领域的实体和行为抽象化为类和方法的过程。
通过抽象,可以从复杂的现实世界中提取出关键概念和通用行为,以简化设计和实现过程。
抽象有助于构建更高层次的模型和逻辑结构。
5.接口(Interface):接口定义了一组方法的规范,但不提供具体的实现。
通过接口,可以定义对象之间的约定和交互方式,实现了代码的松耦合和可替换性。
接口可以用于实现多态性和组件的独立开发。
6.类(Class):类是对象的蓝图或模板,描述了对象的属性和行为。
通过类,可以创建具体的对象实例,并对其进行操作。
类是面向对象编程的基本单位,用于组织和封装相关的数据和方法。
面向对象程序设计教案第一章计算机与程序设计基本内容:1.把程序及其相关文档资料称为软件。
2.程序设计语言是人类用来向计算机传递信息的表示方法、约定和规则的集合。
3.传统的程序设计语言是过程性语言,使用这类语言编制程序的主要工作,是设计解题过程,因此称为面向过程程序设计。
4.用模块化、抽象、信息隐藏、局部化和模块化独立等原理及结构程序设计技术指导面向过程程序设计,能够提高软件开发效率,增加软件的可理解性和可维护性。
这些方法不仅适用于面向过程程序设计也适用于面向对象程序设计方法。
5.面向对象方法有四个要点,只有同时使用对象、类、继承和消息的方法,才是真正的面向对象方法。
学习面向对象程序设计,首先要学会面向对象的思维解题方法。
各种面向对象的程序设计语言,无非是实现面向对象解题方法的工具。
6.面向对象方法的主要优点是,接近人类习惯的思维方法、稳定性好、可重用性好和可维护性好。
是解决软件开发面临的难题的最有希望最有前途的方法之一。
1.1 计算机的基本结构1.2 程序设计语言一、机器语言(machine language):以0和1表示手工操作二、汇编语言(assembler language):例如mov ax,100add ax,bx等开始使用批处理(batch processing)三、高级语言(high-level language):如60年代的ALGOL四、结构化程序设计(structured programming)整个程序是一个模块层次(hierarchy of modules)每一模块内既有数据,又有代码,用于按一定算法对代码进行操作如FORTRAN,C等五、面向对象的程序设计(Object-Oriented Programming, OOP)1.3 面向过程程序设计三种基本结构:1、顺序结构。
2、选择结构。
3、循环结构:当型循环结构;直到型循环结构。
结构化程序设计方法:1、自顶而下;2、逐步细化;3、模块化设计;4、结构化编码。
面向对象程序设计面向对象程序设计(Object-Oriented Programming,简称OOP)是一种编程范式,它使用“对象”来设计软件。
对象可以包含数据(通常称为属性)和代码(通常称为方法或函数)。
面向对象程序设计的核心概念包括封装、继承、多态和抽象。
封装封装是将数据(属性)和操作这些数据的方法(行为)绑定在一起的过程。
封装的目的是隐藏对象的内部状态和实现细节,只暴露出一个可以被外界访问的接口。
这样,对象的使用者不需要了解对象内部的复杂性,只需要通过公共接口与对象交互。
继承继承是一种机制,允许新创建的类(子类)继承现有类(父类)的属性和方法。
这使得代码重用变得可能,同时也支持层次结构的创建。
子类可以扩展或修改父类的行为,但通常保持父类的大部分功能。
多态多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
在面向对象编程中,多态性通常是通过方法重载(同一个类中多个同名方法,参数不同)和方法重写(子类重写父类的方法)实现的。
抽象抽象是简化复杂的现实世界问题的过程,只关注对于当前目标重要的方面,忽略不相关的细节。
在面向对象编程中,抽象通常是通过创建抽象类和接口来实现的。
抽象类可以包含抽象方法,这些方法没有具体的实现,必须由子类提供。
类和对象类是创建对象的蓝图或模板,定义了对象的结构和行为。
对象是根据类创建的实例,具有类定义的属性和方法。
每个对象都是唯一的,即使它们是同一个类的实例。
面向对象设计原则在面向对象设计中,有几个关键的设计原则,如单一职责原则、开放-封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则等。
这些原则帮助开发者创建灵活、可维护和可扩展的系统。
面向对象的优势- 代码重用:通过继承和多态性,可以减少代码重复。
- 易于维护:封装和抽象使得修改系统的一部分不会影响其他部分。
- 模块化:系统被分解为独立的模块,每个模块负责特定的功能。
- 可扩展性:系统可以容易地扩展新功能,而不需要重写现有代码。
面向对象程序设计课后习题答案第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:每一个对象必须有一个名字以区别于其他对象。
需要用属性来描述它的某些特性。
有一组操作,每一个操作决定了对象的一种行为。
对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
面向对象程序设计面向对象程序设计(Object-oriented programming,简称OOP)是一种常用的编程方法,它以对象作为程序的基本单位,将数据和操作封装在一起,通过对象之间的交互实现程序的功能。
本文将介绍面向对象程序设计的基本概念和原则,并通过举例说明其在实际编程中的应用。
一、面向对象程序设计的基本概念面向对象程序设计有以下几个基本概念:1. 对象:对象是面向对象程序设计的基本单元,它将数据和操作封装在一起。
每个对象都有其特定的属性和方法。
2. 类:类是对象的模板,描述了一类对象的共同特征和行为。
通过类可以创建多个对象。
3. 封装:封装是指将数据和操作封装在类中,外部程序只能通过类的接口来访问对象的属性和方法。
封装可以隐藏对象内部的细节,提高代码的安全性和可维护性。
4. 继承:继承是指通过一个已存在的类派生出一个新类,新类将继承父类的属性和方法。
继承可以避免重复编写代码,提高代码的复用性和可扩展性。
5. 多态:多态是指同一种操作作用于不同的对象上,会产生不同的行为。
通过多态,可以使程序更加灵活,减少代码的依赖性。
二、面向对象程序设计的原则面向对象程序设计有以下几个原则:1. 单一职责原则:一个类应该只有一个引起它变化的原因。
每个类应该只负责完成一个具体的功能,保持类的职责单一。
2. 开放封闭原则:软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。
即应该通过扩展来实现软件的变化,而不是通过修改已有的代码。
3. 里氏替换原则:子类可以替换父类并且能够正常工作。
在使用继承时,需要确保子类能够完全替换父类,而不会产生错误或异常。
4. 接口隔离原则:客户端不应该依赖它不需要的接口。
接口应该精简而独立,不应该包含多余的方法。
5. 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象。
抽象不应该依赖具体实现细节,具体实现应该依赖抽象。
三、面向对象程序设计的应用举例以下是一个简单的面向对象程序设计的示例:```pythonclass Shape:def area(self):passdef perimeter(self):passclass Rectangle(Shape):def __init__(self, width, height):self.width = widthself.height = heightdef area(self):return self.width * self.heightdef perimeter(self):return 2 * (self.width + self.height) class Circle(Shape):def __init__(self, radius):self.radius = radiusdef area(self):return 3.14 * self.radius * self.radius def perimeter(self):return 2 * 3.14 * self.radius rectangle = Rectangle(5, 6)circle = Circle(3)print(rectangle.area()) # 输出:30print(rectangle.perimeter()) # 输出:22print(circle.area()) # 输出:28.26print(circle.perimeter()) # 输出:18.84```在上述示例中,我们定义了一个基类Shape,它包含了计算面积和周长的方法。
C++面向对象程序设计课后答案(1-4章)第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
面向对象程序设计的开发方法与技巧面向对象程序设计(Object-Oriented Programming, OOP)是一种程序设计范式,它将程序的组织和结构建立在对象的概念上。
在OOP中,程序由一个个互相独立的对象组成,每个对象都拥有自己的状态和行为,并且可以与其他对象进行互动和协作。
这种设计思想使得程序更加模块化、可维护和可扩展。
然而,要想写出高质量的OOP程序,需要掌握一些开发方法和技巧。
1. 抽象与封装抽象是指从事物的本质特征中,抽离出重要的、具有代表性的特征,形成一个新的概念。
在OOP中,抽象通常表示为一个对象的类(class)。
类是一种抽象的数据类型,它描述了一组具有相似的属性和行为的对象。
封装是指将对象对外部隐藏起来,只提供必要的接口(方法)来进行交互。
封装可以使对象的状态更加安全,也可以使程序更加清晰和模块化。
在实现时,可以使用访问控制符(public、private、protected)来控制属性的可见性。
2. 继承与多态继承是指子类继承父类的特性,并且可以在其基础上添加一些新的特性。
继承可以使代码更加简洁和易于维护。
多态是指同一类型的对象在不同的情境下表现出不同的行为和状态。
多态可以让代码更加灵活和可扩展。
要实现继承和多态,可以使用继承(extends)和重写(override)来定义子类和父类之间的关系,以及接口(interface)和实现(implements)来创建多态的效果。
3. 明确责任和定义接口在进行OOP开发时,要明确每个对象的责任和职责,以及它们与其他对象的交互方式。
任何一个对象都应该有一个单一的职责,而不是承担过多的任务。
同时,每个对象之间应该定义清晰的接口,以避免直接依赖和紧耦合。
接口应该尽可能简单、稳定和灵活,而不是过于复杂和臃肿。
在设计接口时,可以使用抽象类、接口或者回调函数来实现。
4. 使用设计模式设计模式是一种被广泛应用于OOP开发中的经验总结,它提供了一些经典的、可重用的模式,用于解决特定的问题和情境。
面向对象程序设计课程期末复习一、填空题1.Java源程序的扩展名是.java ,经过编译后的程序的扩展名是.class 。
2.Socket通常也称为套接词,用于描述IP地址和端口。
3.线程的优先级在0 至31 之间,数值越大任务越紧急4.构造方法是一种特殊的成员方法,构造方法名与类名相同5.Java语言只允许单继承,指每个类只能有一个父类。
6. 在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
7. 对象是Java程序中基本的结构单位。
8. 组件不能独立地显示出来,必须将组件放在一定的容器中才能显示。
9. 能将显示空间分成很多层的布局管理器是CardLatyout。
10. 任何一个Java程序都默认引入一个包,这个包的名字叫 ng。
11. Java语言中,有一个类是所有类或接口的父类,这个类的名称是Object。
12. 只能被同一包中的类访问的类中定义的成员变量是default成员13. J2EE是大型企业级用容器管理专用组件的应用平台。
14. 在Java语言中,用abstract修饰符定义的类为抽象类。
15.Swing中用来表示面板的类是16.Collection的接口和类的API18.main方法的声明格式包括public static void main(String[]args)19.下列程序中构造了一个SET并且调用其方法add(),输出结果是 ( 1 )public class A{public int hashCode(){return 1;}public Boolean equals(Object b){return true}public static void main(String args[]){ Set set=new HashSet();set.add(new A());set.add(new A());set.add(new A());System.out.println(set.size());}}20.下列程序的运行结果是class A{class Dog{private String name;private int age;public int step;Dog(String s,int a){name=s;age=a;step=0;}public void run(Dog fast){fast.step++;}}public static void main (String args[]){A a=new A();Dog d=a.new Dog("Tom",3);d.step=25;d.run(d);System.out.println(d.step);}}21.Java语言中, final 类不能被继承。
22.Java中的构造方法名必须与类名同名,它没有返回值。
23.AWT中用来表示对话框的类是 java.awt.Dialong 。
24.Frame框架窗口的默认布局管理器是 BorderLayout 。
25.点击窗口内的按钮时,产生的事件是 ActionEvent 。
三、多项选择1.执行下列代码后,哪个结论是正确的 String[] s=new String[10]; BDA、 s[10] 为 "";B、 s[9] 为 null;C、 s[0] 为未定义D、 s.length 为102.下面的表达式哪个是正确的? AEA、 String s="你好";int i=3; s+=i;B、 String s="你好";int i=3; if(i==s){ s+=i};C、 String s="你好";int i=3; s=i+s;D、 String s="你好";int i=3; s=i+;E、. String s=null; int i=(s!=null)&&(s.length>0)?s.length():0;3.选出合理的标识符ACA、 _sys1_lllB、 2mailC、 $changeD、 class4.哪个布局管理器使用的是组件的最佳尺寸( preferred size)AEA、 FlowLayoutB、 BorderLayoutC、 GridLayoutD、 CardLayoutE、GridBagLayout5.下列哪个方法可用于创建一个可运行的类? AEA、 public class X implements Runable{ public void run(){ ......} }B、 public class X implements Thread{ public void run(){ ......} }C、 public class X implements Thread{ public int run(){ ......} }D、public class X implements Runable{ protected void run(){ ......} }E、public class X implements Thread{ public void run(){ ......} }6.下面哪个方法可以在任何时候被任何线程调用? DEFA、 notify()B、 wait()C、 notifyAll()D、 sleep()E、yield()F、synchronized(this)7.构造BufferedInputStream的合适参数是哪个? ACA BufferedInputStreamB BufferedOutputStreamC FileInputStreamD FileOuterStreamE. File8.下列说法正确的是BCA ng.Clonable是类B ng.Runnable是接口C Double对象在ng包中D Double a=1.0是正确的java语句9.指出正确的表达式ABA double a=1.0;B Double a=new Double(1.0);C byte a = 340;D Byte a = 120;10.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:CDA private class MyClass extends ObjectB class MyClass extends ObjectC public class MyClassD public class MyClass extends Object11.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。
CDA public int add(int a)B public void add(long a)C public void add(int a,int b)D public void add(float a)12.如果下列的方法能够正常运行,在控制台上将显示什么?ACDpublic void example(){try{unsafe();System.out.println("Test1");}catch(SafeException e){System.out.println("Test 2");}finally{System.out.println("Test 3");}System.out.println("Test 4");}A Test 1B Test 2C Test 3D Test 413.下列哪些情况可以终止当前线程的运行?ABDA 抛出一个例外时。
B 当该线程调用sleep()方法时。
C 当创建一个新线程时。
D 当一个优先级高的线程进入就绪状态时。
四、程序阅读与填空题1. 阅读程序给出结果下列程序段用来计算Fibonacci序列的第0,1,2,…各项public class Fibonacci {public static void main(String args[]) {System.out.println("Fibonacci 第4项="+ fib(4)); }static int fib(int n) {if (n==0||n==1) {return n;}else {int sum=fib(n-1)+fib(n-2);return sum;}}}输出结果为:(2)32. 按注释提示完成文件复制的程序//FileStream源代码如下:import java.io.*;class FileStream {public static void main(String args[]) {try{File inFile=new File("file1.txt"); //指定源文件File outFile=new File("file2.txt"); //指定目标文件FileInputStream fis=(1)new FileInputStream(inFile); FileOutputStream fos=new FileOutputStream(outFile);int c;//逐字节从源文件中输入,再输出到fos流while((c=fis.read())!=-1)(2)fos.write(c) ;fis.close();fos.close();}catch(Exception e) {System.out.println("FileStreamsTest: "+e);}}}3. 阅读程序,给出结果//B.java源代码如下:class A{int x=100;}class B extends A{int x=200;void prt(){System.out.println("SubClass: "+x);System.out.println("SuperClass: "+super.x);}public static void main(String args[]){new B().prt();}}结果:SubClass:200 SuperClass: 1004. 阅读程序,给出结果:// AbstractClassDemo.java源代码如下:abstract class Shape { //定义抽象类Shape和抽象方法displayabstract void display();}class Circle extends Shape {void display() { //实现抽象类的方法System.out.println("Circle");}}class Rectangle extends Shape {void display() { //实现抽象类的方法 System.out.println("Rectangle"); }}class Triangle extends Shape {void display() { //实现抽象类的方法System.out.println("Triangle");}}public class AbstractClassDemo{public static void main(String args[]){(new Circle()).display(); //定义无名对象来调用对应的display方法(new Rectangle()).display();(new Triangle()).display();}}结果:Circle Rectangle Triangle五、判断题F1. 下述代码是否正确int b[5];for(int i=0;i<5;i++)b[i]=i;F2. 下述代码是否正确char b="A";System.out.println("b = " + b);T3.接口中的方法都是抽象方法。