eu fiz esse código, onde uma subclasse OuExclusivo herda algumas coisas da classe principal PortaLogica alguem tem alguma observação a fazer ???Alguma correção???
// OuExclusivo.java
public class OuExclusivo extends PortaLogica{
public OuExclusivo(boolean s ){
boolean a;
boolean b;
getA(a);
getB(b);
if (a=b) {
setS(s=false);
else
setS(s=true);
}
return s;
}
}
Seria melhor vc fazer métodos dentro da classe PortaLógica mesmo… não prescisa ir tão longe ehhehe
Faz tipo isso:
public class PortaLogica {
private boolean A;
private boolean B;
private boolean S;
PortaLogica() { A = B = S = false; }
PortaLogica(boolean a, boolean b, boolean s) { A = a; B = b; S = s; }
protected void setA(boolean a) { A = a;}
protected void setB(boolean b) { B = b; }
protected void setS(boolean s) { S = s; }
public boolean getA() { return A; }
public boolean getB() { return B; }
public boolean gets() { return S; }
public void OuExclusivo () {
this.setS(this.getA() != this.getB()); //true se os dois forem diferentes, false se os dois forem iguais
}
public void And () {
this.setS(this.getA() && this.getB());
}
//outras portas aqui =P
}
acho que é isso… se estiver errado me desculpem ;(
esse seu public OuExclusivo é somente o construtor da classe, é como se ele fosse um método qualquer! Vc tá declarando um outro método logo depois dele, antes de fechar chaves… Por isso que o compilador tá chiando
pra que o construtor OuExclusivo ter 2 parâmetros de entrada, se vc vai sobreescrevê-los de qualquer maneira?
O método setS da sua classe PortaLogica é do tipo void, ou seja, não retorna valor algum… então, vc não pode fazer isso que vc tá fazendo, z=setS(false).
Em java, para comparar, use ==, e não =.
Já dei minha sugestão, faça métodos para a classe superior, bobagem fazer uma classe para cada operação.
na verdade eu tenho que fazer uma outra classe , eu sei que é menos complicado fazer um método dentro da classe superior…
eu fiz uma mudança do código, mais alguma sujestão ??
// OuExclusivo.java
public class OuExclusivo extends PortaLogica{
public OuExclusivo(boolean x,boolean y,boolean z)
{
x=getA();
y=getB();
setS(z);
if (x==y)
z=false;
else
z=true;
setS(z);
}
public void SaidaValor() {
System.out.print("A = " +getA());
System.out.print("B = " +getB());
System.out.print("S = " +getS());
}
}
eu sei que tah complicando a situação hehehe mas o professor é que tah exigindo que se faça assim… sabe como é professor … hehehe
é eu dei uma vacilada mesmo , tava definindo parâmetros que seriam sobrescritos depois … Agora tah legal ???
// OuExclusivo.java
public class OuExclusivo extends PortaLogica{
public OuExclusivo()
{
boolean x=getA();
boolean y=getB();
boolean z;
if (x==y)
z=false;
else
z=true;
setS(z);
}
public void SaidaValor() {
System.out.print("A = " +getA());
System.out.print("B = " +getB());
System.out.print("S = " +getS());
}
}