This program demonstrates the use of static inner classes : Inner Class « Class « Java






This program demonstrates the use of static inner classes

 
/*
   This program is a part of the companion code for Core Java 8th ed.
   (http://horstmann.com/corejava)

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/**
 * This program demonstrates the use of static inner classes.
 * @version 1.01 2004-02-27
 * @author Cay Horstmann
 */
public class StaticInnerClassTest
{
   public static void main(String[] args)
   {
      double[] d = new double[20];
      for (int i = 0; i < d.length; i++)
         d[i] = 100 * Math.random();
      ArrayAlg.Pair p = ArrayAlg.minmax(d);
      System.out.println("min = " + p.getFirst());
      System.out.println("max = " + p.getSecond());
   }
}

class ArrayAlg
{
   /**
    * A pair of floating-point numbers
    */
   public static class Pair
   {
      /**
       * Constructs a pair from two floating-point numbers
       * @param f the first number
       * @param s the second number
       */
      public Pair(double f, double s)
      {
         first = f;
         second = s;
      }

      /**
       * Returns the first number of the pair
       * @return the first number
       */
      public double getFirst()
      {
         return first;
      }

      /**
       * Returns the second number of the pair
       * @return the second number
       */
      public double getSecond()
      {
         return second;
      }

      private double first;
      private double second;
   }

   /**
    * Computes both the minimum and the maximum of an array
    * @param values an array of floating-point numbers
    * @return a pair whose first element is the minimum and whose second element
    * is the maximum
    */
   public static Pair minmax(double[] values)
   {
      double min = Double.MAX_VALUE;
      double max = Double.MIN_VALUE;
      for (double v : values)
      {
         if (min > v) min = v;
         if (max < v) max = v;
      }
      return new Pair(min, max);
   }
}

   
  








Related examples in the same category

1.Nested classes can access all members of all levels of the classes they are nested within
2.Creating inner classesCreating inner classes
3.Creating instances of inner classes
4.Returning a reference to an inner classReturning a reference to an inner class
5.Nesting a class within a scope
6.Putting test code in a nested class
7.Inheriting an inner class
8.Creating a constructor for an anonymous inner classCreating a constructor for an anonymous inner class
9.This file is to show what happens if you try to access an inner class created in another class
10.Demonstrate an Inner Child classDemonstrate an Inner Child class
11.Demonstrate simple inner classDemonstrate simple inner class
12.Just to show that there is no such thing as inner methods in Java
13.A named inner class is used to
14.An inner class cannot be overriden like a methodAn inner class cannot be overriden like a method
15.Proper inheritance of an inner classProper inheritance of an inner class
16.Using inner classes for callbacksUsing inner classes for callbacks
17.Holds a sequence of Objects
18.With concrete or abstract classes, inner classes are the only way to produce the effect
19.Nested Class Static
20.Compiler will generate a synthetic constructor since SyntheticConstructor() is private
21.Accessing its enclosing instance from an inner class
22.This program demonstrates the use of inner classes
23.This program demonstrates the use of local inner classes