java,,是不是只有类才能调用静态方法??对象能调用静态方法吗,能举个实例吗?

如题所述

既然类都能调用,那当然实例也可以调用。就拿下面这个例子,我定义一个人类,它有一个方法say(),代表所有人都能说话,测试的时候可以直接通过类名调用。然后我创建两个人一个男人,一个女人,理所当然他们也能说话,也就是通过实例去调用方法。

public class Person{
    public static void say(){
        System.out.println("hello");
    }
    public static void main(String[] args) {
        Person.say();
        Person man=  new Person();
        man.say();
        Person woman=  new Person();
        woman.say();
    }
}
//运行结果
hello
hello
hello

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-05

能呀


public class A{
   public static void show(){
      System.out.println("a");
   }
}

调用的时候
A a = new A();
a.show();

第2个回答  2015-08-05
public class Student {
    public String name; //名字
    public Integer age; //年龄
    public static String nickName; //别名
    public Student(String name, Integer age) {
        super();
        this.name = name;
        this.age = age;
    }
    //实例方法
    public String getName(){
        return this.name;
    }
    //类方法
    public static  String getNickName(){
        return nickName;
    }
    public static void main(String[] args) throws Exception {
        Student s = new Student("张三", 10);

        s.getNickName(); //对象调用类方法
        s.getName();  //对象调用是实例方法
        Student.getNickName(); //类调用类方法
        Student.getName();  //类调用实例方法 。报错,编译不过
    }
}

追问

Student.getName(); 为啥报错呢?

追答

实例方法,不能通过 类名.方法调用

第3个回答  2015-08-05
对象可以调用静态方法,但是实际上调用的过程当中与这个对象是没有关系的,还是和通过类调用一模一样的结果,这也就是为什么静态方法只能获取类静态变量的值,而不能获取非静态变量的。本回答被网友采纳
相似回答