java课后习题答案(2)
public double h(double x){ return Math.sqrt(x); } }
class A3 implements A{
public void f(int x){
System.out.println("你好:"+x); }
public void g(int x,int y){
double z=(double)x/y; System.out.println(z); }
public double h(double x){ return 1/x; } }
public class ZuoYe5_3{
public static void main(String args[ ]){
A a=new A1();
a.f(10);
a.g(12,20);
System.out.println(a.h(100));
a=new A2();
a.f(10);
a.g(12,20);
System.out.println(a.h(100));
a=new A3();
a.f(10);
a.g(12,20);
System.out.println(a.h(100)); } }
利用面向接口编程的方法,编写计算锥形体积的完整程序,注意锥形的底可以为圆形,矩形,或梯形等。(对细节满足开闭原则。)
4求下列程序运行结果:
class A{
public double y=11.456789;
public void f(){
y=y+1;
System.out.printf("y是double型的变量,y=%f\n",y); } }
class B extends A{
int y=0;
public void g(){
y=y+100;
System.out.printf("y是int型的变量,y=%d\n",y); } }
class Example5_3{
public static void main(String args[ ]){
B b=new B();
b.y=200;
b.g(); //调用子类新增的方法
b.f(); //调用子类继承的方法 } }
5.求下列程序运行结果
class A{
int m=0,n=0;
long f(){
return m+n; } }
class B extends A{
int m=1,n=1;
long f(){
long result=0;
super.m=10;
super.n=20;
result=super.f()+(m+n);
return result; }
long g(){
long result=0;
result=super.f();
return result/2; } }
public class Example5_7{
public static void main(String args[ ]){
B b=new B();
b.m=3;
b.n=7;
long resultOne=b.g();
long resultTwo=b.f();
long resultThree=b.g();
System.out.println("resultOne="+resultOne); System.out.println("resultTwo="+resultTwo); System.out.println("resultThree="+resultThree); } }
(6) 即所谓的开闭原则,对_________关闭,对______________开放。
答: 修改,扩展
(7)编写一个面向抽象的完整程序,求柱形体积,计算方法底*高,但底面积的算法经常要变化。于是对于求底面积可以设一个抽象类Geometry 。柱形面对具有抽象类的Geometry设计。最后完成对圆形底面积的柱形,和梯形底面积的柱形计算体积。
(8)求下列程序的运行结果。
interface Show{
void show(); }
class A implements Show{
public void show(){
System.out.println("I love This Game"); } }
class B implements Show{
public void show(){
System.out.println("我喜欢看NBA");} }
class C{
public void f(Show s){ //接口作为参数
s.show(); } }
public class Example5_13{
public static void main(String args[]){
C c=new C();
c.f(new A());
c.f(new B());} }
答: I love This Game
我喜欢看NBA
(9)写出下面程序的运行结果:
public class Example5_18{
public static void main(String args[ ]){
int n=0,m=0,t=0;
try{
t=9999;
m=Integer.parseInt("8888");
n=Integer.parseInt("12s3a"); //发生异常,转向catch
System.out.println("我没有机会输出"); }
catch(Exception e){
System.out.println("发生异常");
n=123; }
System.out.println("n="+n+",m="+m+",t="+t); }}
答:发生异常 n=123, m=8888, t=9999