JAVA练习6

掌握:接口、抽象类、最终类的编程;字符串的使用。

1. 定义接口A,接口内有两个方法: method1(int x)和method2(int x,int y),它们的返回值类型均为int。请编写一个Applet,并使其实现接口A:令方法method1(int x)的功能是求5的x次方、方法method2(int x,int y) 的功能是求两参数的最大值。在paint()方法中调用这两个方法,显示method1(2)和 method2(2,8)的结果。

@程序

import java.awt.*;

import java.applet.*;

public class Applet1 extends Applet  implements A

{

public void paint(Graphics g)

{

g.drawString("调用method1(2)的结果: "+method1(2),20,20);

g.drawString("调用method2(2,8)的结果: "+method2(2,8),20,40);

}

public  int  method1(int x)

{

int result=1;

for(int i=1;i<=x;i++)

result*=5;

return  result;

}

public  int  method2(int x,int y)

{

return  x>y?x:y;

}

}

interface A

{

public abstract int  method1(int x);  

public abstract int  method2(int x,int y);  

}

2. 定义名为VolumeArea的抽象类,在其中定义圆周率p的值为3.14159,并定义两个抽象方法volume(double  r)和area(double  r),它们的返回值类型均为float。再定义以类VolumeArea为父类的子类VolumeAndArea,在该子类中实现父类中的抽象方法:方法volume(double  r) 的功能是求半径为r的球的体积(公式为:4pr3¸3);方法area(double  r)的功能是求半径为r的圆的面积(公式为:pr2)。请编写一个Application ,在其主类中定义一个VolumeAndArea类的对象x,通过对象x求半径为r(r的值由命令行给定)的球的体积及该球最大切面的圆的面积,并输出计算结果。

@程序

public  class  Class1

{

   static  VolumeAndArea  x=new  VolumeAndArea( );

   public  static  void  main(String[ ]  args)

   {

       float  r=Float.valueOf(args[0]).floatValue( );

       System.out.println("半径为"+r+"的球的体积="+x.volume(r));

       System.out.println("半径为"+r+"的圆的面积="+ x.area(r));

   }

}

abstract  class  VolumeArea

{

   static  final  float  myPI=3.14159f;

   public abstract  float  volume(double  r);

   public abstract  float  area(double  r);

}

class  VolumeAndArea  extends  VolumeArea

{

   public  float  volume(double  r)

   {

       return  (float)(4*myPI*r*r*r/3);

   }

   public  float  area(double  r)

   {

       return  (float)(myPI*r*r);

   }

}

3. 定义类A,在其中定义一个final变量myPI,其类型为float,值为3.1416;类A中还定义一个final方法 m1(float  r),该方法返回值类型为float,功能是求半径为r的圆的周长(公式为:2pr)。再定义类A的子类B,B为final类,其中定义一个返回值类型为void的方法 m2(float  r),功能是先调用父类的方法m1( )求半径为r的圆的周长并输出计算结果,然后输出同一个圆的面积(公式为:pr2)。请编写一个Application ,利用类B计算并输出半径为5的圆的周长和面积。

@程序

public  class  Class1

{

   static  B  x=new  B( );

   public  static  void  main(String[ ]  args)

   {

       x.m2(5);

   }

}

class  A

{

   final  float  myPI=3.1416f;

   public  final  float  m1(float  r)

   {       return   2*myPI*r;     }

}

final  class  B  extends  A

{

   public  void  m2(float  r)

   {

       System.out.println("半径为"+r+"的圆的周长="+m1(r));

       System.out.println("半径为"+r+"的圆的面积="+myPI*r*r);

   }

}

4.编写应用程序,功能为:从命令行传入一个包含十个字符的字符串,把该字符串与程序中给定的字符串"bacdbcabca"依次比较,统计两个串中对应字符相等的数目。然后输出命令行输入的字符串,并把两个串中对应字符不相等的字符替换为'@'后生成的新串输出,最后输出两个串中相等字符的数目。

@程序

public class Class1

{

public static void main(String args[])  throws IOException

{

if(args[0].length()<10)  System.out.print("Enter a string:include 10 chars");

else

{ String str=new String("bacdbcabca");

int n=0;

System.out.print("The Standard answer:");

for (int x=0;x<str.length();x++)

System.out.print("   "+str.charAt(x));

System.out.println();

System.out.print("The  Student answer:");

for (int x=0;x<str.length();x++)

{

if (args[0].charAt(x)==str.charAt(x))

{ n++; System.out.print("   "+args[0].charAt(x)); }

else   System.out.print("   "+"@");

}

System.out.println( );

System.out.println("The correct answers:"+n);

}

}

}

5. 请编写一个Application实现如下功能:接受命令行中给出的一个字母串,先将该串原样输出,然后判断该串的第一个字母是否为大写,若是大写则统计该串中大写字母的个数,并将所有大写字母输出;否则输出信息串”第一个字母不是大写字母!”。

@程序

public  class Class1

{

public  static  void  main(String  args[])

{

        int  count=0;

if(args.length!=0)

{

System.out.println(args[0]);

if((int)args[0].charAt(0)>=65 && (int)args[0].charAt(0)<=90)

{

for(int i=0;i<args[0].length( );i++)

if((int)args[0].charAt(i)>=65 && (int)args[0].charAt(i)<=90)

                        { System.out.print(args[0].charAt(i));      Count++;     }

                System.out.println( );

                System.out.println(“共有 ”+count+” 个大写字母。”);

}

else   System.out.println("第一个字母不是大写字母!");

}

else System.out.println("请给出命令行参数!");

}

}

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值