黑马程序员技术交流社区
标题:
函数问题
[打印本页]
作者:
惠晖
时间:
2012-11-1 22:34
标题:
函数问题
class Car
{
String color = "红色";
int num = 4;
void run()
{
System.out.println(color+".."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
Car c=new Car();
c.run(); //调用模式为 :对象.对象成员 这里的对象成员为函数(方法)
Car q =new Car();
show(q);
show(new Car());//这个调用方法为为 函数名称(对象)
}
public static void show(Car w)
{
w.color="black";
w.num=5;
w.run();
}
}
我想问下 这2个应该都是函数吧, 这2个调用方法为什么不一样 能详细解答下么?
作者:
焦晨光
时间:
2012-11-1 22:39
一个是静态方法 一个是非静态方法
静态方法的调用格式是:类名.方法名
非静态方法的调用格式是:对象名.方法名
一个是类名调用,一个是对象调用
如果是调用同一个类里的静态方法,直接拿过来用就ok了
就这么简单!~~
作者:
惠晖
时间:
2012-11-1 23:00
你的意思我懂了 如果定义一个叫P的对象 调用就应该是p.show(); 了吧
作者:
林晓泉
时间:
2012-11-1 23:04
惠晖 发表于 2012-11-1 23:00
你的意思我懂了 如果定义一个叫P的对象 调用就应该是p.show(); 了吧
show是本类的静态方法
调用的时候缺省类名
完整的应该是CarDemo.show(new Car());
作者:
惠晖
时间:
2012-11-1 23:05
这上面就是同一个类中所以直接show(q) 直接拿过来用?
作者:
梁胜海
时间:
2012-11-1 23:36
如果一个成员变量是static,那么我们可以通过类名.成员变量名的方式来使用它或者如果一个方法是静态方法,那么我们可以通过类名.方法名来调用。更多详细问题见我的博客,大家共同努力进黑马http://blog.csdn.net/lsh609912726/article/details/8138871
作者:
颜峰
时间:
2012-11-2 02:16
Car 类中的run()方法是非静态方法,调用的时候需要使用该类的实例对象.方法名(); new Car().run()
CarDemo类中的show()方法是静态方法,调用的时候需要使用该类的类名或该类的实例对象调用:CarDemo.show(q)或者new CarDemo().show(q)
在类内部调用本类的静态方法的时候可以省略类名
作者:
邹海洋
时间:
2012-11-2 09:28
本帖最后由 邹海洋 于 2012-11-2 09:35 编辑
static 修饰的方法是随着类的加载而加载,show这个方法里面有未知内容参与运算,这个程序能编译通过吗? 好吧 我试了,可以。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2