资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第 3 章习题解答1如何定义方法?在面向对象程序设计中方法有什么作用?答:方法的定义包括方法名、方法形参、方法的返回值类型和方法体四部分,方法只能在类中定义。方法是对象的动态特征的描述,对象通过方法操作属性,进而改变对象的状态,完成程序所预期的功能。2.定义一个 Dog 类,有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定义方法输出 Dog 的信息。编写应用程序使用 Dog。答:public class Dogprivate String name;private String color;private String age;Dog(String n,String c,String a)name = n; color = c; age = a;public String toString() return name + , + color + , + age;public static void main(String args) Dog dog = new Dog(小白, 白色, 2 岁);System.out.println(dog.toString();3什么是访问控制修饰符?修饰符有哪些种类?它们各有何作用?答:访问控制修饰符是对类、属性和方法的访问权限的一种限制,不同的修饰符决定了不同的访问权限。访问控制修饰符有 3 个:private、protected、public,另外还有一种默认访问权限。各个修饰符的作用如下表所示:属性和方法 类 public 默认public A Bprotected B + C B默认 B Bprivate D DB:包中的类C:所有子类D:本类A:所有类B:包中的类C:所有子类D:本类A:所有类4阅读程序,写出程序的输出结果class Aprivate int privateVar;A(int _privateVar)privateVar=_privateVar;boolean isEqualTo(A anotherA)if(this.privateVar = anotherA.privateVar)return true;elsereturn false;public class Bpublic static void main(String args)A a = new A(1);A b = new A(2);System.out.println(a.isEqualTo(b);程序的输出结果为: false5阅读程序,写出程序的输出结果public class Test public static void main(String args) int x;int a = 0, 0, 0, 0, 0, 0 ;calculate(a, a5);System.out.println(the value of a0 is + a0);System.out.println(the value is a5 is + a5);static int calculate(int x, int y) for (int i = 1; i x.length; i+)if (y x.length)xi = xi - 1 + 1;return x0;程序的输出结果为:the value of a0 is 0the value is a5 is 56阅读程序,写出程序的输出结果public class Test public static void main(String args) String str1 = new String(Java);String str2 = new String(Java);System.out.println(str1 = str2);程序的输出结果为:false7阅读下列程序,程序中已经指明错误位置,请说出错误原因。1package sample;class A private int num;A()num=0;int get() return num; class Z public static void main(String args) A a1 = new A();int t = a1.get();int s = a1.num; /此处有错误错误原因:私有变量只能在其所在类中直接使用,在其它类中不可以直接使用。8阅读下列程序,程序中已经指明错误位置,请说出错误原因。其中,方法 m 的功能是把形参的值赋给类的成员变量 x。class Alphaprivate int x;public void m(int x)x = x; /此处有错误应该修改为:this.x = x;9下面定义了一个完整的类,包括有构造方法。阅读这段程序,程序中已经指明错误位置,请说出错误原因。class Alphaprivate int x;void Alpha() /此处有错误x = 0;public void getX()return x; 错误原因:构造方法不能有返回类型,也不能以 void 作为它的返回类型。10定义一个名字为 MyRectangle 的矩形类,类中有 4 个私有的整型成员变量,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义了无参数的构造方法和有4 个 int 参数的构造方法,用来初始化类对象。类中还有以下方法:getW() 计算矩形的宽度;getH() 计算矩形的高度;area() 计算矩形的面积;toString() 把矩形的宽、高和面积等信息作为一个字符串返回。编写应用程序使用 MyRectangle 类。答:public class MyRectangleprivate int xUp,yUp,xDown,yDown;MyRectangle()xUp = 0; yUp = 0; xDown = 0; yDown = 0;MyRectangle(x1, y1, x2, y2 )xUp = x1; yUp = y1; xDown = x2; yDown = y2;public int getW()return xDown - xUp;public int getH()return yDown - yUp;public int area()return getW() * getH();public String toString() return 矩形宽: + getW() +矩形高: + getH() + 矩形面积:+area();public static void main(String args) MyRectangle rectangle = new MyRectangle(1,2,7,8);System.out.println(rectangle.toString();11定义一个表示学生的类 Student,包括的成员变量有:学号、姓名、性别、年龄;成员方法有:获得学号、姓名、性别、年龄;修改年龄。并书写 Java 程序创建 Student 类的对象及测试其方法的功能。 答:public class Student private String number, name;private boolean sex; /true 表示“男” ,false 表示“女”private int age;Student()number = ; ; sex = true; age = 0Student(String num, String na, boolean s, int a)number = num; sex = s; age = a;public String getNumber()return number;public String getName()return name;public boolean getSex()return sex;public int getAge()return age;public void setAge(int a)age = a; public String toString() return 学号:+ number +姓名:+ name +性别:+ sex +年龄:+ age;public static void main(String args) Student stu =new Student(200601012,张三,true,20);System.out.println(stu.toString();12如何定义静态成员变量?静态成员变量有什么特点?静态方法有何特点?为什么有的时候需要定义静态方法?静态方法处理的成员变量有什么要求?答:在定义成员变量的时候前面加上 static 修饰符,该变量即成为静态成员变量,静态成员变量也称为类变量。类变量和实例变量的区别是,不管为类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量。因此,可以通过类本身或者某个对象来访问类变量。当定义一个方法的时候,使用 static 关键字说明该方法是类方法(静态方法)而不是实例方法。当第一次调用含类方法的类时,系统只为该类的类方法创建一个版本。这个版本被该类和该类的所有实例所共享。调用类方法时不需要实例化类,因此对那些不想实例化的类,或者不需要实例化的类,但又需要调用该类的方法,这时就可以把该方法定义为类方法。类方法只能操作类变量,不能访问在类中定义的实例变量,同时,类方法可以在类中被调用,不必通过创建一个实例对象来调用一个类方法,当然也可以在实例对象中调用类方法。13使用静态成员变量来计算内存中的实例化的对象数目。public class Count private String name; private static int number = 0; /计数 Count 对象生成的个数Count() name = null;number+;Count(String n) name = n;number+;protected void finalize() /当有一个 Count 对象释放时会执行该方法,此时对 number 减 1System.out.println(有一个 Item 对象释放了);number-;public static void main(String args) Count c1 = new Count();Count c2 = new Count();c1 = null;System.out.println(执行垃圾收集前 Item 对象的个数:+ number);/强制执行垃圾收集,观察 Count 类中 number 值的变化java.lang.System.gc(); System.out.println(执行垃圾收集后 Item 对象的个数: + number); c1 = new Count();java.lang.System.gc(); System.out.println(执行垃圾收集后 Item 对象的个数: + number); 14.定义一个计算矩形面积、立方体和球体体积的类。该类完成计算的方法用静态方法实现。public class Calculatepublic static dou
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号