《Java语言程序设计基础教程》
17
解答:三大特性是:封装,继承,多态。
封装性就是把对象的属性和服务结合成一个独立的单位,并尽可能隐蔽对象的内部细节。
特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。
对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。
4、简单阐述成员变量和局部变量的区别。 解答:
1)成员变量在整个类内都有效,局部变量只在定义它的方法内有效。
2)成员变量又分为实例成员变量(简称实例变量)和类变量(也称静态变量),如果成员变量的类型前面加上关键字static,这样的成员变量称为类变量或静态变量。
3)如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,也就是说,这个成员变量在这个方法内暂时失效。这时如果想在该方法内使用成员变量,必须使用关键字this。
5、 简述对象的引用和实体。
解答:当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称为该对象的实体,而对象中存放着引用,以确保实体由该对象操作使用。没有实体的对象称为空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。
6、简述this关键字的意义,以及它在成员方法和构造方法中如何使用。
解答:this是Java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。实例方法必须通过对象来调用,当this关键字出现在类的实例方法中时,代表正在调用该方法的当前对象。
成员函数中定义了和成员变量中相同的变量时,引用成员变量要用this;构造函数中调用同一个类的其他构造函数时用this。
7、简单描述Java的参数传值中的两种方式,基本数据类型参数的传值和引用类型参数的传值?
解答:在基本数据类型参数的传值中,基本数据类型的参数向该参数传递的值的级别不可以高于该参数的级别。
在引用类型参数的传值中,Java的引用类型数据包括对象、数组和接口,当参数是引用类型时,“传值”传递的是变量的引用而不是变量所引用的实体。如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化,但是如果改变参数的引用不会影响向其传值的变量的引用。
17
18
《Java语言程序设计基础教程》
8、基本数据类型和对象作为参数传递的不同? 解答:
(1) 基本数据类型作为参数在方法中传递的是值传递。
(2) 对象是引用传递,当对象作为参数传递时,传递的是对象的地址。
3.4综合题
1、定义一个“点”(Point)类用来表示三维空间中的点,类体的成员变量x,y,z分别表示三维空间的坐标。类体中具有如下成员方法的定义:
1)构造方法Point()可以生成具有特定坐标的点对象。 2)setX(), setY(), setZ()为可以设置三个坐标的方法。 3.)getDistance()为可以计算该点距离原点距离平方的方法。 解答: class Point{ double x,y,z ; Point(double _x,double _y,double _z) { x = _x ; y = _y ; z =_z ; } void setX(double _x){ x=_x ; } void setY(double _y){ y=_y ; } void setZ(double _z){ z=_z ; } double getDistance(){ return ( x*x+y*y+z*z) ; } }
18
《Java语言程序设计基础教程》
19
2、编写一个Java应用程序Test类,实现成员方法max(a,b)的重载。具体要求如下:
a) 编写void max(int a,int b)成员方法,对两个整数进行大小的比较,输出打印较大的那个整数。
b) 编写void max(float a,float b)成员方法,对两个float数进行大小的比较,输出打印较大的那个float数。
c) 编写void max(double a,double b)成员方法,对两个double数进行大小的比较,输出打印较大的那个double数。 public class Test{ void max(int a,int b){ System.out.println(a>b ? a:b) ; } void max(float a,float b){ System.out.println(a>b ? a:b) ; } void max(double a, double b){ System.out.println(a>b ? a:b) ; } public static void main(String[] args){ Test t =new Test() ; t.max(3,4) ; } } 3、编写一个矩形类对数学中的矩形进行抽象描述,并具有方法可以计算矩形的周长和面积,具体分为以下三个子任务完成。
(1)创建Rectangle类,添加属性width、height,并定义构造方法Rectangle(double _width, double _height); (2)在Rectangle类中添加两种方法computCircum()和computArea()分别计算矩形的周长和面积;
(3)编程利用Rectangle对象输出一个30*40的矩形的周长和面积。 解答:
public class TestRectang {
public static void main(String[] args) {
// TODO Auto-generated method stub Rectangle rect1 = new Rectangle(20,30) ;
19
20
}
class Rectangle{ }
double computArea() { }
Rectangle(){ }
width = 0 ; height = 0 ; double width,height ; }
《Java语言程序设计基础教程》
System.out.println(rect1.computArea()); System.out.println(rect1.computCircum());
Rectangle(double _width,double _height){ }
width = _width ; height = _height ;
return width*height ;
double computCircum(){ }
return 2*(width+height) ;
第4章 继承、接口和内部类
4.1单项选择题
1、 Java中用于定义接口的关键字是( )
A、import B、package C、class D、interface 解答:D
2、 以下关于abstract的说法,正确的是( )
20