黑马程序员技术交流社区
标题:
有错么
[打印本页]
作者:
来明坤
时间:
2012-8-30 00:23
标题:
有错么
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 ...";
}
}
作者:
牛杨
时间:
2012-8-30 00:29
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 ...";
}
}
有错,红色是修改过的地方。
作者:
冯心程
时间:
2012-8-30 00:33
首先把 主函数是静态的 肯定不能直接去访问非静态的方法的
你把doSomething() 前面加个static
作者:
王自强
时间:
2012-8-30 00:34
class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + s.doSomething());//doSomething()改为s.doSomething();
}
public String doSomething() {
return "Do something ...";
}
}
复制代码
5.jpg
(12.02 KB, 下载次数: 23)
下载附件
2012-8-30 00:32 上传
否则会报错。估计你忘写了......
因为doSomething()不是静态的,不能直接被主函数(静态的)调用,可以通过对象调用,s.doSomething().
作者:
黑马--张帅
时间:
2012-8-30 00:42
肯定是有错的!当你在静态方法中调用其他方法时,其他方法必须定义为静态的。你在调用doSomething()时,必须把该方法定义为public static String doSomething()
修改的代码如下:
//当创建对象时如下:
public class Something {
public static void main(String[] args) {
Something s = new Something();//这句话可要可不要,因为在同一个类中可以直接进行调用
//当用对象进行调用时,格式必须是 对象.方法名
System.out.println("s.doSomething() returns " + s.doSomething());
}
public static String doSomething() {
return "Do something ...";
}
}
//不创建对象时如下:
ublic class Something {
public static void main(String[] args) {
System.out.println("s.doSomething() returns " + doSomething());
}
public static String doSomething() {
return "Do something ...";
}
}
作者:
寇龙飞
时间:
2012-8-30 01:22
package com.itheima.test;
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 ...";
}
}
复制代码
学习标记。
作者:
陈莹
时间:
2012-8-30 15:56
你的程序的错误提示是无法从静态上下文中引用非静态方法 doSomething(),因为你的主函数是静态的,静态函数只能使用静态成员,所以你得将doSomething函数修饰为static类型的,这样你也没必要定义一个Something对象了,浪费内存。
这样代码可以改为:
public class Something {
public static void main(String[] args) {
System.out.println("s.doSomething() returns " + doSomething());
}
public
static
String doSomething() {
return "Do something ...";
}
}
如果不想将doSomething函数定义为静态的,你可以通过对象调用该方法,代码如下:
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 ...";
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2