Dúvida simples

21 respostas
gsalcantara

Galera, boa noite.
Para entender melhor esse código aí em baixo eu fui comentando algumas linhas (as que eu consegui entender) e depois testei.

Mas… tem algumas linha que eu não entendi direito.
E o código não compilou.

Portanto gostaria da ajuda de vocês para tentar me explicar o que eu não entendi.

Valew.

class Lampada{ //Cria uma classe Lampada private String estado = "Apagada"; //Essa classe (Lampada) é privada (não se pode mexer) e a variável do tipo String é "Apagada" public void Apagar(){ //Essa linha eu não saquei estado = "Apagada"; //Aqui eu dei um valor a variável (que no caso seria "Apagada") } public void Acender(){ //Essa linha eu não saquei estado = "Acesa"; //Criei uma variável (estado) que recebe o valor "Acesa" } public void MostrarEstado(){ //Essa linha eu não saquei System.out.println("A lampada está" + estado); //Aqui é o dado de saída, que retorna se a lampada está acesa ou apagada } }

21 Respostas

Felagund
public void Acender(){

Essa é a definição de um metodo, um metodo é como uma ação de sua classe pode executar, ou seja se eu chamar o metodo (ação) Acender, minha lampada estará acessa

Lampada l = new Lampada();
l.MostraEstado();
l.Acender();
l.MostraEstado();
l.Apagar();
l.MostraEstado();

Um código bem simples para testar sua lampada, e vc ver o que acontece.

[]'s

Anderson_Leite

vamos aos poucos

class Lampada{ //aqui voce criou uma classe..um molde para criar objetos no sistema }

public void algumaCoisa(){ //isso se repete, são acoes que sua classe poderá realizar //no seu caso, voce criou tres possíveis acoes => apagar, ascender e mostrarEstado //o nome dado para cada ação é método }

private String estado = "apagada"; // aqui voce criou uma variável, algo que guarda uma informação (que poderá ser alterada)

veja se as coisas começam a “clarear”
[]s

gsalcantara

Felagund, muito obrigado pela ajuda!
Vou tentar entender aqui.

gsalcantara

Anderson Leite,

cara, está melhorando sim…
Continue por favor…

Anderson_Leite

Faça suas conclusoes agora, pra que agente possa continuar te ajudando.
[]s

skalinichenko

Uma outra coisa, sobre um comentário…

private String estado = "Apagada"; //Essa classe (Lampada) é privada (não se pode mexer) e a variável do tipo String é "Apagada"

Sua classe Lampada não é privada.
Sua classe lâmpada, está com visibilidade default (e uma classe, não pode ser private, somente public ou default)
Agora, sua variável estado, do tipo String, essa sim é privada (private).
Flw e boa sorte!

gsalcantara

ok Anderson…

skalinichenko… valew cara…

o Anderson, vou refazer os comentários aqui entao… só 1 minutinho que eu já posto ele de novo…

gsalcantara
class Lampada{ //Cria uma classe Lampada

Ok…
Vamos lá por partes…

Essa primeira linha eu entendi bem não é?
Está certo o que eu comentei né?

gsalcantara

private String estado = "Apagada"; //Essa variável (estado) é do tipo String e ela tem o valor "Apagada"

2ª linha: Essa está certa agora né?

skalinichenko

Até agora sim…
Copia tudo de uma vez e coloca os comentários ao lado.
Melhor! :slight_smile:

gsalcantara

ok… deixa eu fazer isso aqui entao…

Anderson_Leite

sim…mas o que é uma “classe” ?

imagine um bolo…um bolo é feito a partir de uma receita, correto ?

class é como a receita, define a criação de objetos seguindo aquelas “regras”

e como criar os objetos então se só criei a classe ?

Lampada lampada1 = new Lampada();

Lampada lampada2 = new Lampada();

Lampada lampada3 = new Lampada();

Aqui voce criou 3 objetos a partir da mesma classe.

ok quanto isso ?

gsalcantara

bacana Anderson, entendi o que vc quis dizer…
vou concertar aqui e posto novamente pra vcs verem se eu estou entendendo mesmo…

gsalcantara
class Lampada{ //Cria uma classe Lampada   
private String estado = "Apagada"; //Essa variável (estado) é do tipo String e ela tem o valor "Apagada"     
public void Apagar(){ //Aqui eu criei um método (Apagar) 
    estado = "Apagada";  // Aqui eu dei um valor a esse método
    }   
public void Acender(){  
    estado = "Acesa";  
    }   
public void MostrarEstado(){
    System.out.println("A lampada está" + estado);  
    }   
}

Tá certinho até agora galera?

skalinichenko

Correta!

Anderson_Leite

ta no caminho

essa frase aqui ficou errada
//aqui eu dei um valor a esse método

ali voce fez o seguinte:

se o metodo apagar for chamado, modifique o conteudo da variavel chamada estado para “Apagada”

e como se “chama” um metodo ?

Lampada lampada1 = new Lampada();
lampada1.apagar();

gsalcantara

Bom d+ Anderson!
Estou entendendo muito…

Vamos lá:

class Lampada{ //Cria uma classe Lampada   
private String estado = "Apagada"; //Essa variável (estado) é do tipo String e ela tem o valor "Apagada"     
public void Apagar(){ //Aqui eu criei um método (Apagar) 
    estado = "Apagada"; // Se o metodo apagar for chamado, modifique o conteudo da variavel chamada estado para "Apagada" 
    }   
public void Acender(){  //Aqui eu criei um método (Acender) 
    estado = "Acesa";  // Se o metodo apagar for chamado, modifique o conteudo da variavel chamada estado para "Acesa"
    }   
public void MostrarEstado(){
    System.out.println("A lampada está" + estado);  
    }   
}

Tá certinho até agora?

Anderson_Leite

excelente! =]

ps: vc escreveu , por engano, nos 2 metodos :

//se o metodo apagar for chamado

gsalcantara

Oba!

A linha final! = )

class Lampada{ //Cria uma classe Lampada   
private String estado = "Apagada"; //Essa variável (estado) é do tipo String e ela tem o valor "Apagada"     
public void Apagar(){ //Aqui eu criei um método (Apagar) 
    estado = "Apagada"; // Se o metodo apagar for chamado, modifique o conteudo da variavel chamada estado para "Apagada" 
    }   
public void Acender(){  //Aqui eu criei um método (Acender) 
    estado = "Acesa";  // Se o metodo Acender for chamado, modifique o conteudo da variavel chamada estado para "Acesa"
    }   
public void MostrarEstado(){ //Aqui eu criei outro método (MostrarEstado)
    System.out.println("A lampada está" + estado);  //Se o método MostrarEstado for chamado ele vai imprimir "A lampada está + estado que eu chamar"
    }   
}

Certinho?

Anderson_Leite

nota 10, passou de ano :slight_smile:

gsalcantara

kkkkkkk…
Nossa cara!
Valeu d+ a você e ao skalinichenko.

Estava me sentindo muuuito burro cara.
Achando que nunca ia aprender Java e passar na matéria de OO.

Valeu d+ cara, de coração!

Vou rachar de estudar aqui agora!

Boa noite!

Valew!

Criado 22 de abril de 2009
Ultima resposta 22 de abr. de 2009
Respostas 21
Participantes 4