java中有关static使用的一个小问题,大家帮帮忙。

baobeizhanshen 2014-12-10 08:00:54
static方法不是调用非static方法和属性,但是请大家看看我程序问题处在哪里?
//本程序是对static进行测试
class Beijing
{
//封装属性
private String name;
private int age;
private static String city = "北京"; //公共属性
//构造方法
public Beijing(String name, int age)
{
this.name = name;
this.age = age;
}
public String getInfo()
{
return "姓名:" + this.name + ",年龄:"+ this.age + ",城市:" + this.city;
}
public static void setCity(String c)
{
this.city = c; //static方法不能调用非static属性方法
}
public static String getCity()
{
return city;
}
}
public class TestStatic
{
public static void main(String[] args)
{
System.out.println(Beijing.getCity());
}
}
this.city = c总是提示出问题说static不能调用非static,请问哪里是非static了?我的this,city肯定是static呀?
...全文
340 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
AKAcrazyman 2014-12-13
  • 打赏
  • 举报
回复
静态方法里不能出现this. 直接这样:city = c ; 就好了。
qq1941302473cgx 2014-12-12
  • 打赏
  • 举报
回复
this是对象本身啊,去掉this就可以了
liukai123 2014-12-11
  • 打赏
  • 举报
回复
静态成员不属于对象本身 this指针其实是对象指针,既然静态不是对象本身的东西,那么this指针自然也不可以用。
liukai123 2014-12-11
  • 打赏
  • 举报
回复
静态成员不属于对象本身。this指针其实是对象指针,既然静态不是对象本身的东西,那么this指针自然也不可以用。
liukai123 2014-12-11
  • 打赏
  • 举报
回复
静态成员不属于对象本身。this指针其实是对象指针,既然静态不是对象本身的东西,那么this指针自然也不可以用。
superstar100 2014-12-11
  • 打赏
  • 举报
回复
如果你直接调用你的static方法,那么“this”代表什么?显然不能这么用的嘛
tdgwj 2014-12-11
  • 打赏
  • 举报
回复
引用 10 楼 baobeizhanshen 的回复:
是不是可以这么理解,静态变量的访问权限是类名称而不是其中的某一个对象
属于公共区域 而非某个对象独有
tdgwj 2014-12-11
  • 打赏
  • 举报
回复
this指代当前对象 而静态成员与具体对象无关 所以把this去掉
baobeizhanshen 2014-12-11
  • 打赏
  • 举报
回复
是不是可以这么理解,静态变量的访问权限是类名称而不是其中的某一个对象
skgary 2014-12-11
  • 打赏
  • 举报
回复
楼主要理解清楚什么叫静态变量。 静态变量是和类的实例无关的,不管你new了多少个对像实例出来,静态变量都只有一个。 所以用this来访问静态变量是没有意义的,
Leafact 2014-12-11
  • 打赏
  • 举报
回复
既然是类的属性了,就不能用this了,this表示当前对象,去掉就不会报错了
Leafact 2014-12-11
  • 打赏
  • 举报
回复
既然是类的属性了,就不能用this了,this表示当前对象,去掉就不会报错了
fai1985 2014-12-10
  • 打赏
  • 举报
回复
this跟对象关联在一起,this只能出现在非静态方法。。。。懂了么?
fai1985 2014-12-10
  • 打赏
  • 举报
回复
this跟对象关联在一起,this只能出现在非静态方法。。。。懂?
fai1985 2014-12-10
  • 打赏
  • 举报
回复
this跟对象关联在一起,this只能出现在非静态方法。。。。懂?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧