我真是个菜鸟,那么简单的问题就是搞不出来,只有请教大家了 线程里没有实现POP和PUSH这两个方法吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 老兄的程序中有没有定义这两种方法:pop()、push()?如果没有,并且引入的包中又没有包含它们,自然会说它们:cannot resolve。 在同一程序中引用另一类的方法,一般要实例化类后用“.”引用,但如是static的,似乎可以直接用类名引用,但 是类还是方法是static的,我不太把握。另外可以用匿名类来实现 public void push(char c) { data[p]=c; p++; } public char pop() { p--; return data[p]; }我定义这两个方法了啊 //我把你的程序改了改,这回全明白了吧?public class TestStack{ int p = 0; char[] data = {'a','b','c','d','e','f'}; public TestStack(){ } public void push(char c){ data[p]=c; p++; } public char pop(){ p--; return data[p]; } public static void main(String [] args){ TestStack ts = new TestStack(); Thread1 t1 = new Thread1(ts); t1.start(); Thread2 t2 = new Thread2(ts); t2.start(); }}class Thread1 extends Thread{ TestStack ts; char s[] = {'o','p','q','r','s','t'}; public Thread1(TestStack ts1){ ts = ts1; } public void run(){ for (int i = 0; i < 6; i++){ ts.push(s[i]); System.out.println("now is pushing numbers: " + s[i]); } }}class Thread2 extends Thread{ TestStack ts; char s[] = {'u','v','w','x','y','z'}; public Thread2(TestStack ts2){ ts = ts2; } public void run(){ for (int i = 0; i < 6; i++){ System.out.println("now is poping numbers: " + ts.pop()); } }}/*注意:1、应给 p 赋初值;2、赋值最好全在构造方法中做;3、push方法的参数是char型的,你却给她传了一个int;4、基于你定义的TestStack类,只能且必须对其实例化的对象进行操作;5、你在new两个线程对象时传的参数“T1”、“T2”根本没任何作用(你没有使用它);6、在同一个程序中的一个类中调用另一个类的方法:要传给他这个对象的reference. 你那3个 Class 都在一个文件里面么?pop 和 push 方法都是在TestStack里头定义的Thread不能直接用把,先要new 一个 TestStack的instance? comcy(故乡的云) 谢谢您,我记住了!!!! 关于java的关键字new 大家都来想想,用最简单的方法做 我做的网站类 菜鸟问题,如何得到vector中元素得个数?? 怎样将字符串"2006-06-02-11.12.59.407756"这种格式转换为yyyy-MM-dd hh:MM:SS类型的日期格式? 简单工厂模式 JAVA(TM) 中的TM 是什么意思?技术文档吗? 请教?:一个长度为20的字符串转换为长整型出现异常 向各位高手求助!简单goto转变成没有goto的语句· BeautyEye, 界面定制 java菜鸟:请问java主流用来开发什么工程?欢迎讨论,谢谢! 决定了-放假去考scjp
{
data[p]=c;
p++;
}
public char pop()
{
p--;
return data[p];
}
我定义这两个方法了啊
public class TestStack{
int p = 0;
char[] data = {'a','b','c','d','e','f'};
public TestStack(){
}
public void push(char c){
data[p]=c;
p++;
}
public char pop(){
p--;
return data[p];
}
public static void main(String [] args){
TestStack ts = new TestStack();
Thread1 t1 = new Thread1(ts);
t1.start();
Thread2 t2 = new Thread2(ts);
t2.start();
}
}class Thread1 extends Thread{
TestStack ts;
char s[] = {'o','p','q','r','s','t'};
public Thread1(TestStack ts1){
ts = ts1;
}
public void run(){
for (int i = 0; i < 6; i++){
ts.push(s[i]);
System.out.println("now is pushing numbers: " + s[i]);
}
}
}class Thread2 extends Thread{
TestStack ts;
char s[] = {'u','v','w','x','y','z'};
public Thread2(TestStack ts2){
ts = ts2;
}
public void run(){
for (int i = 0; i < 6; i++){
System.out.println("now is poping numbers: " + ts.pop());
}
}
}
/*注意:
1、应给 p 赋初值;
2、赋值最好全在构造方法中做;
3、push方法的参数是char型的,你却给她传了一个int;
4、基于你定义的TestStack类,只能且必须对其实例化的对象进行操作;
5、你在new两个线程对象时传的参数“T1”、“T2”根本没任何作用(你没有使用它);
6、在同一个程序中的一个类中调用另一个类的方法:要传给他这个对象的reference.
pop 和 push 方法都是在TestStack里头定义的
Thread不能直接用把,先要new 一个 TestStack的instance?
谢谢您,我记住了!!!!