KrafT escreveu:Que seria "C++/#"?
Postincremeta C e divide por #?
Tá, em Java na sei, mas C# pode? (C# não tá na lista).
package tiexpert;
public class Eletrodomestico {
private boolean ligado;
private int voltagem;
private int consumo;
public Eletrodomestico(boolean ligado, int voltagem, int consumo) {
this.ligado = ligado;
this.voltagem = voltagem;
this.consumo = consumo;
}
// (...)
}
package tiexpert;
public class TV extends Eletrodomestico {
private int canal;
private int volume;
private int tamanho;
public TV(int voltagem, int consumo, int canal, int volume, int tamanho) {
super(false, voltagem, consumo);
this.canal = canal;
this.volume = volume;
this.tamanho = tamanho;
}
//(...)
}
package tiexpert;
public class ExemploHeranca {
public static void mostrarCaracteristicas(TV obj) {
System.out.print("Esta TV tem as seguintes características:\n"
+ "Tamanho: " + obj.getTamanho() + "\"\n"
+ "Voltagem Atual: "+ obj.getVoltagem() + "V\n"
+ "Consumo/h: " + obj.getConsumo() + "W\n");
if (obj.isLigado()) {
System.out.println("Ligado: Sim\n"
+ "Canal: " + obj.getCanal() + "\n"
+ "Volume: " + obj.getVolume()+"\n");
} else {
System.out.println("Ligado: Não\n");
}
}
public static void main(String args[]) {
TV tv1 = new TV(110, 95, 0, 0, 21);
TV tv2 = new TV(220, 127, 0, 0, 29);
tv2.setLigado(true);
tv2.setCanal(3);
tv2.setVolume(25);
mostrarCaracteristicas(tv1);
mostrarCaracteristicas(tv2);
}
}
//classe base que define as caracteristicas básicas de um objeto eletrodoméstico
public class Eletrodomestico {
/* Atributos da classe (atributos devem ser visíveis somente dentro da
* própria classe (na maioria das vezes), por isso são declaradas com
* visibilidade private)*/
//a semântica da declaração é: visibilidade + tipo + nome do atributo
private boolean ligado;
private int voltagem;
private int consumo;
/* Metodo construtor (O metodo contrutor deve possuir o mesmo nome da classe,
* podendo ou não ter argumentos(parametro) na sua assinatura)
* abaixo o construtor com tres argumentos(ligado, voltagem, consumo)
*/
public Eletrodomestico(boolean ligado, int voltagem, int consumo) {
/* Operador this.nome_variavel é para indicar que se trata
* de um atributo desta classe.
*/
this.ligado = ligado; //operação de atribuição
this.voltagem = voltagem; //operação de atribuição
this.consumo = consumo; //operação de atribuição
}
/*
* METODOS ACESSORES (GETTER'S and SETTER'S) - São metodos que manipulam os
* atributos desta classe, realizam atribuição e tornam possivel que valores
* dos atributos sejam visualizados por outros objetos. Metodos que iniciam
* com set realizam atribuição, metodos que iniciam com get retornam o valor
* do respectivo atributo.
*/
//a assinatura do metodo consiste: visibilidade + retorno + nome+ parametro(se houver)
public boolean isLigado() {//retorna o estado(valor) do atributo ligado
return ligado;
}
//a assinatura do metodo consiste: visibilidade + retorno + nome+ parametro(se houver)
//void indica que o metodo não possui retorno
public void setLigado(boolean ligado) {//atribui um valor ao atributo ligado
this.ligado = ligado;
}
public int getVoltagem() {
return voltagem;
}
public void setVoltagem(int voltagem) {
this.voltagem = voltagem;
}
public int getConsumo() {
return consumo;
}
public void setConsumo(int consumo) {
this.consumo = consumo;
}
}//fim class
/**
* Essa classe apenas demonstra a o recurso de herança.
* A Herança é um relação de é um, ou seja uma tv é um eletrodomestico
*/
public class ExemploHeranca {
/*
* Esse metodo recebe um objeto do tipo TV e printa na console as suas
* caracteristicas, lembrando que uma TV é um Eletrodomestico, os metodos
* da classe Eletrodomestico também estarão acessiveis a partir do objeto TV.
* Sendo possivel ver saber se a tv esta ligada, qual a sua tensão.
*/
public static void mostrarCaracteristicas(TV obj) {
System.out.print("Esta TV tem as seguintes características:\n"
+ "Tamanho: " + obj.getTamanho() + "\"\n"
+ "Voltagem Atual: " + obj.getVoltagem() + "V\n"
+ "Consumo/h: " + obj.getConsumo() + "W\n");
if (obj.isLigado()) {
System.out.println("Ligado: Sim\n"
+ "Canal: " + obj.getCanal() + "\n"
+ "Volume: " + obj.getVolume() + "\n");
} else {
System.out.println("Ligado: Não\n");
}//fim else
}
public static void main(String args[]) {
TV tv1 = new TV(110, 95, 0, 0, 21); //instancia um novo objeto da classe TV
TV tv2 = new TV(220, 127, 0, 0, 29);//instancia um novo objeto da classe TV
tv2.setLigado(true);//atribui um valor ao atributo ligado do objeto tv2
tv2.setCanal(3); //atribui um valor ao atributo canal do objeto tv2
tv2.setVolume(25); //atribui um valor ao atributo volume do objeto tv2
mostrarCaracteristicas(tv1);//exibe na console as caracteristicas do objeto tv1
mostrarCaracteristicas(tv2);//exibe na console as caracteristicas do objeto tv2
}
}
/*
* A classe TV define as caracteristicas desses objetos, mas herdam as
* caracteristicas da classe eletrodomestico, assim uma tv possui todas as
* caracteristicas de um eletrodomestico mais as caracteristicas de uma tv
*
* A herança é indicada pela utilizaçao da palavra reservada extends na
* assinatura do metodo seguida da classe que sera herdada
*/
public class TV extends Eletrodomestico {
//atributos da classe tv
private int canal;
private int volume;
private int tamanho;
//metodo construtor
public TV(int voltagem, int consumo, int canal, int volume, int tamanho) {
/*
* O metodo super() chama o construtor da classe mãe desta classe, neste
* caso a classe Eletrodomestico, e nele são passados os parametros
* necessarios no construtor da classe eletrodomesticos.
* Caso não se chame o metodo super(), o ambiente informara um erro.
*/
super(false, voltagem, consumo);
this.canal = canal;
this.volume = volume;
this.tamanho = tamanho;
}
//METODOS ACESSORES
public int getCanal() {
return canal;
}
public void setCanal(int canal) {
this.canal = canal;
}
public int getVolume() {
return volume;
}
public void setVolume(int volume) {
this.volume = volume;
}
public int getTamanho() {
return tamanho;
}
public void setTamanho(int tamanho) {
this.tamanho = tamanho;
}
}//fim class
tcpipchip escreveu:Fabim, desiste do JAVA.
KrafT escreveu:tcpipchip escreveu:Fabim, desiste do JAVA.
Meu, que heresia...
=======================
Eu havia entendido que o Fabim queria criar uma stream de uma estrutura...
Boa explicação, TCP. Meu filho quer aprender Java, vou passar isso para ele. Se ele continuar com o interesse, é mais um caso perdido.
KrafT escreveu:tcpipchip escreveu:Fabim, desiste do JAVA.
Meu, que heresia...
tcpipchip escreveu:Aquino, o certo mesmo é começar com ANALISE ORIENTADA A OBJETOS, estou certo ?
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes