java语言与面向对象技术复习资料
- 格式:docx
- 大小:29.34 KB
- 文档页数:10
实用文档Unit1:1.面向对象中类的概念:类是创建对象的模版,定义了对象的属性和方法;类中的属性赋予确定的取值得到该类的一个对象,对象是类的实例。
2.阐述类属性和操作的概念和作用?属性:已被命名的类的特性,描述对象的特征操作:是类的特征,用来定义如何激活该类对象的行为,类操作是对类属性的处理3.面向对象中对象的概念所要解决的现实世界的问题抽象为软件对象;需求描述问题域中拥有属性的实体或概念都可以看做对象。
4.阐述类与对象的联系类是一组对象的描述类是创建对象的模板,对象是类的实例类是一种数据类型,可以使用类名称声明对象变量5.阐述类与对象的区别抽象和具体,模板与实例6.类是否是数据类型?与你学过的其他类型进行比较,有何不同?类是一种数据类型,称之为对象类型,所以可以使用类名称声明对象。
类可以包含多个数据类型。
7.变量UML类图中类及其类中属性和方法如何表示?类名,类属性,类方法,各占一行8.UML类图中类与类之间的继承关系如何表示?其代表的含义是什么?实心线空心箭头;指一个类自动拥有另一个类的所有数据和操作。
9.UML类图中类与类之间的关联关系如何表示?其代表的含以是什么?实用文档单向为实心箭头,双向为实心直线;指一个类拥有另一个类的一到多个对象10.如果UML类图中类A与类B之间是1对多的关联关系,关联属性的数据类型是什么?类B对象的容器类型11.如果UML类图中类与类之间1对1的关联关系中,关联属性的数据类型是什么?被关联类的对象类型12.根据用户需求,建立面向对象设计方案—UML类图的方法和步骤是什么?分析需求,找出类,类之间的关系,类的属性,定义类的方法,绘制类图13.一般情况下,每个类都应该提供哪些常用的方法?增删改查,add, remove, set, get14.一般情况下,包含容器的类应该提供哪些常用的方法?获取容器,返回容器迭代器或迭代器接口Unit2:1.撰写java类的具体语法2.根据Java类,Java对象变量如何声明?Java对象如何创建与使用?类名变量名(参数); new方法3.什么是Java引用(变量),其内涵是什么?地址,其值指向对象所在内存中的位置。
复习提纲--Java面向对象程序设计第一章Java概述1. Java有哪些特性?(最大的特性是平台无关性)2. JDK与JRE的区别。
3. JDK的有哪三个不同平台?(Java SE,Java EE,Java ME)4. PATH与CLASSPA TH的作用。
5. Java文件、类格式文件的扩展名是什么?6. Java编译命令和运行命令是什么?第二章基本程序设计1. 如何从控制台读取数据?如何向控制台输出数据?2. 辨别合法和非法的标识符。
3. 8种基本数据类型的字节数和直接量,科学记数法。
4. 什么是常量?5. 整数除法的运算结果,余数运算,自增自减运算,简捷运算符。
6. 隐式数值类型转换和强制数据类型转换。
7. Unicode。
8. String类和连接运算。
9. 程序设计错误类型:语法错误、运行错误、逻辑错误。
第三章选择1. else与if配对原则。
2. switch表达式的取值是什么数据类型?3. 短路逻辑运算符。
4. 条件运算符。
5. if和switch语句编程。
第四章循环1. while, do…while, for, break, continue语句编程。
第五章方法1. 方法有哪些组成部分?方法签名包括哪些部分?2. 方法的形参和实参。
3. 方法调用和返回。
方法参数的传递。
4. 什么是方法重载?5. 变量的作用域。
6. 用方法进行编程第六章一维数组1. 用普通for语句和for-each语句循环遍历数组2. 传递数组给方法3. 可变长参数列表4. 用一维数组进行编程第七章多维数组1. 遍历二维数组第八章对象和类1. 什么是类?什么是对象?如何定义类和创建对象?2. 什么是构造方法?它有哪些特点?什么是无参构造方法?什么是默认构造方法?3. 如何声明对象引用变量?如何访问对象的成员方法和成员变量?4. 不同类型的数据域(成员变量)的默认值分别是什么?5. 基本类型变量和引用类型变量的区别。
1.标识符合法判断2.数组定义与引用3.整除、求余操作4.字符串基本操作5.表达式合法性判断、三元表达式用法及简单计算【A ?B :C】6.注释用法,单行注释、多行注释和文档注释各自语法及用途7.构造方法以及作用【带参数和不带参数的构造方法应用以及子类调用父类构造方法】8.类及其属性、方法修饰符【访问范围】9.修饰符混用:abstract不能与final并列修饰同一个类【正确】;abstract类中不可以有private的成员【正确】;abstract方法必须在abstract类中【错误】;static方法中能处理非static的属性【正确】10.抽象方法抽象类11.接口的继承特点,类的继承【子类访问父类变量和方法问题、变量隐藏】特点、多态、子类调用父类相同名字的变量和方法。
12.创建对象数量问题:【1】String s1="bc"; String s2="bc";【2】Strings1="bc"; String s2=new String("bc");13.方法返回类型及方法的定义14.final变量及特点15.静态变量和非静态变量16.abstract和final修饰符17.综合【一般类的编写:成员变量和成员方法,抽象类使用、接口定义及使用、水仙花数、素数、回文数等】18.讨论分析(1)如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。
(2)最终类不能派生子类,最终方法不能被覆盖。
(3)Java中的String类的对象既可以是字符串常量,也可以是字符串变量。
(4)Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。
(5)设String对象s=”Hello ”,运行语句System.out.println(s.concat(“World!”));后String对象s的内容为”Hello world!”,所以语句输出为Hello world!(6)System类不能实例化,即不能创建System类的对象。
JAVA语言与面向对象程序设计期末复习题2011年上(一)单项选择题(二) 1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
A. 颜色B. 动态C. 状态D. 重量2.使用JDK编译ja v a程序时使用的命令是()。
A. javaB. javacC. appletviewerD. javadoc3.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符()。
A. privateB. protectedC. publicD. static4.在类的定义中,若需要把一个标识符定义为常量,则使用的修饰符为()。
A. constB. finalC. staticD. class5.在程序中声明包的语句关键字为()。
A. volatileB. packC. importD. package6.在一个方法的方法头(声明)中向调用它的上一层方法抛出异常的子句关键字为()。
A. catchB. throwC. throwsD. finally7.在类定义首部的语法格式中,()不能作为其中的修饰符。
A. publicB. protectdC. extendsD. abstract8.下列哪个类不是异常类的父类?()。
A. ErrorB. ThrowableC. ExceptionD. Object9.下面的关键字()与异常处理无关。
A. throwB. throwsC. importD. finally10.在读字节文件Employee.dat 时,使用该文件作为参数的类是()。
A. BufferedReaderB. DataInputStreamC. DataOutputStreamD. FileInputStream(二)填空题1.Java类库也称为Java API,它是Application Programming Interface的缩写,中文含义为________。
2.Java语言中用于修饰类的成员具有保护或私有访问属性的关键字分别为________和________。
复习1保留字goto2.标识符数字、字母、下划线、$组成,不能以数字开头,不能使用关键字或保留字,不能包含空格,不能包含除$以外的符号,不能包含中文起名规范:包名:所有字母小写:aaabbbccc类名/接口名:所有单词首字母大写:AaaBbbCcc变量名/函数名:第一个字母全小写,后面单词首字母大写:aaaBbbCcc常量名:所有字母大写,单词之间用下划线连接:AAA_BBB_CCC3.基本数据类型、字节数、大小、包装类byte 1字节2^7-1 Byteshort 2字节2^15-1 Shortint 4字节2^31-1 Integerlong 8字节2^63-1 Longfloat 4字节2^31-1 Floatdouble 8字节2^63-1 Doublechar 2字节2^15-1 Characterboolean 1位Boolean4.a++、++ab=a++:temp=a,a=a+1,b=tempb=++a:a=a+1,b=a5.&和&&的区别&:无论左侧结果是什么,两侧都需要进行运算&&:当左侧为false时,右侧不参与运算6.最有效的方式计算2乘以82<<37.if和switch的区别if后面是条件表达式,返回的是boolean类型,switch后面是byte/short/int/char类型的表达式8.能被switch的数据类型有哪些boolean、short、int、char(jdk1.7之后增加了String)9.for循环执行顺序for(初始化表达式1;循环条件表达式2;循环后操作表达式3){执行语句(循环体);}执行顺序:先执行表达式1进行初始化;根据表达式2判断是否执行循环体,如果返回true 执行循环体,如果false退出循环;执行完循环体一次后,执行表达式3,这个过程修改变量;再执行表达式2以此循环10.数组和链表的区别数组链表查快慢改慢快增删慢快11.面向对象三大特点封装:将数据等集合在一个单元内,称之为类,被封装的对象被称之为抽象数据类型继承:可传递性,如果C从B类中派生,B又从A类中派生,那么C既继承了B类中声明的成员,也继承了A类中的成员多态:指同一操作作用于不同的对象可以有不同的解释,也会产生不同的结果12.类中主要包含哪几个元素,分别有什么作用属性:用来定义对象的数据方法:用来定义对象的行为构造方法:用来创建对象内部类:作为类的一个成员存在,能够访问外部类的属性和方法代码块:用来在类加载时执行操作或者在每次实例化前执行通用操作13.成员变量(全局变量)和局部变量的区别1.定义的位置:成员变量:定义在类中局部变量:定义在方法体内,语句中2.生命周期:成员变量:也称为实例变量,随着对象的出现而出现,随着对象的消失而消失局部变量:一旦作用域结束立即释放3.内存的位置:成员变量:存储在堆内存中局部变量:存储在栈内存中4.初始值:成员变量:可以不赋初值,有默认的初始值,数据类型的默认值局部变量:可以不赋初值。
2024JAVA期末复习提纲一、Java基础知识1. Java的发展历程和特点2. Java的编译与运行过程3. Java开发环境的搭建4. Java基本语法和语句5.数据类型和变量6.运算符和表达式7.流程控制语句8.数组和字符串9.类和对象10.方法和函数11.异常处理12.输入输出流13.类的继承和接口的使用二、面向对象编程1.面向对象编程的基本概念和特点2.类与对象的关系3.类的成员变量和成员方法4.封装、继承和多态5.抽象类和接口的使用6.类的组合和关联7.内部类和匿名类的使用三、集合框架和泛型1.集合框架的基本概念和作用2.集合框架中的集合类和接口3. ArrayList、LinkedList、HashMap的使用4.迭代器和遍历集合5.泛型的概念和使用6.自定义泛型类和泛型方法四、多线程编程1.进程和线程的概念2.线程的创建和运行3.线程的同步和协作4.线程的基本方法和常用类5.线程池的使用五、网络编程1.网络编程的基本概念和原理2. Socket编程3.客户端和服务器的交互4. URL和URLConnection的使用5. HTTP协议和Servlet编程六、数据库编程1.数据库的基本概念和原理2.JDBC的概念和使用3.数据库的连接和操作4.SQL语句的编写和执行5.数据库事务的处理七、图形用户界面编程1. AWT和Swing的概念和特点2.GUI组件的使用3.事件处理和监听器4.布局管理器的使用5.图形界面设计和实现八、Web开发1.HTML和CSS的基本概念2. JavaScript的应用3. JSP和Servlet的概念和使用4.MVC设计模式5. Web应用的部署和调试以上是2024JAVA期末复习的提纲,按照这个提纲复习,应该能够对Java的基础知识、面向对象编程、集合框架和泛型、多线程编程、网络编程、数据库编程、图形用户界面编程和Web开发有一个较全面的了解。
希望能对你的复习有所帮助,祝你考试顺利!。
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. 允许接口中只有一个抽象方法二、程序填空题。
《JAVA语言与面向对象程序设计》复习纲要A一、单项选择题1. Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()A、String argsB、String args[]C、Char argD、StringBuffer args[]2.下列的哪个选项可以正确用以表示八进制值8?()。
A、0x8B、0x10C、08D、0103. 设 int x=1,float y=2,则表达式 x / y的值是()。
A、0B、1C、2D、以上都不是4. 若有定义:byte[] x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()。
A、x[5-3]B、x[k]C、x[k+5]D、x[0]5. Java Applet在被浏览器加载的时候首先被执行且在applet整个生命周期中只被运行一次的方法是()。
A、init()B、start()C、opreationcrawl()D、reader()6. 在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行?()A、init()B、start()C、destroy()D、stop()7. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()。
A、隐藏B、重写C、重载D、Java不支持此特性8. 以下有关构造方法的说法,正确的是()。
A、一个类的构造方法可以有多个B、构造方法在类定义时被调用C、构造方法只能由对象中的其它方法调用D、构造方法可以和类同名,也可以和类名不同9. 以下for循环的执行次数是()。
for(int x=0;(x==0)&(x>4);x++);A、无限次B、一次也不执行C、执行4次D、执行3次10. 下面类定义中哪一个给出了合法的抽象类的定义?()A、abstract Animal {abstract void growl();};B、class abstract Animal {abstract void growl();};C、abstract class Animal {abstract void growl();};D、abstract class Animal {abstract void growl() {System.out.println("growl");}}二、多项选择题1.Java中main()函数的值是什么?()A、StringB、intC、charD、void2.下面哪句话是正确的?()A、>> 是算术右移操作符B、>> 是逻辑右移操作符C、>>> 是算术右移操作符D、>>> 是逻辑右移操作符3. 下面哪个赋值语句是合法的?()A、float a = 2.0B、double b = 2.0C、int c = 2D、long d = 24. 已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面哪个表达式的值与数组下标量总数相等?()A、m.length()B、m.lengthC、m.length()+1D、m.length+15. 下列关于静态初始化器的叙述中,哪一个是正确的?()。
一、单项选择题。
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传递5System.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<employee.length;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。