Esta correta essa minha análise?
Essa classe não tem dois objetos, ela tem dois métodos, um público(interface) que disponibiliza um serviço à outra classe chamado a partir da instância de Log e outro privado para uso interno da mesma.
Encapsulamento é você omitir(private) a visibilidade dos atributos da classe! e outras classes só poderão manipular esses atributos atráves de métodos get´s e setters´s
public class Conta {
private int numero;
private double saldo;
private double limite;
private Cliente titular;
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public double getSaldo() {
return saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public double getLimite() {
return limite;
}
public void setLimite(double limite) {
this.limite = limite;
}
public Cliente getTitular() {
return titular;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
}
Nomes de classes em Java é com iniciais Maiúscula! log é Log!
Só fiquei com uma duvida,
O método: [code]public void debug(…){ // tem uma interface, que é o que vai ser chamado nas outras classes, certo?
print(…); // E a implementação desse método é feita com a interface do método print, que é o método que esta encapsulando algo, certo?
}
private void print(…){ // Interface de encapsulamento
System.out.println(…); // O que esta sendo encapsulado
}
[/code]
certo?
Leia as apostilas da Caelum, principalmente este ponto: http://www.caelum.com.br/apostila-java-orientacao-objetos/orientacao-a-objetos-basica/
Sua interpretação esta errada.
Você esta confundindo os parâmetros dos métodos com interface.
public void print(.....){ //esta linha define o nome do seu método, parâmetros (informações que vão ser tratadas pelo seu método) e retorno (neste caso não retorna nada pois é void)
System.out.println(......); // implementação
}
Interface é outra história… para pesquisar sobre o assunto te recomendo http://www.caelum.com.br/apostila-java-orientacao-objetos/interfaces/
Abs!
[quote=rodazzz]
Esta correta essa minha análise?[/quote]
Vamos lá …
Vc está correto mas usando as palavras erradas.
public void debug(String mensagem)
Isto acima é a Assinatura do Método. Isto representa um Contrato da classe Log.
Então a classe contém as duas implementações dos métodos do seu contrato.
às vezes “contrato” é chamado de interface, mas tem que ter cuidado com o contexto. Aqui, as pessoas entenderam que vc estava falando do conceito de interface (no sentido de tipo em java).
O contrato pode ser privado ou publico.
ou seja, troque “objeto” por “metodo” e “interface” por “contrato” e a sua frase passa a fazer sentido para o resto dos mortais …
Mas o fato de vc usar as palavras erradas tem um significado em si mesmo. Como vc está estudando essas coisas que não esbarrou nas palavras certas ? pense nisso.
[quote=sergiotaborda][quote=rodazzz]
Esta correta essa minha análise?[/quote]
Vamos lá …
Vc está correto mas usando as palavras erradas.
public void debug(String mensagem)
Isto acima é a Assinatura do Método. Isto representa um Contrato da classe Log.
Então a classe contém as duas implementações dos métodos do seu contrato.
às vezes “contrato” é chamado de interface, mas tem que ter cuidado com o contexto. Aqui, as pessoas entenderam que vc estava falando do conceito de interface (no sentido de tipo em java).
O contrato pode ser privado ou publico.
ou seja, troque “objeto” por “metodo” e “interface” por “contrato” e a sua frase passa a fazer sentido para o resto dos mortais …
Mas o fato de vc usar as palavras erradas tem um significado em si mesmo. Como vc está estudando essas coisas que não esbarrou nas palavras certas ? pense nisso.[/quote]
Muito obrigado, foi muito boa a sua explicação.
Eu estou estudando o livro - Aprenda programação orientada a objetos em 21 dias.
E ele cita o termo contrato e interface, mas depois ele usa somente o termo interface para explicar.
E em relações a objetos, eu tenho algumas duvidas, tem lugares que dizem que tudo é objeto, e tem lugares que falam que somente a instancia é um objeto.
Método é a mesma coisa que função e mensagem, certo?
E só mais um favor, poderia me dar um exemplo do que é um componente?
Somente a instancia de uma classe é um objeto.
Por exemplo, aquela assinatura do método não é um objeto porque não é a instancia de nenhuma classe.
Contudo, quando vc usa reflection a JvM cria um objeto da classe Method que permie que vc manipule aquele método ali, inclusive que o invoke. Mas a JVM fez o truque de trasnformar o código em um objeto.
Sim. Na teoria os objetos só trocam mensagens. “Método” é uma forma de implementar esta teoria. Em outras linguagens outros mecanismos são usados.
A palavra “componente” por si só, é ambigua. Em UI falamos de componentes no sentido que um textfield é um component e um botão é um componente.
Em arquitetura falamos que um web container é um component e um ejb container é um componente.
Componente é um conceito abstrato que indica um elemento que é auto suficiente em certa medida e que pode ser reaproveitado. No máximo ele precisa se associar a outros componentes para funcionar.
Um component é geralmente realizado por mais do que uma classe, mas uma classe sozinha também pode ser um componente pois o conceito em si não define a escala em que estamos falando. Por isso que se diz “Componente Gráfico” ou “Componente de arquitetura” para especificar em que contexto estamos usando a palavra e que tipo de granularidade estamos usado.