Srs, bom dia!
Eu entendo que quando tempos métodos do tipo static dentro da mesma class seja possível fazer a chamada entre eles, sem que seja necessário a declaração de um objeto. Bom peço que se eu estiver errado alguém possa esclarecer este conceito.
No exemplo abaixo tenho uma classe Array_Variavel_Main que contem dois métodos do tipo static, são eles: average e main. Todos estão no mesmo arquivo.
Quando eu faço compilação do código em questão, tudo está correto, mas quando peço para executar o erro em questão é apresentado.
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '.'
at java.util.Formatter.checkText(Formatter.java:2579)
at java.util.Formatter.parse(Formatter.java:2555)
at java.util.Formatter.format(Formatter.java:2501)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at Array_Variavel_Main.main(Array_Variavel_Main.java:21)
Eu fiz vários testes e inclusive penso que não seja erro no código. Mas tenho dificuldade de compreender alguns conceitos de O.O e propriedades de Classes, Objetos e métodos. Se alguém puder esclarecer essa questão, agradeço antecipadamente.
public class Array_Variavel_Main{
public static double average( double... numbers )
{
double total = 0.0; //inicializa o total
for( double d: numbers )
total += d;
return total / numbers.length;
}//Fim do método average
public static void main( String[] args )
{
double d1 = 10.00;
double d2 = 20.00;
double d3 = 30.00;
double d4 = 40.00;
System.out.printf( "D1 = %.1f\nd3 = %.f\n4 = %.1f\n\n", d1, d2, d3, d4 );
System.out.printf( "Average of d1 and d2 is %.1f\n",
average( d1, d2 ) );
System.out.printf( "Average of d1, d2 and d3 is %.1f\n",
average( d1, d2, d3 ) );
System.out.printf( "Average of d1, d2, d3 and d4 is %.1f\n",
average( d1, d2, d3, d4 ) );
}
}