这都是java的基础,你这些题目中有很多地方,命名不规范,实现方式过于笨拙。
(1) 定义一个接口Inf,含有常量π和一个实现计算功能的方法calculate( ),再分别定义一个面积类area和一个周长类circumference,各自按计算圆面积和圆周长具体实现接口中的方法,并以半径为5来测试这两个类。
//定义一个接口声明 常量PI,和一个 计算方法
interface Inf
{
double PI=3.1415926; //注意此处如果是常量,用 final修饰下,如double final PI=3.1415926;
double calculate(); //声明计算方法
}
//area 类实现 Inf 接口,实现其中的方法
class area implements Inf
{
double r; //定义半径
public area(double r1){r=r1;}//为 r 赋值通过此方法
/*
private double r;
public area(double r1){
this.r=r1;
}
*/
//实现 calculate方法。计算圆的面积
public double calculate()
{
return PI*r*r;
}
//输出圆的面积
public void output()
{
System.out.println("圆面积为:" + this.calculate());
}
}
//circumference 类实现 Inf接口,此类计算圆的周长
class circumference implements Inf
{
//定义周长
double r;
//为周长赋值
public circumference(double r1){r=r1;}
//周长实现方法
public double calculate()
{
return 2*PI*r;
}
//打印周长数值
public void output()
{
System.out.println("圆周长为:" + this.calculate());
}
}
//测试类,测试两个实现类,的两个计算方法
public class te1
{
public static void main(String args[])
{
area a = new area(5);
a.output();
circumference c = new circumference(5);
c.output();
}
}
(2) 定义一个类,在main方法的try块中产生并抛出一个异常,在catch块中捕获异常,并输出相应信息,同时加入finally子句,输出信息,证明它的无条件执行。
public class te2{
public static void main(String args[])
{
//此处抛出异常,此处MyException为自定义异常, 方法执行到 catch 段
try {throw new MyException();}
catch(Exception e)
{
System.out.println("It's caught");
}
/*最后执行 finally 块,注意此块也不是一定会执行,例如在 catch 块中调用系统退出的方法,则此处无法执行,但一般情况下,会执行 finally块,也就是很多教科书上说的“finally块一定会执行”*/
finally
{
System.out.println("It's finally caught");
}
}
}
//自定义异常类 MyException ,自定义异常可以继承 Exception类,或者实现 Throwable 接口
class MyException extends Exception{}
(3) 定义一个类Caculate实现10以内的整数加减法的计算。自定义一个异常类NumberRangeException,当试图进行超范围运算时,产生相应的信息。编写应用程序进行测试。
import java.io.*;
//自定义异常类 继承自 Exception
class NumberRangeException extends Exception
{
public NumberRangeException()
{
}
}
public class te3
{
public static void main(String args[])
{
int a = 0;
int b = 0;
int add=0;
int sub=0;
while(true)
{
//创建字节输入流,为什么不适用 Scanner 类呢
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try
{
//将输入的数据,包装为 int类型
a = Integer.parseInt(input.readLine());
b = Integer.parseInt(input.readLine());
}
//如果无法转换,如输入的是 “op”,则会抛出异常,因为无法转换为 int型
catch (NumberFormatException e)
{
}
catch (IOException e)
{
}
try
{
//如题
if (a > 10||b > 10)
throw new NumberRangeException();
else
add=a+b;
sub=a-b;
break;
}
catch (NumberRangeException e)
{
System.out.println("您所输入的数字大于10!");
break;
}
}
System.out.println("两数相加得:"+add);
System.out.println("两数相减得:"+sub);
}
}
我感觉这些程序写注释很难写,因为程序的逻辑性不强,写注释也应该是对java知识点的介绍.
第一个程序,建议看一下接口的相关知识。
接口中定义了变量并赋值(double PI=3.1415926),则实现接口的类也会继承得到这个变量和他的值。
接口中定义的函数(calculate),是抽象函数,不能有任何内容;实现接口的类也会继承下来,可以完成这个函数的具体实现。也就是说,不同的实现类都有这个函数,但是函数的实现方式可以不同。
第二和第三个程序都是关于异常的。
第二个try程序块肯定会抛出一个自己定义的异常;由catch接住,输出"It's caught";然后再执行final里面的语句。此处注意final;不管有没有异常抛出,final都会被执行。一般final用来做后期处理;比如连接数据库的时候,在final中关闭对数据库的连接(不管数据库连接后,对数据库的操作会不会产生异常,这个连接都应该关闭)。
第三个程序也是关于异常的理解;有些地方不是程序的关注重点。
import java.io.*;
class NumberRangeException extends Exception
{ //自定义一个异常类, 里面没有任何内容; 只是为了抛出特定异常时,使用.
public NumberRangeException()
{}
}
public class te3
{
public static void main(String args[])
{
int a = 0;
int b = 0;
int add=0;
int sub=0;
while(true)
{
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try
{
a = Integer.parseInt(input.readLine());
b = Integer.parseInt(input.readLine());
}
catch (NumberFormatException e)
{ } //这2个catch不是这个程序的重点, 这是Integer.parseInt(input.readLine())语句有抛出异常的危险, 必须要有接受的语句; 防止抛出异常的情况发生.
catch (IOException e)
{ }
try
{
if (a > 10||b > 10)
throw new NumberRangeException(); // 超出范围,抛出自定义的异常**********
else //没有超出范围, 正常处理
add=a+b;
sub=a-b;
break;
}
catch (NumberRangeException e) //接收到自定义的异常; 对异常进行处理.*******
{
System.out.println("您所输入的数字大于10!");
break;
}
}
System.out.println("两数相加得:"+add);
System.out.println("两数相减得:"+sub);
}
}
interface Inf //定义接口类
{
double PI=3.1415926; //定义圆周率
double calculate(); //定义计算方法
}
class area implements Inf area类实现接口
{
double r;
public area(double r1){r=r1;}
public double calculate() //重写calculate方法
{
return PI*r*r;
}
public void output() //定义 输出方法
{
System.out.println("圆面积为:" + this.calculate());
}
}
class circumference implements Inf
{
double r;
public circumference(double r1){r=r1;}
public double calculate()
{
return 2*PI*r;
}
public void output()
{
System.out.println("圆周长为:" + this.calculate());
}
}
public class te1 //定义测试类
{
public static void main(String args[])
{
area a = new area(5);
a.output();
circumference c = new circumference(5);
c.output();
}
}
Java代码注释:
单行注释 //
块(block)--块注释:/*……*/
文档注释:/**……*/