java 静态方法和实例方法的区别

 我来答
坤坤吃饭第一名
2016-05-02 · TA获得超过667个赞
知道小有建树答主
回答量:391
采纳率:66%
帮助的人:206万
展开全部
1、有无隐式参数this。对于每一个实例方法,都有一个隐士参数this,也就是对当前对象操作。比如String类对象s, s.length() 就可获得字符串s的长度,实际上内部是这样调用的:length(s)。类中的 静态方法是没有隐式参数的。
2、静态方法可以理解为一个类的通用工具,比如char的包装类Character,里面就有很多操作字符的方法 :
Character.isdigit(char c)
Character.isupper(char c)
......

在比如Math类,里面的静态方法可以用来进行数学计算。你可发现,静态方法有点像面向过程中的方法,它不再和某个对象绑定在一起了(严格说是和类绑定的,也就是说,静态方法是属于某个类的),所以我们说它们很像“通用工具”。而实例方法的侧重点在:构成实例的业务逻辑操作,或者说,模拟对象的操作。比如你设计一个Student类,那么,study()方法就不要写为静态方法,因为study方法是每个学生都固有的行为,它是构成实例的接口。

3、静态方法不知道实例的任何信息,不能在静态方法中使用实例字段,因为在定义静态方法时,还没有任何实例被new出来。

4、静态方法通过类来调用,实例方法通过实例来调用(虽然java支持实例调用静态方法,但是最好不要这样做。)

5、如果我说的你不理解,那就多写代码,这有助于你感受他们的差别。有一天你会恍然大悟的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式