| 显示江开系统江苏开放大学JAVA程序设计形成性考核作业1所有答案 |
|
什么是最终类?什么是最终变量?什么是最终方法?
|
答案是:final class A{},这样定义的类A就是最终类,最终类不可被继承,也就是说不能写这样的代码,class B extends A{}了。 final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变,也称为修饰的标识为常量。如果一个类的域被关键字final所修饰,它的取值在程序的整个执行过程中将不会改变。final void B(){},这样定义的方法就是最终方法,最终方法在子类中不可以被重写,也就是说,如果有个子类继承这个最终方法所在的类,那么这个子类中就不能再出现void B(){}这样的方
|
|
什么是抽象类?什么是抽象方法?各自有什么特点?
|
答案是:有abstract关键字修饰的类为抽象类,抽象类是表示部分地实现功能,比如把某些已经确定的功能实现了,而抽象的功能则表示未实现,因为不能确定子类用什么方式实现它或者说把可能性和机会留给子类。抽象类和抽象方法的目的是相同的。当子类实现这些抽象方法后就是叫”实现“,如果这个方法在父类中已经实现了不是抽象的而子类再来实现一次就是“覆盖”或“重写“了父类的方法,这2个都叫实现了”多态“特性。“多态”就是某个“共性”在各个子类中表现出不同的“个性”,但都同时保留着“共性”。抽象类与抽象方法的特点:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类。抽象类不能实例化。
|
|
4.比较接口与抽象类的异同。
|
答案是:接口与抽象类的共同点如下:(1)接口与抽象类都不能被实例化,能被其他类实现和继承(2)接口和抽象类中都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
|
|
一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?
|
答案是:实现接口就必须重写该接口的所有方法,java中接口里的方法都是抽象的,没有方法体。Java中一个类实现了某接口,可以不实现所有接口的方法,可以由它的子类实现
|
|
什么是接口?如何定义接口?接口与类有何区别?
|
答案是:Java中的接口是一个特殊的抽象类,接口中的所有方法都没有方法体。我们把用于完成特定功能的若干属性组织成相对独立的属性集合。这种属性的集合就是接口。
定义接口与定义类非常相似。实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类。一个类只能由一个父类,但是它可以同时实现若干个接口。这种情况下如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多重继承。与类定义相仿,声明接口时也需要给出访问控制符,不同的是接口的访问控制符只有public一个。用public修饰的接口是公共接口,可以被所有的类和接口使用,而没有public修饰符的接口则只能被同一
|
|
简述接口定义的一般格式。
|
答案是:接口定义的语法格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。接口名:必选,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。方法:接口中的方法只有定义而没有被实现。
|
|
类的封装性、继承性和多态性各自的内涵是什么?
|
答案是:封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了.
继承性就是一个类声明继承另一个类,那么另一个类就是它 的父类,父类里边的变量跟方法子类可以直接拿来用,除非父类的访问权限不允许。多态分为方法的重载和重写,重载是指方法的名和返回类型相同,但是参数不同.重写是指子类继承父类的方法,但是在子类自己类体里边又写了一个方法, 跟父类中的方法名,返回类型,参数列表都完全一样,但是方法体不同,也就是说它有自己的实现方式.这就是重写.
|
|
为什么要对类进行封装?封装的原则是什么?
|
答案是:对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的。封装的原则主要是靠经验吧,只要尽力让封装的每个类里面的属性和方法独立,方便以后操作,减少耦合性就好了。
|
|
什么是成员变量的继承?什么是成员变量的覆盖?
|
答案是:通过继承可以得到父类的成员变量,子类的成员变量包括从父类继承的成员变量(包括从祖先类中继承的成员变量)以及子类中重新定义的成员变量。java的成员变量和局部变量重名 JAVA会用局部变量覆盖掉成员变量。
|
|
什么是重载方法?什么是覆盖方法?它们的主要区别是什么?
|
答案是:方法的重载是指在一个类中,出现多个方法名相同,但参数个数或参数类型不同的方法,则称为方法的重载。Java在执行具有重载关系的方法时,将根据调用参数的个数和类型区分具体执行的是哪个方法。方法重载之间必须保证参数不同,但是需要注意,重载方法在被调用时可能出现调用歧义。
当子类继承父类中所有可能被子类访问的成员方法时,如果子类的方法名与父类的方法名相同,那么子类就不能继承父类的方法,此时,称子类的方法覆盖了父类的方法。覆盖体现了子类补充或者改变父类方法的能力,通过覆盖,可以使一个方法在不同的子类中表现出不同的行为。
方法覆盖(Overriding)和方法重载(Overloading)是Java
|
|
什么是多态?使用多态有什么优点?Java中的多态有哪几种?重载方法与覆盖方法分别属于哪种多态?
|
答案是:多态是面向对象程序设计的重要部分,是面向对象的3个基本特性之一。在Java语言中,通常使用方法的重载(Overloading)和覆盖(Overriding)实现类的多态性。方法重写(Overriding)和方法重载(Overloading)是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
|
|
若在一个public类中的成员变量及成员方法的访问控制符为protected,则此类中的成员可供什么样的包引用?
|
答案是:当子类与父类不在同一包中,父类中使用private修饰符修饰的成员变量和友好的成员变量不会被继承,也就是子类只能继承父类中使用public和protected访问修饰符修饰的成员变量作为子类的成员变量,同样,子类也只能继承父类中使用public和protected访问修饰符修饰的方法作为子类的方法。
在一个类A中,它所定义的成员变量和方法都被protected所修饰,类A被类B、类C继承,那么在类B与类C中都继承了类A的成员变量和方法。这时,如果在类C中创建一个自身的对象,那么该对象可以访问父类的和自身定义的protected修饰的变量和方法。但是在其他类中,比如Student类,对于子类
|
|
如何创建一个类的子类?
|
答案是:声明一个类的子类的格式如下:
class 子类名 extends 父类名 {
…
}
|
|
1.什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来什么好处?什么是单继承?什么是多重继承?
|
答案是:继承是一种由已有的类创建新类的机制。利用继承,可以先编写一个共有属性的一般类,根据该一般类再编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。
由继承而得到的类称为子类,被继承的类称为父类(超类)。
声明一个类的子类的格式如下:
class 子类名 extends 父类名 {
…
}
单继承:子类只能继承一个父类
多重继承:子类可以有多个父类.
|
|
简答实例变量和类变量的区别?
|
答案是:(1)不同对象的实例变量互不相同
(2)所有对象共享类变量
(3)通过类名直接访问类变量
|
|
面向对象的特点?
|
答案是:封装性 、继承、多态
|
|
Import语句和package语句的功能分别是什么?
|
答案是:使用import语句引入包中的类。创建包可以通过在类或接口的源文件中使用package语句实现。
|
|
什么是包?如何创建包?如何引用包?
|
答案是:Java要求文件名和类名相同,所以如果将多个类放在一起时,很可能出现文件名冲突的情况,这时Java提供了一种解决该问题的方法,那就是使用包将类进行分组。包(package)是Java提供的一种区别类的命名空间的机制,是类的组织方式,是一组相关类和接口的集合,它提供了访问权限和命名的管理机制。创建包可以通过在类或接口的源文件中使用package语句实现,package语句的语法格式如下: package 包名;
包名:必选,用于指定包的名称,包的名称必须为合法的Java标识符。当包中还有子包时,可以使用“包1.包2.….包n”进行指定,其中,包1为最外层的包,而包n则为最内层的包。类可以访问其
|
|
Java中创建对象的一般格式是什么?如何初始化对象?如何给对象赋值?
|
答案是:对象的声明,声明对象的一般格式如下:
类名 对象名;
类名:必选,用于指定一个已经定义的类。
对象名:必选,用于指定对象名称,对象名必须是合法的Java标识符。
实例化对象,在声明对象时,只是在内存中为其建立一个引用,并置初值为null,表示不指向任何内存空间。声明对象以后,需要为对象分配内存,这个过程也称为实例化对象。创建对象后,就可以访问对象的成员变量,并改变成员变量的值了,而且还可以调用对象的成员方法。通过使用运算符“.”实现对成员变量的访问和成员方法的调用。
|
|
简述构造方法的特点与作用?
|
答案是:构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值
|
|
Java中成员方法定义的一般格式是什么?成员方法有哪些修饰符?
|
答案是:Java中类的行为由类的成员方法来实现。类的成员方法由方法声明和方法体两部分组成。其一般格式如下:
[修饰符] <方法返回值的类型> <方法名>( [参数列表]) {
[方法体]
}
[修饰符]用于指定方法的访问权限,可选值为public、protected和private。
方法返回值的类型用于指定该方法的返回值的类型,如果该方法没有返回值,必须使用关键字void进行标识。方法返回值的类型可以是任何Java数据类型。
|
|
Java中成员变量定义的一般格式是什么?成员变量有哪些修饰符?
|
答案是:在类体中所声明的变量称为类的成员变量,而在方法体中声明的变量和方法的参数则称为局部变量。成员变量修饰符private,protect,public public范围最大。
Java用成员变量来表示类的状态和属性,声明成员变量的基本语法格式如下:
[修饰符] [static] [final] <变量类型> <变量名>;
修饰符:可选参数,用于指定变量的被访问权限,可选值为public、protected和private。
static:可选,用于指定该成员变量为静态变量,可以直接通过类名访问。如果省略该关键字,则表示该成员变量为实例变量。
final:可选,用于指定该成员变量为取值不会
|
|
Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么?
|
答案是:JAVA中定义类的简单语法
[修饰符] class 类名
{
零到多个构造器定义..
零到多个Field..
零到多个方法..
}
修饰符可以是public、final、abstract,或省略
public ,使用对象:类、接口、成员;无论它所处在的包定义在哪,该类(接口、成员)都是可访问的
private ,使用对象:成员;成员只可以在定义它的类中被访问
static ,使用对象:类、方法、字段、初始化函数。成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。静态方法是类方法,是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在
|
|
什么是对象?什么是类?二者有何关系?
|
答案是:在面向对象语言中,对象是对类的一个具体描述,是一个客观存在的实体。万物皆对象,也就是说任何事物都可看做对象,如一个人、一个动物,或者没有生命体的轮船、汽车、飞机,甚至概念性的抽象,如公司业绩等等。一个对象在Java语言中的生命周期包括创建、使用和销毁3个阶段。
类的概念 : 类是具有相同属性和服务的一组对象的集合。为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。
|
|
简述面向对象的基本思想、主要特征和基本要素?
|
答案是:面向对象的开发方法(简称OO)的基本思想:OO方法认为,客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同的对象之间的相互作用和联系就构成了各种不同的系统。当我们设计和实现一个客观系统时,如能在满足需求的条件下,把系统设计成由一些不可变的(相对固定)部分组成的最小集合,这个设计就是最好的。而这些不可变的部分就是所谓的对象。
对象是OO方法的主体,对象至少应有以下特征:
模块性。即对象是一个独立存在的实体,从外部可以了解它的功能,但其内部细节是“隐蔽”的,它不受外界干扰。对象之间的相互依赖性很小,因而可以独立地被其它各个系统所选用。
继承和类比性。事物之间都有一定
|
|
5.字符数组与字符串有本质的不同,而字符串实际上是String类和StringBuffer类的对象,这种说法对吗?
|
答案是:这种说法不对,字符数组与字符串在内存中都是线性分布的的一系列数据,本质上没有不同,只是操作上有点差异。
|
|
4.Java中的数组实际上是一个隐含的“数组类”的对象,而数组名实际上是该对象的一个引用,这种说法对吗?
|
答案是:对。Java中的数组其实是一个对象,是一个特殊的对象。
|
|
字符串类String 和StringBuffer类有何不同?
|
答案是:StringBuffer其实是一个可变的String,通俗点说是长度能够自由变动的字符串。
(1) String类 ,该类一旦产生一个字符串,其对象就不可变。String类的内容和长度是固定的。如果程序需要获得字符串的信息需要调用系统提供的各种字符串操作方法实现。虽然通过各种系统方法可以对字符串施加操作,但这并不改变对象实例本身,而是生成一个新的实例。系统为String类对象分配内存,是按照对象所包含的实际字符数分配的。
(2) StringBuffer类 ,这个类肯定有缓冲的功能。该类处理可变的字符串。如果要修改一个StringBuffer类的字符串,不需要再创建新的字符串对象,而是直接
|
|
2.在Java中怎样定义和使用一维数组、二维数组?
|
答案是:使用java数组,必须经过两个步骤,声明数组和分配内存给该数组,:java中使用 [][] 来定义二维数组 定义数组时也可同时初始化。在java中数组被看成是一个对象,如果用new定义数组时,必须指定其维度,定义二维数组必须指定其行数,列数可以指定,可以不指定。
|
|
1.创建数组元素为基本数据类型的数组时,系统都会指定默认值吗?布尔型的默认值是什么?
|
答案是:java 在声明了一个数组,并为其分配好存储空间后,未赋值之前会默认对其初始化:
整形数组 默认初始值为0;
布尔数组默认初始值为 false;
String 数组以及 对象数组初始值为 null.
|
|
循环语句有哪几种形式?它们的语法格式是什么样的?
|
答案是:(1)for循环语句
for语句的语法格式:
for (表达式1; 表达式2; 表达式3) {
若干语句
}
(2)while 循环
while语句的语法格式:
while (表达式) {
若干语句
}
(3)do-while循环
do-while语句的语法格式:
do {
若干语句
} while(表达式);
|
|
试说明Switch语句的格式是如何定义的?
|
答案是:switch 语句是单条件多分支的开关语句,它的一般格式定义如下(其中break语句是可选的):
switch(表达式)
{
case 常量值1:
若干个语句
break;
case 常量值2:
若干个语句
break;
...
case 常量值n:
若干个语句
break;
default:
若干语句
}
|
|
条件分支语句按语法格式可细分为3种形式,请说明这3种形式的语法格式?
|
答案是:(1)if语句
if 语句的语法格式:
if(表达式){
若干语句
}
(2)if-else语句
if-else 语句的语法格式:
if(表达式) {
若干语句
}
else {
若干语句
}
(3)if-else if -else 语句
if-else if-else语句的语法格式:
if(表达式) {
若干语句
}
else if(表达式) {
若干语句
}
… …
else {
若干语句
}
|
|
break语句和continue语句有哪两种形式?
|
答案是:break语句:在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
continue语句:continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
return语句:return语句可以用于从当前的方法中退出,返回到该调用的方法的语句处,继续执行。return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
|
|
3.for循环语句中,关键字for后面括号内的表达式是否可以使用多个用逗号分隔的表达式?for-each语句的特点是什么?
|
答案是:for 里面只能有2个分号,分割了3个语句。使用 foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
|
|
2.while循环语句与do-while循环语句有何不同?
|
答案是:while语句的一般形式为:
while(表达式)语句
其中表达式是循环条件,语句为循环体。
while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。
do-while语句的一般形式为:
do
语句
while(表达式);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。
|
|
1.if语句中,<条件表达式>一定是逻辑型表达式吗? switch语句中,<语句序列>里一定有break语句吗?
|
答案是:if语句中的表达式不限于逻辑表达式,可以是任意的数值类型。在 switch 语句中使用break语句将终止语句的序列。当遇到 Break语句时,程序将整个 switch 语句后面的一行代码处开始执行,就有一种跳出switch 语句的效果。break 语句是可选的,如果省略掉break 语句程序将执行下一条 case ,如果你需要使用多条 case ,你可以不用没有 break 语句。
|
|
Java里的语句可分为哪几类?
|
答案是:1.方法调用语句
2.表达式语句:表达式尾加上分号。
3.复合语句:可以用{ }把一些语句括起来构成复合语句。
4.空语句:一个分号也是一条语句,称做空语句。
5.控制语句:控制语句分为条件分支语句、开关语句和循环语句。
6.package语句和 import语句:它们和类、对象有关。
|
|
Java提供了哪些运算符?
|
答案是:Java提供了丰富的运算符,具体有:
算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、instanceof运算符
|
|
Java的基本数据类型是什么?
|
答案是:Java语言有8种基本数据类型,分别是:boolean、byte、short、int、long、float、double、char。这8种基本数据类型习惯上可分为以下四大类型:
逻辑类型:boolean
整数类型:byte、short、int、long
字符类型:char
浮点类型:float、double
|
|
6.在Java转义字符表示中,ASCII码值对应的字符如何表示?Unicode字符集中对应的字符如何表示?
|
答案是:Java中的字符通过Unicode字符编码,以二进制的形式存储到计算机中,计算机可通过数据类型判断要输出的是一个字符还是一个整数。Unicode编码采用无符号编码,一共可存储65536个字符,所以Java中的字符几乎可以处理所有国家的语言文字。
|
|
5.在Java 语言中,表示字符串常量和字符常量时应注意哪些问题?
|
答案是:声明为字符型的常量或变量用来存储单个字符,它占用内存的2个字节来存储,字符型利用关键字“char”进行声明。
|
|
4.整型常量有哪三种表示形式?浮点型变量有哪两种表示形式?布尔型常量可以转换成其他数据类型吗?
|
答案是:所谓常量,就是值永远不允许被改变的量。声明一个常量,就必须用关键字final修饰。
声明为整数型的常量或变量用来存储整数,整数型包括:字节型(byte),短整型(short)
整型(int),长整型(long)。声明为浮点数型的常量或变量用来存储小数,浮点数包括单精度型(float)和双精度(double)两个基本数据类型,这两个数据类型的区别是它们在内存中所占用的字节数不同,因此,它们所能够存储的整数的取值范围也不同
|
|
3.Java定义了哪些基本数据类型?基本数据类型和引用数据类型的特点?字节型和字符型数据有何区别?长度为32位的基本数据类型有哪些?
|
答案是:Java语言中的数据类型划分为两大类,分别是基本数据类型和引用数据类型。
其中基本数据类型由Java语言定义,不可以再进行划分。基本数据类型的数据占用内存的大小固定,在内存中存入的是数值本身
引用数据类型在内存中存入的是引用数据的存放地址,并不是数据本身。
|
|
标识符有何用途?Java中定义标识符的规则有哪些?
|
答案是:用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。Java关于标识符的语法规则如下:
(1)标识符可以由字母、数字、下划线“_”或$组成;
(2)标识符必须以字母、下划线“_”或$开头,随后可跟数字;
(3)标识符是大小写区别对待的。例如,Class和class代表不同的标识符;
(4)在自定义标识符时,应该使其能反映它所表示的变量、对象或类的意义。
为了提高程序的可读性,在定义标识符时,要尽量遵循“见其名知其意“的原则。
Java标识符的具体命名规则如下:
一个标识符可以由几个单词连接而成,以表明它的意思。
对于类名,
|
|
1.Java的关键字有哪些?
|
答案是:在Java语言中还定义了一些专有词汇,统称为关键字,例如public、class、int等,它们都具有一种特定的含义,只能用于特定的位置,不能作为标识符使用。
|
|
Java代码块的写法有哪两种风格?当代码量较大时应当采用哪种编程风格?
|
答案是:(1)Allmans风格
Allmans风格也称“独行”风格,即左、右大括号各自独占一行。
(2) Kernighan风格
Kernighan风格也称“行尾”风格,即左大括号在上一行的行尾,而右大括号独占一行 。
当代码量较大时不适合使用“独行”风格,因为该风格将导致代码的左半部分出现大量的左、右大括号,导致代码清晰度下降,这时应当使用“行尾”风格。
|
|
当源文件有多个类时,请说明源文件的命名规则?
|
答案是:Java允许在一个Java源文件中编写多个类,但其中的多个类至多只能有一个类使用public修饰。如果源文件中有多个类,但没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是java就可以了;如果有一个类是public类,那么源文件的名字必须与这个类的名字安全相同,扩展名是java。
|
|
如果JDK的安装目录为D:\jdk,应当怎么设置path和classpath的值?
|
答案是:设置环境变量Path的值为D:\jdk\bin;
设置环境变量ClassPath的值为D:\jdk\lib\dt.jar; D:\jdk\lib\tools.jar;
|
|
Java源程序的组成?
|
答案是:1)package语句
2)import语句
3)类(class)
4)方法
5)语句
|
|
Java程序的开发步骤
|
答案是:(1)编写源文件。扩展名必须是.java。
(2)编译Java源程序。使用Java编译器(javac.exe)编译源文件,得到字节码文件。
(3) 运行Java程序。使用Java SE平台中的Java解释器(java.exe)来解释执行字节码文件。
|
|
Java语言的特点?
|
答案是:简单性、面向对象、分布式处理、健壮性、结构中立、安全性、可移植性、解释性、高性能、多线程、动态
|
|
目前为:
2/2
页
首页 上页 下页 尾页
|