Java 如何将一些元素添加到从具有特定方法的类创建的堆栈中

Java 如何将一些元素添加到从具有特定方法的类创建的堆栈中,java,Java,因此,我获得了以下GradedActivity课程: public class GradedActivity { private double score; // Numeric score public void setScore(double s) { if (s < 0) score = 0.0; else if (s > 100) score = 100.0; else score = s; } p

因此,我获得了以下GradedActivity课程:

 public class GradedActivity   
 {   
private double score;  // Numeric score   

public void setScore(double s)
{
    if (s < 0)
    score = 0.0;
else if (s > 100)
    score = 100.0;
    else
        score = s;
 }

public double getScore()
{
   return score;
}


   public char getGrade()
  {   
     char letterGrade;  

  if (score >= 90)
     letterGrade = 'A';
  else if (score >= 80)
     letterGrade = 'B';
  else if (score >= 70)
     letterGrade = 'C';
  else if (score >= 60)
     letterGrade = 'D';
  else
     letterGrade = 'F';

  return letterGrade;
} } 
一切编译都没有错误,但getScore没有在我的测试类中计算获得的/total(返回0):

 public class PADemo
 {
   public static void main(String[] args)
   {
        ProgrammingAssignment p1 = new ProgrammingAssignment(28,30);
            GradedActivity p2 = new ProgrammingAssignment(0,30);

      System.out.println (p1.getPointsObtained());
      System.out.println (p1.getPointsTotal());
      System.out.println (p1.getScore());  
      System.out.println (p1.getGrade());  

      System.out.println (p2.getScore());  
      System.out.println (p2.getGrade());  

      p1.setPointsObtained(25);
      p1.setPointsTotal(40);
      System.out.println (p1.getScore());  
      System.out.println (p1.getGrade() == 'F');  
 }
 }  
如何使用getScore()获得分数(获得的分数/总分)

测试类返回:

二十八 30 0 F 0 F 0
true

StackInt
是一个
接口
,因此该接口中的
方法将是抽象方法。
当一个方法是抽象的时,它没有一个主体
因此,为了使用接口的方法,我们需要覆盖接口的所有方法。为此,我们实现了一个接口,如

class Bullcrap implements StackInt
注意
在实现接口时,您必须覆盖其所有方法,即

    E push(E obj);
    E peek();
    E pop();
    boolean empty();
属于
StackInt
的所有这些方法都应该在
Bullcrap

class Bullcrap implements StackInt  {
    LinkedList<Object> queue = new LinkedList<>();
    Stack<Object> st = new Stack<>();
    @Override
    public Object push(Object obj) {
        if(st.size() < 7) {
            st.push(obj);
            return st;
        }else if(queue.size() < 6) {
            queue.add(obj);
            return queue;
        }
            return null;
    }
    
    @Override
    public Object peek() {
        if(st.size() > 0 ) {
            return st.peek();
        }else if(queue.size() > 0) {
            return queue.getFirst();
        }
            return null;
    }
    
    @Override
    public Object pop() {
        if(st.size() > 0) {
            return st.pop();
        }else if(queue.size() > 0) {
            return queue.removeFirst();
        }
            return null;
    }
    
    @Override
    public boolean empty() {
        return st.isEmpty();
    }
    
}

以下是如何在名为
numaded
的变量中跟踪添加了多少项。每次向收藏中添加内容时,都会将
numAdded
增加1

公共类Bull{
Queue Queue=new LinkedList();
StackInt stack=newlinkedstack();
int numAdded=0;
公共布尔addSomeStuff(字符串填充){
布尔加法=假;
如果(未加工<8){
推(东西);
添加=真;
}else if(queue.size()<6){
added=queue.add(填充);
}
如有(新增){
++裸体;
}
增加了退货;
}
}

您需要实现
StackInt
接口,编写自己的堆栈,然后执行所有插入和删除操作。@ScubaSam请将您的问题包括您必须完成的原始作业/家庭作业。不清楚你想做什么。看起来您应该在一个新类中实现
StackInt
接口,但您试图将其用于其他用途。@ScubaSam您所说的不清楚,因为
StackInt
是一个接口,而不是您所说的类。您需要一个实现该接口的类。看起来你的作业/家庭作业希望你做到这一点,但我们不确定。请把你的问题包括给你的原始作业/家庭作业,这样我们可以看到你应该做什么。这可能是一个清晰的想法。这是听起来像一套指令的两个摘录。在你的问题中包括实际的说明如何?听起来你需要跟踪你在变量中添加到堆栈中的项的数量。不,我没有试图重写或覆盖StackInt,那么你是什么。。你能说得更具体一点吗?我正试图在给定的参数范围内,在addSomeStuff方法中,将stackInt创建的stack对象添加元素如果它有一个size方法,它将非常简单,但不幸的是,我需要解决它,只是为了处理添加到其中的内容。为
StackInt
size维护一个全局变量。这似乎可行,但只是缺少一件事:使队列的最大值为6@ScubaSam好啊我已经补充了这一点。如果队列中有6个项目,则不会再添加任何项目。
class Bullcrap implements StackInt  {
    LinkedList<Object> queue = new LinkedList<>();
    Stack<Object> st = new Stack<>();
    @Override
    public Object push(Object obj) {
        if(st.size() < 7) {
            st.push(obj);
            return st;
        }else if(queue.size() < 6) {
            queue.add(obj);
            return queue;
        }
            return null;
    }
    
    @Override
    public Object peek() {
        if(st.size() > 0 ) {
            return st.peek();
        }else if(queue.size() > 0) {
            return queue.getFirst();
        }
            return null;
    }
    
    @Override
    public Object pop() {
        if(st.size() > 0) {
            return st.pop();
        }else if(queue.size() > 0) {
            return queue.removeFirst();
        }
            return null;
    }
    
    @Override
    public boolean empty() {
        return st.isEmpty();
    }
    
}
       public static void main (String[] args) throws Exception{
            StackInt<Integer> stack = new Bullcrap();
            System.out.println("is Empty? : "+stack.empty());
            for(int i = 1 ; i < 15 ;i++) {
                System.out.println(stack.push(i));
            }
            System.out.println("Is empty ? : "+stack.empty());
            System.out.println("Now POP:");
            
            for(int i = 1 ; i < 15 ; i++) {
                if(i==8){
                    System.out.println();
                    System.out.println("Stack Data Ended: Now Queue");
                }
                if(i <= 7) {
                    System.out.print(stack.pop()+", ");
                }else {
                    System.out.print(stack.pop()+", ");
                }
            }
        }// end of main
is Empty? : true
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[8]
[8, 9]
[8, 9, 10]
[8, 9, 10, 11]
[8, 9, 10, 11, 12]
[8, 9, 10, 11, 12, 13]
null
Is empty ? : false
Now POP:
7, 6, 5, 4, 3, 2, 1, 
Stack Data Ended: Now Queue
8, 9, 10, 11, 12, 13, null,