Java 实例 - 阶乘和方法覆盖

Java 实例 - 阶乘和方法覆盖

Java 实例 - 阶乘

一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1。自然数n的阶乘写作n!。

亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。

以下实例演示了 Java 阶乘代码的实现:

MainClass.java 文件

public class MainClass {

    public static void main(String args[]) {

    for (int counter = 0; counter <= 10; counter++){

        System.out.printf("%d! = %d\n", counter,

        factorial(counter));

    }

    }

    public static long factorial(long number) {

        if (number <= 1)

            return 1;

        else

            return number * factorial(number - 1);

    }

}

以上代码运行输出结果为:

0! = 1

1! = 1

2! = 2

3! = 6

4! = 24

5! = 120

6! = 720

7! = 5040

8! = 40320

9! = 362880

10! = 3628800

Java 实例 - 方法覆盖

前面章节中我们已经学习了 Java 方法的重载,本文我们来看下 Java 方法覆盖的实现。

方法重载与方法覆盖区别如下:

方法重载(Overloading):如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。

方法覆盖(Overriding):如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法。

以下实例演示了 Java 方法覆盖(Overriding)代码的实现:

Findareas.java 文件

public class Findareas{

    public static void main (String []agrs){

        Figure f= new Figure(10 , 10);

        Rectangle r= new Rectangle(9 , 5);

        Figure figref;

        figref=f;

        System.out.println("Area is :"+figref.area());

        figref=r;

        System.out.println("Area is :"+figref.area());

    }

}

class Figure{

    double dim1;

    double dim2;

    Figure(double a , double b) {

        dim1=a;

        dim2=b;

    }

    Double area() {

        System.out.println("Inside area for figure.");

        return(dim1*dim2);

    }

}

class Rectangle extends Figure {

    Rectangle(double a, double b) {

        super(a ,b);

    }

    Double area() {

        System.out.println("Inside area for rectangle.");

        return(dim1*dim2);

    }

}

以上代码运行输出结果为:

Inside area for figure.

Area is :100.0

Inside area for rectangle.

Area is :45.0

你可能感兴趣的:(java,jvm,servlet)