1. 文件 Showstr.java
里面方法 public void usestr(String str1){...}
----
然后是 class Showusers extends Showstr{...里如果要引用 usestr时候
Showstr.usestr("str1") 无法引用非静态...子类有啥办法引用非静态方法么?2,, 还是上面的 如果全都设置成static
如果
Showstr s1=new Showstr();
Showstr s2=new Showstr();
Showstr s3=new Showstr();s1.name=A; name 是str的一个属性
s2.name=B;
s3.name=C;
后于是 s1.name s2.name s3.name全都成C了,,虽然指向地址都不同.
这个有啥办法没,,改动一个不要牵扯到所有
里面方法 public void usestr(String str1){...}
----
然后是 class Showusers extends Showstr{...里如果要引用 usestr时候
Showstr.usestr("str1") 无法引用非静态...子类有啥办法引用非静态方法么?2,, 还是上面的 如果全都设置成static
如果
Showstr s1=new Showstr();
Showstr s2=new Showstr();
Showstr s3=new Showstr();s1.name=A; name 是str的一个属性
s2.name=B;
s3.name=C;
后于是 s1.name s2.name s3.name全都成C了,,虽然指向地址都不同.
这个有啥办法没,,改动一个不要牵扯到所有
第一个问题:只能用static的,没有其他办法
第二个问题:
如果
Showstr s1=new Showstr();
Showstr s2=new Showstr();
Showstr s3=new Showstr(); 就不要再使用static了
如果你想调用非静态的方法,必须用对象去调用啊。
如:
Showstr s=new Showstr();
s.usestr("str1");
不能把name设为静态的。静态的属性是类属性,不管这个类有多少个对象,这些对象只能看到一份静态的属性。所以如果name是静态的,你三个对象只能有看到一个name.
public Showstr(){
name="0";
str="1";
}
public String name;
public String str;
public void usestr(String name1,String str1){
System.out.print("name="+name,"str="+Str1);
}
}//Showusers.java
public Showusers extends Showstr{
public Showusers(){
timer=2
}
public int timer;
public void usestr(){
for(int i=0;i<timer1;i++){
Showstr.usestr((Showstr.name),(Showstr.str)); //结果因为不是static方法不能用,想问下有什么办法可以调用方法而不采用static
}
}//Mmain.java
public class Mmain{
public static void main(String args[]){
Showusers s1=new Showusers();
Showusers s2=new Showusers();
Showusers s3=new Showusers();
s1.name="A";
s1.str="ZZZ";
s1.timer=2;
s2.name="B";
s2.str="XXX";
s2.timer=3;
s3.name="C";
s3.str="VVV";
s3.timer="4";
s1.usestr();
s2.usestr();
s3.usestr(); // 如果static方法,,,结果华丽的显示的全是s3结果,,s1,s2被覆盖~~orz
}
}
for(int i=0;i <timer1;i++){
Showstr.usestr((Showstr.name),(Showstr.str)); //结果因为不是static方法不能用,想问下有什么办法可以调用方法而不采用static
}
} 你是想把你建立的对象都做某种操作是吧,这样不行的.
你可以把你建立的对象放到一个容器中,比如数组、List、Set中,这样才能对多个对象操作。public class Mmain{
public static void main(String args[]){
Showusers[] ss=new Showusers[3];
Showusers s1=new Showusers();
Showusers s2=new Showusers();
Showusers s3=new Showusers();
s1.name="A";
s1.str="ZZZ";
s1.timer=2;
s2.name="B";
s2.str="XXX";
s2.timer=3;
s3.name="C";
s3.str="VVV";
s3.timer="4";
ss[0]=s1;
ss[1]=s2;
ss[3]=s3;
for(int i=0;i<ss.length;i++){
ss[i].userstr();
}
}