资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
个人资料整理仅限学习使用第 3 章习题解答1如何定义方法?在面向对象程序设计中方法有什么作用?答:方法的定义包括方法名、方法形参、方法的返回值类型和方法体四部分,方法只能在类中定义。方法是对象的动态特征的描述,对象通过方法操作属性,进而改变对象的状态,完成程序所预期的功能。2. 定义一个Dog类,有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定义方法输出Dog的信息。编写应用程序使用Dog。答:public class Dog private 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 B protected B + C B 默认B B private D D B:包中的类C:所有子类D:本类A:所有类精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 11 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 11 页个人资料整理仅限学习使用4阅读程序,写出程序的输出结果class A private int privateVar。 A(int _privateVar privateVar=_privateVar。 boolean isEqualTo(A anotherA if(this.privateVar = anotherA.privateVar return true。 else return false。 public class B public 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 if (y xi = xi - 1 + 1。return x0。 程序的输出结果为:the value of a0 is 0 the value is a5 is 5 6阅读程序,写出程序的输出结果public class Test public static void main(String args String str1 = new String(Java。String str2 = new String(Java。System.out.println(str1 = str2。 程序的输出结果为:false 7阅读下列程序,程序中已经指明错误位置,请说出错误原因。1精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 11 页个人资料整理仅限学习使用package sample 。class A private int num。A 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 Alpha private int x。public void m(int x x = x 。 /此处有错误 应该修改为:this.x = x。9下面定义了一个完整的类,包括有构造方法。阅读这段程序,程序中已经指明错误位置,请说出错误原因。class Alpha private 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 xUp = 0 。 yUp = 0 。 xDown = 0 。 yDown = 0 。 MyRectangle(x1, y1, x2, y2 xUp = x1 。 yUp = y1。 xDown = x2 。 yDown = y2 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 11 页个人资料整理仅限学习使用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 = 0 Student(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( 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 11 页个人资料整理仅限学习使用 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关键字说明该方法是类方法 name = null。 number+。 Count(String n name = n。 number+。 protected void finalize( / 当有一个Count 对象释放时会执行该方法,此时对number 减 1 System.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 对象的个数: 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 11 页个人资料整理仅限学习使用+ number 。 14. 定义一个计算矩形面积、立方体和球体体积的类。该类完成计算的方法用静态方法实现。public class Calculate public static double calculateRectangleArea( double height,double width return height * width 。 public static double calculateCubeVol(double x, double y, double z return x * y * z。 public static double calculateSphereVol(double r return (4/3 * 3.14 * r * r * r。 15. 设计一个表示用户的User 类,类中的变量有用户名、口令私有的)和记录用户个数的变量静态的),定义类的3 个构造方法 没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息的方法 name = null。password = null。n umber+ 。 User(String n 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 11 页个人资料整理仅限学习使用 name = n。 password = null。 number+ 。 User(String n, String ps name = n。 password = ps。 nmuber+ public String getPassword( /密码全部以明文操作,没有使用加密算法 return password。 public setPassword(String ps password = ps。 public String toString( return 用户名: + name + 口令: + password 。 public class Test User usr = new User(张三 , 123456。 usr.setPassword(abcdef。 usr.toString(。 16定义一个Company类,成员变量有公司名称、雇员列表、公司每年的总收入。该类的构造方法可能有如下形式:public Company(String name 也可以有更多其它形式的构造方法。或许还应该有如下方法:public void setName(String name public String getName( 必须提供一个公共的dump 方法来打印有关Company 的信息,如公司名称、雇员和公司总收入。最后为Company类编写一个测试客户程序。答:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 11 页个人资料整理仅限学习使用class Company public String name。 / 公司名称 public String employee。 /雇员列表 private int number。 / 雇员人数 public double grossIncome。 / 总收入 Company(String n name = n。 employee = new String100。 / 假设雇员人数不超过100 人 public void setName(String n name = n。 public String getName( return name。 public void setGrossIncome(double income grossIncome = income。 public String getGrossIncome( return grossIncome。 public addEmployee(String n employeenumber = n。 number+。 public removeEmployee(String n int i。 for(i = 0。 i /查找待删除雇员所在位置精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 11 页个人资料整理仅限学习使用 if(employeei. compareTo(n = 0 break。 if(i employeei = null。 / 删除该雇员信息 for( 。 i /被删除雇员后面的雇员向前移动一个位置 employeei = employeei+1。 number- 。 /雇员总数减1 public void dump( System.out.println(公司名称: + name + 总收入: + grossIncome。 System.out.println(雇员列表: 。 for(int i=0。 i System.out.println(employeei。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 11 页
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号