Questões - Conceitos de Programação orientada a objetos

Olá Pessoal sou novo por aqui. Queria ver se alguem poderia me ajudar nestas questões?

Conceitos de Programação orientada a objetos

  1. Crie uma classe Java para representar uma lâmpada. A lâmpada pode ser ligada e desligada.
    Implemente um método main() no qual você vai: criar um objeto do tipo lâmpada, ligar a
    lâmpada, imprimir na tela o estado atual da lâmpada, desligar a lâmpada, e imprimir novamente
    o seu estado.

  2. Imagine um carro como um objeto do mundo real que possui estado e comportamento descritos
    abaixo:
    Estados ? velocidade e marcha.
    Comportamentos ? mudar velocidade e trocar marcha.
    Defina uma classe Java para representar o objeto carro. Crie atributos para representar seu estado
    interno e métodos para alterar o seu estado.

  3. Crie duas classes de carro (ex: CarroPopular, CarroLuxo) que estendam a classe Carro criada na
    questão anterior.

  4. Defina uma interface (ex: IVeiculo) contendo o comportamento comum a todos os veiculos.
    Faça sua classe Carro original implementar esta interface.

tow apanhando em java, quem poder me ajudar fico grato! vlw!

1 curtida

Não sei qual é o seu nível de Java…

Mas talvez esse post pode te ajudar a se situar…
http://www.javaframework.org/portal/2010/03/16/entendendo-a-plataforma-java-para-leigos/

Melhor que poste o código. Ai avaliaremos se está correto ou não.

:wink:

Vou dar uma colher-de-cha na primeira questão:

[code]public class Lampada {
private boolean estado; //ligado ou não

public Lampada(){
    //a lampada comeca desligada
    this.estado = false;
}

//metodo que seta o estado da lampada
public void setEstado(boolean estado){
    this.estado = estado;
}

//metodo que retorna o estado atual da lampada
public boolean getEstado(){
    return this.estado;
}

}[/code]

[code]public class Main {
public static void main(String[] args){
//cria o objeto lampada
Lampada minhaLampada = new Lampada();

    //ligar a lampada
    minhaLampada.setEstado(true);
    System.out.println("A lampada esta ligada.");

    //desliga a lampada
    minhaLampada.setEstado(false);
    System.out.println("A lampada esta desligada.");
}

}[/code]

1 curtida

valew! o meu problema esta no algoritmo, pois não estou conseguindo associar… o meu professor falou que estou puxando mais para c do que para java. vou tentar fazer aqui, pra depois trocar ideias aqui com vcs

Como eu disse, tenta fazer e posta aqui!!

pessoal da só uma sacada no meu código

public class Carro {
private double velocidade;
private int marcha;

}

Acima eu criei minha classe Carro, e pensei como velocida em carros variar entre 80, 100, 110. 120,… double e a marcha como um inteiro no caso 1º marcha e etc.

dai eu travei! rsrs

Eu queria que se possivel não me desse a resposta, mais sim como pensaria para resolver esse algoritmo e quais as melhores opçoes em java. e o que posso estudar para melhorar o meu raciocinio referente a java.

valew!!

Pense mais enxuto!

Olha, a idéia é independente de linguagem! Não pense em Java por agora, resolva o problema dividindo-o em problemas menores!

Por exemplo:
Carro

O que um carro tem e que é pertinente ao problema?
Velocidade
Marcha

Um carro de luxo tem tudo que tem um carro, e mais:
Direção Hidráulica
Ar Condicionado

em OO, vc tem o objeto. Não importa como ele vai fazer, vai entregar o q vc precisa, importa q ele vai fazer.

Então, pra ñ responder seu problema, faço outro:
Temos uma impressora que executa somente uma das funções por vez: digitalização, impressão e cópia.

Eis o código:

[code]public class Impressora{
private boolean copia, digitaliza, impressao;
public Impressora(){
this.copia = false;
this.impressao = false;
this.digitaliza = false;
}

boolean podeUsar(){
return !(this.copia||this.impressao||this.digitaliza);
}

void imprime(){
if(podeUsar()){
this.impressao = true;
System.out.println(“Imprimindo…”);
finalizaImpressao();
}else{
System.err.println(“Não pode imprimir, impressora ocupada”);
}
}
//fazer similar para as outras funções
void finalizaImpressao(){
this.impressao = false;
}
//fazer finalizadores, de forma similar
}[/code]

Acho que deu pra sacar! qq duvida não hesite!

Estava olhando o cód da lampada, vc pensou em suas formas para criar o algoritmo.

O 1º cód. vc utlizou boolean.

O 2º cód. vc criou o objeto lampada “Lampada minhaLampada = new Lampada();” com o new.

vc pensou em duas maneiras para criar o cod em java. eu estou estudando muito, mais não tow conseguindo pensar nas possibilidades de criar o código

valew a dica!!! qualquer coisa eu posto

[quote=roberto.cajueiro]Estava olhando o cód da lampada, vc pensou em suas formas para criar o algoritmo.

O 1º cód. vc utlizou boolean.

O 2º cód. vc criou o objeto lampada “Lampada minhaLampada = new Lampada();” com o new.

vc pensou em duas maneiras para criar o cod em java. eu estou estudando muito, mais não tow conseguindo pensar nas possibilidades de criar o código[/quote]

Roberto,

Na verdade isso não é “duas maneiras para criar o código”. Isto que está vendo é orientação a objetos. Ou seja, uma Lampada é um objeto, por isso o “new” para cria-lo. Vc tem que saber separar o conceito de Classe e o conceito de Objeto. São coisas diferentes. A classe é o molde. O objeto é o molde “materializado”. Quando dei o “new” na Classe Main.java, eu usei a materialização da Lampada(que agora é um objeto) para controlar o seu estado.

Deu para entender?

Que material esta lendo? Está estudando por livro? Que livro?

Eu estou estudando por apostilas que encontro na internet. e os slaides que meu professor de java passa.

Se tiver algum material didatico, passa o link!

vlw!

http://www.dfjug.org/DFJUG/jedi/index.jsp

Ótimas fontes e gratuitas.

Dos links q o colega passou, recomendo fortemente as apostilas Caelum! São excelentes, didáticas, abrangentes e completas!

Concordo.

E isso não quer dizer que o JEDI seja mesno importante! :smiley:

Poxa galera , tarefinha de ksa
e vocês tao dando de mao beijada,
ta facil demais deste jeito … :?