यह तब भी हो सकता है जब आप गैर-स्थैतिक सदस्यों को स्थैतिक तरीकों से एक्सेस कर रहे हों या इसी तरह। निम्नलिखित दो अलग-अलग पहलू हैं, एक जो त्रुटि और अन्य हल किए गए कोड का कारण बनता है। यह सिर्फ कक्षा "स्थिर" के रूप में अन्य बनाने की बात है
package Stack;
import java.util.Stack;
import java.util.*;
public class StackArrList {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Stack S = new Stack();
System.out.println("Enter some integers and keep 0 at last:\n");
int n = in.nextInt();
while (n != 0) {
S.push(n);
n = in.nextInt();
}
System.out.println("Numbers in reverse order:\n");
while (!S.empty()) {
System.out.printf("%d", S.pop());
System.out.println("\n");
}
}
public class Stack {
final static int MaxStack = 100;
final static int Value = -999999;
int top = -1;
int[] ST = new int[MaxStack];
public boolean empty() {
return top == -1;
}
public int pop() {
if (this.empty()) {
return Value;
}
int hold = ST[top];
top--;
return hold;
}
public void push(int n) {
if (top == MaxStack - 1) {
System.out.println("\n Stack Overflow\n");
System.exit(1);
}
top++;
ST[top] = n;
}
}
}
यह त्रुटि फेंकता है StackArrList प्रकार का कोई एन्कोडिंग उदाहरण उपलब्ध नहीं है। StackArrList (egxnew A () जहाँ x StackArrList का एक उदाहरण है) के संलग्न उदाहरण के साथ आवंटन को योग्य होना चाहिए। और स्टैक वर्ग का उदाहरण बनाने की अनुमति नहीं देगा
जब आप बनाने के वर्ग ढेर करने के लिए स्थिर वर्ग ढेर से कार्य करेंगे और कोई त्रुटि नहीं होगा।
package Stack;
import java.util.Stack;
import java.util.*;
public class StackArrList {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Stack S = new Stack();
System.out.println("Enter some integers and keep 0 at last:\n");
int n = in.nextInt();
while (n != 0) {
S.push(n);
n = in.nextInt();
}
System.out.println("Numbers in reverse order:\n");
while (!S.empty()) {
System.out.printf("%d", S.pop());
System.out.println("\n");
}
}
static class Stack {
final static int MaxStack = 100;
final static int Value = -999999;
int top = -1;
int[] ST = new int[MaxStack];
public boolean empty() {
return top == -1;
}
public int pop() {
if (this.empty()) {
return Value;
}
int hold = ST[top];
top--;
return hold;
}
public void push(int n) {
if (top == MaxStack - 1) {
System.out.println("\n Stack Overflow\n");
System.exit(1);
}
top++;
ST[top] = n;
}
}
}