Saudações a todos! Como um novo GUJnauta estou precisando ter uma visão panorâmica. Logo, venho solicitar uma explicação passo-a-passo (linha a linha) do que estes três códigos fazem. Se for possível citar um pouco da teoria aplica em cada passo… valeu!!! Seguem os três códigos:
[color=red]-----------------------------MEMÓRIA------------------------------
abstract class MemoriaS{
public static final int BYTE=1;
public static final int KB=2;
public static final int MB=3;
public static final int GB=4;
protected double total;
protected double utilizadoKB;
protected int unidade;
public MemoriaS(int newTotal,int newUnidade){
this.total = newTotal;
this.utilizadoKB = 0;
this.unidade = newUnidade;
}
public MemoriaS(int newTotal){
this(newTotal,KB);
}
public abstract double getEspacoDisponivelRealKB();
public abstract double getPerda();
protected double getEspacoDisponivelKB(){
return this.getConverteKB(this.total) - this.utilizadoKB;
}
public boolean GravaKB(int newTamanho){
if ( (newTamanho<=this.getEspacoDisponivelRealKB()) ){
this.utilizadoKB = this.utilizadoKB + newTamanho;
return true;
}else{
return false;
}
}
protected double getConverteKB(double valor){
double tempValor=0;
switch (unidade){
case MemoriaS.BYTE:
tempValor = valor/1204;
break;
case MemoriaS.KB:
tempValor = valor;
break;
case MemoriaS.MB:
tempValor = valor*1024;
break;
case MemoriaS.GB:
tempValor = valor*1024*1024;
break;
}
return tempValor;
}
public String getUnidade(){
switch (unidade){
case BYTE:
return "BYTE";
case KB:
return "KB";
case MB:
return "MB";
case GB:
return "GB";
}
return "";
}
public double getPercentualDisponivel(){
return this.getEspacoDisponivelRealKB()/this.getConverteKB(this.total)*100;
}
public String toString(){
return " Percentual Disponivel " + this.getPercentualDisponivel() +
"% Espaço Total " + this.getConverteKB(this.total) +
"KB Espaço Disponivel Real " +this.getEspacoDisponivelRealKB()+
"KB Perda "+this.getPerda() + "%";
}
public static void main(String args[ ]){
MemoriaS hd = new HD("46327",10,MemoriaS.MB);
System.out.println("Número de Serie "+((HD)hd).getNumeroSerie()+ "Percentual de Perda"+ hd.getPerda());
hd.GravaKB(10000);
System.out.println(hd);
MemoriaS cd = new CD(650,MemoriaS.MB);
System.out.println(" Estado CD "+((CD)cd).getEstado());
cd.GravaKB(10240);
System.out.println(cd);
cd.GravaKB(10240);
System.out.println(cd);
}
}[/color]
[color=blue]---------------------------------HD-------------------------------
public class HD extends MemoriaS {
private String numeroSerie;
public HD (String newNumeroSerie,int newTotal,int newUnidade){
super(newTotal,newUnidade);
this.numeroSerie = newNumeroSerie;
}
public double getPerda(){
return ((super.getConverteKB(super.total)/10240)/100);
}
public double getEspacoDisponivelRealKB(){
return super.getEspacoDisponivelKB()*(1-this.getPerda());
}
public String getNumeroSerie(){
return this.numeroSerie;
}
public String toString(){
return "HD Número de Serie " +this.numeroSerie+" " + super.toString();
}
}[/color]
[color=green]----------------------------------CD----------------------------------
public class CD extends MemoriaS {
public static final int ABERTO=1;
public static final int FECHADO=2;
public static final double PERCENTUALPERDA=0.98;
private int estado;
public CD (int newTotal,int newUnidade){
super(newTotal,newUnidade);
this.estado = CD.ABERTO;
}
public double getPerda(){
return PERCENTUALPERDA;
}
public double getEspacoDisponivelRealKB(){
return super.getEspacoDisponivelKB()*this.getPerda();
}
public boolean GravaKB(int newTamanho){
if ( (this.estado == this.ABERTO) && (super.GravaKB(newTamanho)) ){
this.estado = this.FECHADO;
return true;
}else{
return false;
}
}
}[/color]