¡¶JAVAÓëģʽ¡·µÚ25Ìì¨D½âÊÍÆ÷ģʽ (¶þ)

2014-11-24 08:31:44 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 1
tring toString() {
return new Boolean(value).toString();
}

}

¡¡¡¡Ò»¸öVariable¶ÔÏó´ú±íÒ»¸öÓÐÃû±äÁ¿

[java]
package com.bankht.Interpreter;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:16
*
* @Àà˵Ã÷ £ºÒ»¸öVariable¶ÔÏó´ú±íÒ»¸öÓÐÃû±äÁ¿
*/
public class Variable extends Expression {

private String name;

public Variable(String name) {
this.name = name;
}

@Override
public boolean equals(Object obj) {

if (obj != null && obj instanceof Variable) {
return this.name.equals(((Variable) obj).name);
}
return false;
}

@Override
public int hashCode() {
return this.toString().hashCode();
}

@Override
public String toString() {
return name;
}

@Override
public boolean interpret(Context ctx) {
return ctx.lookup(this);
}

}
package com.bankht.Interpreter;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:16
*
* @Àà˵Ã÷ £ºÒ»¸öVariable¶ÔÏó´ú±íÒ»¸öÓÐÃû±äÁ¿
*/
public class Variable extends Expression {

private String name;

public Variable(String name) {
this.name = name;
}

@Override
public boolean equals(Object obj) {

if (obj != null && obj instanceof Variable) {
return this.name.equals(((Variable) obj).name);
}
return false;
}

@Override
public int hashCode() {
return this.toString().hashCode();
}

@Override
public String toString() {
return name;
}

@Override
public boolean interpret(Context ctx) {
return ctx.lookup(this);
}

}

¡¡¡¡´ú±íÂß¼­¡°Ó롱²Ù×÷µÄAndÀ࣬±íʾÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼­¡°Ó롱²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷

[java]
package com.bankht.Interpreter;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:55
*
* @Àà˵Ã÷ £º´ú±íÂß¼­¡°Ó롱²Ù×÷µÄAndÀ࣬±íʾÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼­¡°Ó롱²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷
*/
public class And extends Expression {

private Expression left, right;

public And(Expression left, Expression right) {
this.left = left;
this.right = right;
}

@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof And) {
return left.equals(((And) obj).left) && right.equals(((And) obj).right);
}
return false;
}

@Override
public int hashCode() {
return this.toString().hashCode();
}

@Override
public boolean interpret(Context ctx) {

return left.interpret(ctx) && right.interpret(ctx);
}

@Override
public String toString() {
return "(" + left.toString() + " AND " + right.toString() + ")";
}

}
package com.bankht.Interpreter;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:10:55
*
* @Àà˵Ã÷ £º´ú±íÂß¼­¡°Ó롱²Ù×÷µÄAndÀ࣬±íʾÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼­¡°Ó롱²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷
*/
public class And extends Expression {

private Expression left, right;

public And(Expression left, Expression right) {
this.left = left;
this.right = right;
}

@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof And) {
return left.equals(((And) obj).left) && right.equals(((And) obj).right);
}
return false;
}

@Override
public int hashCode() {
return this.toString().hashCode();
}

@Override
public boolean interpret(Context ctx) {

return left.interpret(ctx) && right.interpret(ctx);
}

@Override
public String toString() {
return "(" + left.toString() + " AND " + right.toString() + ")";
}

}

¡¡¡¡´ú±íÂß¼­¡°»ò¡±²Ù×÷µÄOrÀ࣬´ú±íÓÉÁ½¸ö²¼¶û±í´ïʽͨ¹ýÂß¼­¡°»ò¡±²Ù×÷¸ø³öÒ»¸öеIJ¼¶û±í´ïʽµÄ²Ù×÷

[java]
package com.bankht.Interpreter;

/**
* @author: ÌØÖÖ±ø¡ªAK