Main ผมเอามาแบบย่อๆนะครับ ผมต้องการเอา qpn คือ array ที่ผมสร้างขึ้นมาแล้วมีข้อมูลในนั้นอยู่แล้ว
ผมต้องการเอา array นั้นมาเข้า loop เช็ค ว่าข้อมูลนั้นเป็นจริงหรือเท็จ ถ้าเป็นจริง ก็แสดงผลออกมา
code ด้านล่าง ผมเขียนไม่ได้เลยครับเฉพาะ Main นะ ผมงงๆ
{syntaxhighlighter brush:java;}
for (int i = 0; i < qpn.length; i++) {
qpn[i] = new qpn;
if(qpn[i] == true {
}
}
}
{/syntaxhighlighter}
คือคลาส Officeline
{syntaxhighlighter brush:java;}
package Mini;
public class Officeline {
private boolean Deposit;
private boolean Withdrawal;
private boolean Status;
public Officeline(boolean Deposit, boolean Withdrawal){
this.Deposit = Deposit;
this.Withdrawal = Withdrawal;
}
public boolean isDeposit() {
return Deposit;
}
public void setDeposit(boolean deposit) {
this.Deposit = deposit;
}
public boolean isWithdrawal() {
return Withdrawal;
}
public void setWithdrawal(boolean withdrawal) {
this.Withdrawal = withdrawal;
}
public boolean isStatus() {
return Status;
}
public void setStatus(boolean Status) {
this.Status = Status;
}
}
{/syntaxhighlighter}
คือคลาส ProcessBank
{syntaxhighlighter brush:java;}
import javax.swing.JOptionPane;
public class ProcessBank {
private int qNumber=0;
private QpNumber[] qpn = new QpNumber[10];
private Officeline[] ofl = new Officeline[3];
public int getqNumber() {
return qNumber;
}
public void setqNumber(int qNumber) {
this.qNumber = qNumber;
}
public void addqNumber() {
if (qNumber<10){
this.qNumber++;
}
else {
setqNumber(10);
}
}
public void setqpn(boolean stDeposit, boolean stWithdrawal) {
if (qNumber<10){
qpn[getqNumber()] = new QpNumber(getqNumber(),stDeposit,stWithdrawal);
}
else {
JOptionPane.showMessageDialog(null, "ERORR !\nQueue Full");
}
}
public QpNumber getqpn(int n) {
return qpn[n];
}
public void setOfficeline(int count ,boolean stDeposit, boolean stWithdrawal) {
ofl[count] = new Officeline(stDeposit,stWithdrawal);
}
{/syntaxhighlighter}
คือคลาส QpNumber
{syntaxhighlighter brush:java;}
public class QpNumber {
private int qNumber;
private boolean stDeposit;
private boolean stWithdrawal;
public QpNumber(int qNumber, boolean stDeposit, boolean stWithdrawal) {
super();
this.qNumber = qNumber;
this.stDeposit = stDeposit;
this.stWithdrawal = stWithdrawal;
}
public int getqNumber() {
return qNumber;
}
public void setqNumber(int qNumber) {
this.qNumber = qNumber;
}
public boolean isStDeposit() {
return stDeposit;
}
public void setStDeposit(boolean stDeposit) {
this.stDeposit = stDeposit;
}
public boolean isStWithdrawal() {
return stWithdrawal;
}
public void setStWithdrawal(boolean stWithdrawal) {
this.stWithdrawal = stWithdrawal;
}
}
{/syntaxhighlighter}
mำไมต้องมี qpn[i] = new qpn; ครับ เข้าใจว่าตัดทิ้งน่าจะได้ละ หรือใช้ enhanced for loops
{syntaxhighlighter brush: java}
private void displayQue(boolean[] qpn) {
for (boolean value : qpn) {
if (value) {
// Display somthing
}
}
}
{/syntaxhighlighter}
ก่อนอื่น coding style นี่ทำเอาผมมึนไปเกือบสิบนาทีกว่าจะรู้ว่ามันจะเป็น java 555
จากนั้นก็
น่าจะผิดครับ
qpn
ไม่ใช่ type ใช่ไหม ?จากนั้นก็ ผมเดาว่า qpn ไม่ใช่
boolean[]
น่าจะเป็นQpNumber
มั้ง ? มันก็เลยเอาไปเทียบกับ boolean ตรง ๆ ไม่ได้น่ะครับ ลองหาดูว่าจะใช้เมมเบอร์ตัวไหนนะ (อาจจะเป็นqpn[i].isDeposit()
หรืออะไรก็แล้วแต่)