近看到final关键字 
  说是final定义的类无法被继承,final修饰的方法不能不能被重写,final修饰的属性不能被赋值。
  问题来了 我看API文档 lang包里有public final class Math 这个类 既然这个数学类是final 就不能被继承 也不能被实例化
那么如何来使用这个类里面的方法呢 
我看过有人是这样使用的 Math.random() 我上网查了一下 说是静态的用用法 但是API里并没有说Math这个类是静态的啊~                            求教     
                            谢谢
  

解决方案 »

  1.   

    Math类里的方法都是静态的,所以可以直接用类名.方法名的方式来访问。
    final修饰的类不能被继承,但是可以实例化啊!
      

  2.   

    Math类不能实例化,是因为他的构造方法是private的!
      

  3.   

    你可以看下 API里是这样写的
    static double random() 
              
    是一个静态的方法
    当然可以 MATCH。random()
      

  4.   

    看了下API,Math类中的方法及字段全部是static,当然也包括random。“静态的用法”是指方法的静态用法,而不是类的。再有继承和实例化好像没有关系吧。
      

  5.   

    final 类是可以实例化的,但是Math 的构造器是private所以外部是不可以调用的。Math里的方法都是静态的。因此可以用Math.方法名调用
      

  6.   

    本人学java也一年了!!!这个问题是这样的:final的方法不能被“重写”但能被继承!!
                                               final的变量值是不变的
                                                 final类不能被继承!
                                                  private定义为私有的,可以用“类.方法”调用或者自己实例化,用这个实例去调用private的方法!以上仅为本人一点拙见!
      

  7.   

    本人学java也一年了!!!这个问题是这样的:final的方法不能被“重写”但能被继承!!
                                               final的变量值是不变的
                                                 final类不能被继承!
                                                  private定义为私有的,可以用“类.方法”调用或者自己实例化,用这个实例去调用private的方法!以上仅为本人一点拙见!
      

  8.   

    Math是一个静态类,不能被继承和实例化。要调用其方法的话,就用类名.方法名就可以了
      

  9.   

    public final class Math
    final修饰的类是不能被继承的。
    static double random() 
    static ,静态的,不用new出对象就能用,所以可以这样调用
    Math.random()