A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 呆呆呆 中级黑马   /  2013-11-22 13:33  /  1358 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类名,静态方法
可以用  本类对象.静态方法 调用吗?
还有其他的调用方法吗?
不是很清楚

评分

参与人数 1黑马币 +5 收起 理由
枫儿 + 5 神马都是浮云

查看全部评分

9 个回复

倒序浏览
类中定义的静态方法可以用 类名.静态方法名直接调用  或者是用此类声明的对象调用
回复 使用道具 举报
调用静态方法只是比平常的方法调用多了一个类名.静态方法名
回复 使用道具 举报
基本上可以分为三种情况:
1.如果另一个类中的那个方法是私有的话(private),就不能直接调用到。
2.如果是静态的(static)话,直接用类名可以调用到,类.方法()。
3.如果是非静态的,就需要利用另一个类的实例(也就是用那个类生成的对象)来调用。
通过代码示例:

  1. class A{
  2. public static void a(){}
  3. public void b(){}
  4. private void C(){}  //此方法为private  其它类不可以调用
  5. }

  6. public class B{
  7. public static void main(String[] args){
  8. A.a(); // 静态方法 直接用 类名.方法名
  9. new A().b(); //非静态方法,先newA类的对象 再进行调用 。
  10. }
  11. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
FFF + 2 很给力!and活动技术分额外+1

查看全部评分

回复 使用道具 举报
static
        (1)是一个关键字,可以修饰成员变量和成员方法
        (2)特点:
                A:随着类的加载而加载。
                B:优先于对象存在。
                C:被所有对象共享。
                D:可以被类名调用。
        (3)静态方法和非静态方法的使用
                A:静态方法
                        a:静态成员变量
                        b:静态成员方法

                B:非静态方法
                        a:非静态成员变量
                        b:非静态成员方法
                        c:静态成员变量
                        d:静态成员方法
        (4)静态变量和非静态变量的区别?
                A:生命周期
                        静态随着类的加载而加载,随着类的消失而消失。
                        非静态随着对象的创建而存在,随着对象的消失而消失。

                B:存储位置
                        静态是存储在方法区中的静态区。(方法区:方法区,静态区,代码区,常量池)
                        非静态是存在堆中。

                C:调用方式
                        静态可以类名调用,也可以对象名调用。
                        非静态只能对象名调用。

                D:理解不同
                        静态修饰的内容是被所有对象共享的。
                        非静态的内容是每个对象特有的。
        (5)什么时候使用静态?
                A:如果某个成员被所有对象共享。
                        举例:水杯和饮水机,姓名和班级。
                B:工具类的成员一般都是静态修饰。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 如果真的是你自己总结出来的你就很厉害了!.

查看全部评分

回复 使用道具 举报
本帖最后由 che201311 于 2013-11-22 16:15 编辑


如果另一个类中的那个方法是私有的话(private),就不能直接调用到。
如果是静态的(static)话,直接用类名可以调用到,类.方法()。
如果是非静态的,就需要利用另一个类的实例(也就是用那个类生成的对象)来调用。
通过代码示例:

class A{
public static void a(){}
public void b(){}
private void C(){}  //此方法为private  其它类不可以调用
}

public class B{
public static void main(String[] args){
A.a(); // 静态方法 直接用 类名.方法名
new A().b(); //非静态方法,先newA类的对象 再进行调用 。
}
}

点评

FFF
虽然还是有点含金量不高。但我还是看到了你的努力!加油吧,骚年~  发表于 2013-11-23 14:08

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
lichao 中级黑马 2013-11-22 17:28:29
7#
可以 对象.方法名 也可以类名.方法名 这都是可以的

点评

FFF
同学,一句话的回答。是没有分的~~嘎嘎~~  发表于 2013-11-23 14:10
回复 使用道具 举报
其实这种问题,越是浮云,自己试一下不就知道吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马