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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© TS__likewise 中级黑马   /  2014-6-1 09:56  /  1393 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}

8 个回复

正序浏览
方式2:

捕获.PNG (133.5 KB, 下载次数: 56)

捕获.PNG
回复 使用道具 举报
总结问题所在:
1. 非静态方法只能用对象或this关键字调用;
2. 静态成员从属于于类,非静态成员从属于对象,
     所以在静态方法中调用非静态方法必须用对象调用
3. 静态方法可以相互调用,因为他们不属于某个具体的对象:

改正方式1:

public class Something
{
        public static void main(String[] args)
        {
                Something s = new Something();
                System.out.println("s.doSomething() returns " + s.doSomething());
        }
        public String doSomething()
        {
            return "Do something ...";
        }
}


改正方式2:
public class Something
{
        public static void main(String[] args)
        {
                System.out.println("doSomething() returns " + doSomething());
        }
        public static  String doSomething()
        {
            return "Do something ...";
        }
}

捕获.PNG (154.38 KB, 下载次数: 55)

捕获.PNG
回复 使用道具 举报
TS__likewise 发表于 2014-6-9 12:23
没网的人太苦了,,谢谢

怎么啦
回复 使用道具 举报
多一点 发表于 2014-6-1 10:09
public class Something {
public static void main(String[] args) {
Something s = new Something();

没网的人太苦了,,谢谢
回复 使用道具 举报
主函数,只能直接调用静态方法
package com.lsh.uh;

public class Something {
        public static void main(String[] args) {
                Something s = new Something();
                System.out.println("s.doSomething() returns " + doSomething());
        }

        public static String doSomething() {
                return "Do something ...";
        }
}
回复 使用道具 举报

修改过的,看下
package IO;

public class Something {
        public static void main(String[] args) {

                Something s = new Something();

                System.out.println("s.doSomething() returns " + doSomething());

        }

        public static String doSomething() {
                return "Do something ...";

        }
}
回复 使用道具 举报
main方法是static的 无法使用非static的方法
回复 使用道具 举报
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + s.doSomething());//这样就可以啦
}
public String doSomething() {//这个方法要么就静态, 不静态调用的时候就需要用对象调用s.doSomething()
return "Do something ...";
}public static String doSomething() {//静态 Something.doSomething()或者doSomething();
return "Do something ...";
}
}

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马