Você está na página 1de 18

EQUIPAMENTOS

package Projeto;
public class Equipamentos {
private String fabricante;
private String modelo;
private String dimensao;
private String acessibilidade;
private double porcentImposto;
public String getFabricante() {
return fabricante; }
public void setFabricante(String fabricante) {
this.fabricante = fabricante;}
public String getModelo() {
return modelo; }
public void setModelo(String modelo) {
this.modelo = modelo; }
public String getDimensao() {
return dimensao; }
public void setDimensao(String dimensao) {
this.dimensao = dimensao; }
public String getAcessibilidade() {
return acessibilidade;}
public void setAcessibilidade(String acessibilidade) {
this.acessibilidade = acessibilidade; }
public double getPorcentImposto() {
return porcentImposto; }
public void setPorcentImposto(double porcentImposto) {
this.porcentImposto = porcentImposto; }
}

HARDWARE
package Projeto;
public class Hardware extends Equipamentos {
private String localInstalaao;
private String conector;
private double custoMedio;
public String getLocalInstalaao() {
return localInstalaao; }
public void setLocalInstalaao(String localInstalaao) {
this.localInstalaao = localInstalaao;}
public String getConector() {
return conector; }
public void setConector(String conector) {
this.conector = conector; }
public double getCustoMedio() {
return custoMedio;}
public void setCustoMedio(double custoMedio) {
this.custoMedio = custoMedio;}
}

HARDWARE DE MEMRIA
package Projeto;
public class HardwareMemoria extends Hardware{
private double voltagem;
private int capacidade;
public double getVoltagem() {
return voltagem; }
public void setVoltagem(double voltagem) {
this.voltagem = voltagem; }
public int getCapacidade() {
return capacidade; }
public void setCapacidade(int capacidade) {
this.capacidade = capacidade; }
}

MEDIDORES
package Projeto;
public class Medidores extends Hardware{
private String formato;
private String cor;
private String margemDeErro;
private double preoDeFabrica;
public String getFormato() {
return formato;}
public void setFormato(String formato) {
this.formato = formato;}
public String getCor() {
return cor;}
public void setCor(String cor) {
this.cor = cor;}
public String getMargemDeErro() {
return margemDeErro;}
public void setMargemDeErro(String margemDeErro) {
this.margemDeErro = margemDeErro;}
public double getPreoDeFabrica() {
return preoDeFabrica;}
public void setPreoDeFabrica(double preoDeFabrica) {
this.preoDeFabrica = preoDeFabrica;}
}

DISCO RIGIDO
package Projeto;
public class DiscoRigido extends HardwareMemoria{
private int desempenho;
private String interFace;
private String densidadeArea;
public int getDesempenho() {
return desempenho; }
public void setDesempenho(int desempenho) {
this.desempenho = desempenho; }
public String getInterFace() {
return interFace; }
public void setInterFace(String interFace) {
this.interFace = interFace; }
public String getDensidadeArea() {
return densidadeArea; }
public void setDensidadeArea(String densidadeArea) {
this.densidadeArea = densidadeArea; }
@Override
public String toString() {
return "*** DISCO RIGIDO (HD) ***" +"\n"+
"-Fabricante: " +getFabricante()+"\n"+
"-Modelo: " +getModelo() +"\n"+
"-Conector: " +getConector() +"\n"+
"-Capacidade " +getCapacidade() + " GB" +"\n"+
"-Acessibilidade: " +getAcessibilidade(); }

TESTA DISCO RIGIDO


package Projeto;

dr1.setConector("SATA");

public class TestaDiscoRigido {

dr1.setFabricante("Seagate");

public static void main(String[] args) {

dr1.setModelo("ST1000DM003");

DiscoRigido dr1 = new DiscoRigido() ;

dr1.setCapacidade(1000);

dr1.setAcessibilidade("Moderada");

System.out.println(dr1); }}

MEMRIA RAM
package Projeto;
public class MemoriaRAM extends HardwareMemoria{
private double frequencia;
private String latencia;
private int pinagem;
public double getFrequencia() {
return frequencia;}
public void setFrequencia(double frequencia) {
this.frequencia = frequencia;}
public String getLatencia() {
return latencia;}
public void setLatencia(String latencia) {
this.latencia = latencia;}
public int getPinagem() {
return pinagem;}
public void setPinagem(int pinagem) {
this.pinagem = pinagem;}
@Override
public String toString() {
return "*** MEMRIA RAM ***" +"\n"+
"-Fabricante: " +getFabricante()+"\n"+
"-Modelo: " +getModelo() +"\n"+
"-Capacidade: " +getCapacidade() + " GB" +"\n"+
"-Dimenso: " +getDimensao() +"\n"+
"-Custo Mdio: " +getCustoMedio() +"\n"+
"-Acessibilidade: " +getAcessibilidade();}
public void AcrescimoFrete(int preo){
System.out.println("-Valor do frete para todo o Brasil: " +preo +" R$");}
public void AcrescimoFrete(double preo){
System.out.println("-Valor do frete para todo o Brasil: " +preo +" R$"); } }

TESTA MEMRIA RAM


package Projeto;
public class TestaMemoriaRAM {
public static void main(String[] args) {
MemoriaRAM mr1 = new MemoriaRAM ();
mr1.setFabricante("Kingston");
mr1.setModelo("HX421C14FBK2/8");
mr1.setDimensao("133.35 x 34.04 x 7.08 mm");
mr1.setCapacidade(8);
mr1.setCustoMedio(230.50);
mr1.setAcessibilidade("Moderada");
mr1.AcrescimoFrete(10.5);
System.out.println(mr1);

MemoriaRAM mr2 = new MemoriaRAM ();


mr2.setFabricante("CORSAIR");
mr2.setModelo("CC54S5F-12");
mr2.setDimensao("133.35 x 34.04 x 7.08 mm");
mr2.setCapacidade(16);
mr2.setCustoMedio(356.20);
mr2.setAcessibilidade("Difcil");
System.out.println(mr2);
}}

PLACA ME
package Projeto;
public class PlacaMae extends Hardware{
private String alimentaao;
private double tipoUSB;
public PlacaMae(String alimentaao, double tipoUSB) {
this.alimentaao = alimentaao;
this.tipoUSB = tipoUSB;}
public String getAlimentaao() {
return alimentaao;}
public void setAlimentaao(String alimentaao) {
this.alimentaao = alimentaao;}
public double getTipoUSB() {
return tipoUSB;}
public void setTipoUSB(double tipoUSB) {
this.tipoUSB = tipoUSB;}
@Override
public String toString() {
return "*** PLACA ME ***" +"\n"+
"-Fabricante: " +getFabricante()+"\n"+
"-Modelo: " +getModelo() +"\n"+
"-Alimentao: " +getAlimentaao() +"\n"+
"-Tipo USB: " +getTipoUSB() +"\n"+
"-Acessibilidade: " +getAcessibilidade(); } }

TESTA PLACA ME
package Projeto;
public class TestaPlacaMae {
public static void main(String[] args) {
PlacaMae pm1 = new PlacaMae ("ATX",3.0);
pm1.setFabricante("MSI");
pm1.setModelo("z78");
pm1.setAcessibilidade("Difcil");

System.out.println(pm1); }}

PLACA DE VDEO
package Projeto;
public class PlacaDeVideo extends Hardware{
private int memoriaGrafica;
private String suporteDisp;
public int getMemoriaGrafica() {
return memoriaGrafica;}
public void setMemoriaGrafica(int memoriaGrafica) {
this.memoriaGrafica = memoriaGrafica;}
public String getSuporteDisp() {
return suporteDisp;}
public void setSuporteDisp(String suporteDisp) {
this.suporteDisp = suporteDisp;}
@Override
public String toString() {
return "*** PLACA DE VDEO ***" +"\n"+
"-Fabricante: " +getFabricante()+"\n"+
"-Modelo: " +getModelo() +"\n"+
"-Memria grfica: " +getMemoriaGrafica() + " MB" +"\n"+
"-Local de instalao: " +getLocalInstalaao() +"\n"+
"-Conector: " +getConector() +"\n"+
"-Acessibilidade: " +getAcessibilidade();} }

TESTA PLACA DE VDEO


public class TestaPlacaDeVideo {
public static void main(String[] args) {
PlacaDeVideo pv1 = new PlacaDeVideo();
pv1.setFabricante("E-VGA");
pv1.setModelo("GTX 970");
pv1.setAcessibilidade("Difcil");
pv1.setMemoriaGrafica(4096);
pv1.setLocalInstalaao("Parte interna do Gabinete");
pv1.setConector("PCI - E");

System.out.println(pv1); }}

PROCESSADOR
package Projeto;
public class Processador extends Hardware{
private double frequencia ;
private int cache;
private String soquete;
public Processador(double frequencia, String soquete) {
this.frequencia = frequencia;
this.soquete = soquete;}
public double getFrequencia() {
return frequencia;}
public void setFrequencia(double frequencia) {
this.frequencia = frequencia;}
public int getCache() {
return cache;}
public void setCache(int cache) {
this.cache = cache;}
public String getSoquete() {
return soquete;}
public void setSoquete(String soquete) {
this.soquete = soquete;}
@Override
public String toString() {
return "*** PROCESSADOR ***" +"\n"+
"-Fabricante: " +getFabricante()+"\n"+
"-Modelo: " +getModelo() +"\n"+
"-Frequencia: " +getFrequencia() + " GHz" +"\n"+
"-Soquete: " +getSoquete()+"\n"+
"-Acessibilidade: " +getAcessibilidade();}
}

TESTA PROCESSADOR
package Projeto;
public class TestaProcessador {
public static void main(String[] args) {
Processador p1 = new Processador (3.3,"LGA 1556");
p1.setAcessibilidade("Difcil");
p1.setFabricante("Intel");
p1.setModelo("i7");
System.out.println(p1);
}}

TERMOMETRO
package Projeto;
public class Termometro extends Medidores{
private String tempMinMax;
private int duraaoBateria;
private String unidMedida;
public String getTempMinMax() {
return tempMinMax;}
public void setTempMinMax(String tempMinMax) {
this.tempMinMax = tempMinMax;}
public int getDuraaoBateria() {
return duraaoBateria;}
public void setDuraaoBateria(int duraaoBateria) {
this.duraaoBateria = duraaoBateria;}
public String getUnidMedida() {
return unidMedida;}
public void setUnidMedida(String unidMedida) {
this.unidMedida = unidMedida;}
public double getPreoFinal() {
return getPreoDeFabrica()+((getPreoDeFabrica() * 15)/100);}
@Override
public String toString() {

return "*** TERMOMETRO ***" +"\n"+


"-Fabricante: " +getFabricante()+"\n"+
"-Preo de fbrica: " +getPreoDeFabrica() + " R$" +"\n"+
"-Formato: " +getFormato() +"\n"+
"-Preo final:" +getPreoFinal() + " R$" +"\n"+
"-Temperatura minima-mxima: " +getTempMinMax() +"\n"+
"-Unidade de medida: " +getUnidMedida() +"\n"+
"-Acessibilidade: " +getAcessibilidade();}
}

TESTA TERMOMETRO
package Projeto;
public class TestaTermometro {
public static void main(String[] args) {
Termometro t1 = new Termometro ();
t1.setFabricante("Imprio do lar");
t1.setAcessibilidade("Fcil");
t1.setPreoDeFabrica(35.25);
t1.setFormato("Digital");
t1.setTempMinMax(" -50 a 380C");
t1.setUnidMedida("Celsius / Fahrenheit");
t1.getPreoFinal();
System.out.println(t1);
}}

MULTIMETRO
package Projeto;
public class Multimetro extends Medidores{
private String categoria;
private String correnteDC;
private String tensaoAC;
public String getCategoria() {
return categoria;}
public void setCategoria(String categoria) {

this.categoria = categoria;}
public String getCorrenteDC() {
return correnteDC;}
public void setCorrenteDC(String correnteDC) {
this.correnteDC = correnteDC;}
public String getTensaoAC() {
return tensaoAC;}
public void setTensaoAC(String tensaoAC) {
this.tensaoAC = tensaoAC;}
public double getPreoFinal() {
return getPreoDeFabrica()+((getPreoDeFabrica() * 30)/100);}
@Override
public String toString() {
return "*** MULTIMETRO ***" +"\n"+
"-Fabricante: " +getFabricante()+"\n"+
"-Modelo: " +getModelo() +"\n"+
"-Formato: " +getFormato() +"\n"+
"-Categoria: " +getCategoria() +"\n"+
"-Preo de fbrica: " +getPreoDeFabrica() + " R$" +"\n"+
"-Preo final:" +getPreoFinal() + " R$" +"\n"+
"-Acessibilidade: " +getAcessibilidade();} }

TESTA MULTIMETRO
package Projeto;
public class TestaMultimetro {
public static void main(String[] args) {
Multimetro mt1 = new Multimetro();
mt1.setFabricante("HYX");
mt1.setModelo("DT830D");
mt1.setFormato("Digital");
mt1.setPorcentImposto(8);
mt1.setPreoDeFabrica(16.50);
mt1.setCategoria("CAT I 750V");
mt1.setAcessibilidade("Fcil");

System.out.println(mt1); }}

Cdigo

Conceitos

Projeto Final
Java

Classes
podemos entender uma classe como um modelo ou como uma especificao para um
conjunto de objetos, ou seja, a descrio genrica dos objetos individuais pertencentes
a um dado conjunto. A partir de uma classe possvel criar quantos objetos forem
desejados.
Uma classe define as caractersticas e o comportamento de um conjunto de objetos.
Assim, a criao de uma classe implica definir um tipo de objeto em termos de seus
atributos (variveis que contero os dados) e seus mtodos (funes que manipulam
tais dados).

Objetos
Objeto uma instncia de uma classe. Ele capaz de armazenar estados por meio de
seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar
mensagens a outros objetos.

Variveis de instncia
Variveis de instancia so variveis conhecidas como Campos ou Variveis Globais ,
pois so enchergadas em todos os mtodos da classe.

Mtodos
Mtodos nada mais so que um bloco de cdigos que podem ser acessados a
qualquer momento e em qualquer lugar de nossos programas e que representam
aes .

Variveis de referencia
Variveis do tipo referncia armazena o endereo da memria estendida para um
determinado objeto, a quantidade de memria estendida varia de acordo com o objeto.

Encapsulamento (modificadores e nveis de acesso)


Encapsulamento uma tcnica utilizada para restringir o acesso a variveis
(atributos), mtodos ou at prpria classe. Os detalhes da implementao ficam
ocultos ao usurio da classe, ou seja, o usurio passa a utilizar os mtodos de uma
classe sem se preocupar com detalhes sobre como o mtodo foi implementado
internamente.
Para facilitar o entendimento, faamos uma analogia com um carro. Para dirigir um
carro uma pessoa no precisa conhecer os detalhes sobre como funciona o motor ou
os demais componentes dele. Um motorista no precisa saber o que acontece
internamente no carro quando ele acelera ou quando troca de marcha. Para dirigir ele
precisa apenas saber como dirigir o carro utilizando pedais de acelerador, freio e

embreagem, volante e alavanca de cmbio. Esses componentes encapsulam toda a


complexidade existente no carro sob a tica do motorista que o utiliza.
A ideia do encapsulamento na programao orientada a objetos que no seja
permitido acessarmos diretamente as propriedades de um objeto. Nesse caso,
precisamos operar sempre por meio dos mtodos pertencentes a ele. A complexidade
de um objeto escondida, portanto, pela abstrao de dados que esto por trs de
suas operaes.
Quando aprendemos a criar classes, vimos que na definio de cada mtodo e
atributo poderamos definir um qualificador de acesso, mas foi falado que ainda no
era hora de nos preocuparmos com tais detalhes e que poderamos omitir o
qualificador ou nveis de acesso. Pois bem, so exatamente esses qualificadores que
nos permitem implementar o encapsulamento.
Esses qualificadores nos permitem modificar o nvel de acesso aos atributos, aos
mtodos e at mesmo s classes. So trs os possveis qualificadores (ou nveis) de
acesso em Java:
public ( pblico ): indica que o mtodo ou o atributo so acessveis por qualquer
classe, ou seja, que podem ser usados por qualquer classe, independentemente de
estarem no mesmo pacote ou estarem na mesma hierarquia;
private ( privado ): indica que o mtodo ou o atributo so acessveis apenas pela
prpria classe, ou seja, s podem ser utilizados por mtodos da prpria classe;
protected ( protegido ): indica que o atributo ou o mtodo so acessveis pela prpria
classe, por classes do mesmo pacote ou classes da mesma hierarquia (estudaremos
hierarquia de classes quando tratarmos de herana).
Por padro, os atributos encapsulados devem ter um mtodo que obtenha o valor
atual do atributo (mtodo get) e um mtodo que altere o valor do atributo (mtodo set).
Por exemplo, note que na nova verso da classe Conta h um mtodo
getNomeTitular() que retorna o nome do titular da conta e um mtodo
setNomeTitular(String) que atribui um novo nome ao titular da conta. Mas, como
consideramos que o nmero da conta atribudo em sua criao (note que os dois
construtores da classe exigem o nmero) e nunca pode ser alterado, criamos apenas
o mtodo getNumero(). No caso do saldo, como ele s pode ser alterado por saques e
depsitos, no faria sentido criar um mtodo setSaldo. Assim, os mtodos depositar e
sacar servem para alterar o saldo e o getSaldo() nos retorna o valor atual do saldo.
Vale ressaltar que o qualificador private tambm pode ser usado para modificar o
acesso a um mtodo quando este existe apenas para auxiliar a prpria classe e no
queremos que outras pessoas o utilizem.

Construtores
sempre que queremos criar um novo objeto de uma determinada classe utilizamos a
palavra new acompanhada por um construtor.
O construtor de uma classe tem, por definio, o mesmo nome que a classe.
possvel definir diversos construtores para a mesma classe, tendo os tipos ou a
quantidade de parmetros diferentes para cada um deles. O Java define um construtor
padro para classes que no tem nenhum construtor definido. O construtor padro no
recebe nenhum argumento.

Polimorfismo por sobrecarga e sobreposio (sobrescrita)

A palavra polimorismo vem do grego poli morfos e significa muitas formas. Na


orientao a objetos, isso representa uma caracterstica que permite que classes
diferentes sejam tratadas de uma mesma forma.
O polimorfismo permite escrever programas que processam objetos que compartilham
a mesma superclasse (direta ou indiretamente) como se todos fossem objetos da
superclasse; isso pode simplificar a programao (DEITEL; DEITEL, 2010, p. 305).
Em outras palavras, podemos ver o polimorfismo como a possibilidade de um mesmo
mtodo ser executado de forma diferente de acordo com a classe do objeto que
aciona o mtodo e com os parmetros passados para o mtodo.
Sobrescrita
A tcnica de sobrescrita permite reescrever um mtodo em uma subclasse de forma
que tenha comportamento diferente do mtodo de mesma assinatura existente na sua
superclasse.

Sobrecarga
Mtodos de mesmo nome podem ser declarados na mesma classe, contanto que
tenham diferentes conjuntos de parmetros (determinado pelo nmero, tipos e ordem
dos parmetros). Isso chamado sobrecarga de mtodo (DEITEL; DEITEL, 2010, p.
174).
Para que os mtodos de mesmo nome possam ser distinguidos, eles devem possuir
assinaturas diferentes. A assinatura (signature) de um mtodo composta pelo nome
do mtodo e por uma lista que indica os tipos de todos os seus argumentos. Assim,
mtodos com mesmo nome so considerados diferentes se recebem um diferente
nmero de argumentos ou tipos diferentes de argumentos e tm, portanto, uma
assinatura diferente.
Quando um mtodo sobrecarregado chamado, o compilador Java seleciona o
mtodo adequado examinando o nmero, os tipos e a ordem dos argumentos na
chamada

Herana
Uma das vantagens das linguagens orientadas a objeto a possibilidade de se
reutilizar cdigo. Mas, quando falamos em reutilizao de cdigo, precisamos de
recursos muito mais poderosos do que simplesmente copiar e alterar o cdigo.
Um dos conceitos de orientao a objetos que possibilita a reutilizao de cdigo o
conceito de herana. Pelo conceito de herana possvel criar uma nova classe a
partir de outra classe j existente.

Pacotes
Quando desenvolvemos um sistema orientado a objetos, definimos um conjunto de
classes. Para organizar essas classes surge o conceito de pacote. Pacote um
envoltrio de classes, ou seja, guarda classes e outros pacotes logicamente
semelhantes ao pacote que os contm. Podemos visualizar os pacotes como diretrios
ou pastas, nos quais podemos guardar arquivos (classes) e outros diretrios (pacotes)
que tenham contedo relacionado com o pacote que os contm.

Você também pode gostar