Hi, To calculate standard deviation, I wrote the following program: import java.lang.Math.*; public class StandTest { public static void main(String args[]) { Stat record = new Stat(); record.addValue(2); try { System.out.println("Standard Deviation is" + Math.sqrt()); } catch (Exception e) { System.out.println("Exception" + e.getMessage()); } } }
import java.lang.Math.*; public class Stand { private int N; private double S; private double S1; private double SoS; public void addValue(double d) {S +=d; S1 = (d*d); SoS+=S1; N++;} public static double Math.sqrt() throws Exception { if (N < 0) { throw new Exception("negative value is not allowed"); } return ((N*SoS)-(S*S))/(N*(N-1));} } When I complied it, two error messages: Stand.java:9: ';' expected public static double Math.sqrt() throws Exception { ^ StandTest.java:12: sqrt(double) in java.lang.Math cannot be applied to () System.out.println("Standard Deviation is" + Math.sqrt()); Why? Thanks. luk
Val Dra
Ranch Hand
Joined: Jan 26, 2001
Posts: 439
posted
0
If i am wrong someone will correct me on this , But if class is final it's methods are final implicitly. Math class is final therefore you can't overwrite it's sqrt Method plus if i am wrong on this too sqrt takes a parameter which value to take square of. Let me feel the heat
Val SCJP <BR>going for SCJD
Val Dra
Ranch Hand
Joined: Jan 26, 2001
Posts: 439
posted
0
also static methods may not be overriden , i checked and sqrt method takes a value as a parameter of double.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.