double x=4;
double y=Math.sqrt(x);
System.out.println(y);println和sqrt两个方法有差别:
println方法操作一个定义在System类中的System.out对象调用,但是Math类中的sqrt方法操作的不是对象
这个怎么理解,为什么sqrt操作不是对象呢?
谢谢
double y=Math.sqrt(x);
System.out.println(y);println和sqrt两个方法有差别:
println方法操作一个定义在System类中的System.out对象调用,但是Math类中的sqrt方法操作的不是对象
这个怎么理解,为什么sqrt操作不是对象呢?
谢谢
sqrt方法是类方法,不用先实例化成对象再调用,当然也可以实例化成对象再调用,但不太合逻辑!
方法前加static修饰符,就是类方法
举个简单的例子,可能不恰当:
动物类:
有两个方法 一个为 eatFood()//吃食物,显然只有实例化成具体的动物,才能吃,比如一只小鸟 一个为 static int getAllCount();//得到全部动物的个数,这个就属于类方法,不是一只‘鸟’就能得到全部动物的个数,只有‘动物’这一个大的群体才能知道有多少。例子不是很恰当
我在编译器里看了一下,原型是:Math.sqrt(double x)
在C/C++语言中,我们定义一个变量,比如double x;
其实我们也可以理解为x是double的一个对象而已,在Java
里,更是如此的理解,我估计你是刚开始学吧,其实我也刚
开始学,我还是建议Lz在学习的过程中不要拘泥于细节,大
的方面掌握了,再去研究……
sqrt()方法是static的,是类的方法,可以直接调用,即:className.method();不必先实例化对象。
总之:静态方法可以通过类名调用,非静态方法只能通过实例化后的对象调用。Math下面的方法基本上都是static的(请查阅帮助文档),所以都是Math.xxx()来调用。
println()方法是一个非静态方法,所以只能通过一个对象去调用。先照着写吧,写多了,慢慢你就会明白了(大人不是常常说么,等你长大了,你就明白啦)。