// LargestWithIntParameter.java (c) 2005 Kari Laitinen // http://www.naturalprogramming.com // 2004-10-08 File created. // 2005-03-01 Last modification. /* In Java programs, it is not possible that a method would return data to its caller via a parameter that is of some basic type (int, long, float, double, etc. ). This program demonstrates that it is possible to return data to a calling program by using an object that stores some "primitive" value. */ class IntParameter { protected int int_value = 0 ; public IntParameter() {} public IntParameter( int given_initial_value ) { int_value = given_initial_value ; } public int get_value() { return int_value ; } public void set_value( int given_new_value ) { int_value = given_new_value ; } } class LargestWithIntParameter { static void search_largest_integer( int[] array_of_integers, int number_of_integers_in_array, IntParameter largest_integer_to_caller ) { int largest_integer = array_of_integers[ 0 ] ; int integer_index = 1 ; while ( integer_index < number_of_integers_in_array ) { if ( array_of_integers[ integer_index ] > largest_integer ) { largest_integer = array_of_integers[ integer_index ] ; } integer_index ++ ; } largest_integer_to_caller.set_value( largest_integer ) ; } public static void main( String[] not_in_use ) { int[] first_array = { 44, 2, 66, 33, 9 } ; int[] second_array = { 888, 777, 66, 999, 998, 997 } ; IntParameter found_largest_integer = new IntParameter() ; search_largest_integer( first_array, 5, found_largest_integer ) ; System.out.print( "\n The largest integer in first_array is " + found_largest_integer.get_value() + ".\n" ) ; search_largest_integer( second_array, 6, found_largest_integer ) ; System.out.print( "\n The largest integer in second_array is " + found_largest_integer.get_value() + ".\n" ) ; } }