Promotion of primitives and overloading : Overloading « Class « Java






Promotion of primitives and overloading

Promotion of primitives and overloading

// : c04:PrimitiveOverloading.java
// Promotion of primitives and overloading.
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.

public class PrimitiveOverloading {
  void f1(char x) {
    System.out.println("f1(char)");
  }

  void f1(byte x) {
    System.out.println("f1(byte)");
  }

  void f1(short x) {
    System.out.println("f1(short)");
  }

  void f1(int x) {
    System.out.println("f1(int)");
  }

  void f1(long x) {
    System.out.println("f1(long)");
  }

  void f1(float x) {
    System.out.println("f1(float)");
  }

  void f1(double x) {
    System.out.println("f1(double)");
  }

  void f2(byte x) {
    System.out.println("f2(byte)");
  }

  void f2(short x) {
    System.out.println("f2(short)");
  }

  void f2(int x) {
    System.out.println("f2(int)");
  }

  void f2(long x) {
    System.out.println("f2(long)");
  }

  void f2(float x) {
    System.out.println("f2(float)");
  }

  void f2(double x) {
    System.out.println("f2(double)");
  }

  void f3(short x) {
    System.out.println("f3(short)");
  }

  void f3(int x) {
    System.out.println("f3(int)");
  }

  void f3(long x) {
    System.out.println("f3(long)");
  }

  void f3(float x) {
    System.out.println("f3(float)");
  }

  void f3(double x) {
    System.out.println("f3(double)");
  }

  void f4(int x) {
    System.out.println("f4(int)");
  }

  void f4(long x) {
    System.out.println("f4(long)");
  }

  void f4(float x) {
    System.out.println("f4(float)");
  }

  void f4(double x) {
    System.out.println("f4(double)");
  }

  void f5(long x) {
    System.out.println("f5(long)");
  }

  void f5(float x) {
    System.out.println("f5(float)");
  }

  void f5(double x) {
    System.out.println("f5(double)");
  }

  void f6(float x) {
    System.out.println("f6(float)");
  }

  void f6(double x) {
    System.out.println("f6(double)");
  }

  void f7(double x) {
    System.out.println("f7(double)");
  }

  void testConstVal() {
    System.out.println("Testing with 5");
    f1(5);
    f2(5);
    f3(5);
    f4(5);
    f5(5);
    f6(5);
    f7(5);
  }

  void testChar() {
    char x = 'x';
    System.out.println("char argument:");
    f1(x);
    f2(x);
    f3(x);
    f4(x);
    f5(x);
    f6(x);
    f7(x);
  }

  void testByte() {
    byte x = 0;
    System.out.println("byte argument:");
    f1(x);
    f2(x);
    f3(x);
    f4(x);
    f5(x);
    f6(x);
    f7(x);
  }

  void testShort() {
    short x = 0;
    System.out.println("short argument:");
    f1(x);
    f2(x);
    f3(x);
    f4(x);
    f5(x);
    f6(x);
    f7(x);
  }

  void testInt() {
    int x = 0;
    System.out.println("int argument:");
    f1(x);
    f2(x);
    f3(x);
    f4(x);
    f5(x);
    f6(x);
    f7(x);
  }

  void testLong() {
    long x = 0;
    System.out.println("long argument:");
    f1(x);
    f2(x);
    f3(x);
    f4(x);
    f5(x);
    f6(x);
    f7(x);
  }

  void testFloat() {
    float x = 0;
    System.out.println("float argument:");
    f1(x);
    f2(x);
    f3(x);
    f4(x);
    f5(x);
    f6(x);
    f7(x);
  }

  void testDouble() {
    double x = 0;
    System.out.println("double argument:");
    f1(x);
    f2(x);
    f3(x);
    f4(x);
    f5(x);
    f6(x);
    f7(x);
  }

  public static void main(String[] args) {
    PrimitiveOverloading p = new PrimitiveOverloading();
    p.testConstVal();
    p.testChar();
    p.testByte();
    p.testShort();
    p.testInt();
    p.testLong();
    p.testFloat();
    p.testDouble();

  }
} ///:~


           
       








Related examples in the same category

1.Demonstration of both constructor and ordinary method overloadingDemonstration of both constructor and ordinary method overloading
2.Overloaded constructor
3.Overloaded methodOverloaded method
4.Demonstration of overriding fieldsDemonstration of overriding fields
5.Overloading based on the order of the argumentsOverloading based on the order of the arguments
6.Overloading a base-class method name in a derived class does not hide the base-class versionsOverloading a base-class method name in a derived class does not hide the base-class versions
7.Demotion of primitives and overloading