public class G{
public static void main(String[] args){
Magazine g1=new Magazine(6);
Magazine g2=new Magazine(6);
Pistol p=new Pistol();
p.setMagazine(g1);
while(p.magazine.volumn!=0){
System.out.println(p.magazine.popBullet());
}
p.setMagazine(g2);
while(p.magazine.volumn!=0){
System.out.println(p.magazine.popBullet());
}
//Bullet b1=new Bullet(1);
//int a=g1.pushBullet(b1);
//System.out.println(a);
}
}
class Bullet{
int id;
Bullet next;
Bullet(int x){
id=x;
}
}
class Magazine{
int volumn; //弹匣子弹数
int capacity; //弹匣容量
Bullet head=new Bullet(-1); //头结点
Magazine(){
volumn=0;
}
Magazine(int n){
volumn=n;
Bullet t=new Bullet(1);
t=head;
int i=2;
while(n--!=0)
{
Bullet bb=new Bullet(i);
t.next=bb;
i++;
t=t.next;
}
}
boolean pushBullet(Bullet b){
if(volumn==capacity){
System.out.println("The Magazine is already full");
return false;
}
Bullet p=head;
while(p.next!=null){
p=p.next;
}
p.next=b;
b.next=null;
volumn++;
return true;
}
boolean popBullet(){
Bullet temp = head;
int j =0;
int i=volumn;
while(j<i-1){
temp = temp.next;
j++;
}
temp.next = temp.next.next;
return true;
}
}
class Pistol{
Magazine magazine=new Magazine();
boolean Shoot(){
if(magazine.volumn==0){
System.out.println("The Magazine is already empty");
return false;
}
boolean a=magazine.popBullet();
if(a) return true;
else return false;
}
void setMagazine(Magazine m){
magazine.volumn=m.volumn;
magazine.capacity=m.capacity;
magazine.head=m.head;
}
}

请问这个java代码为什么会报这个错,具体错在哪里了呢?
