Pequenas dúvidas!

7 respostas
L

Bom dia galera,

Tenho algumas pequenas dúvidas:

1 - Diferença entre variável comum e static, em que caso uso elas?
2 - Diferença entre poliformismo e herança?
3 - Quando uso encapsulamento: public, principalmente protected e private?

Obrigado se me ajudarem, Leandro Paz 8O

7 Respostas

J
public class Teste{
  public int atributo1;
  public static int atributo2;
}

Atributos static são atributos da classe, não é necessario que haja um objeto para acessa-lo.

no codigo acima é possivel usar:

Teste.atributo2;

Atributos não static são atributos do objeto, ou seja é criado um para cada instancia da classe, é necessario criar um objeto antes de usar o atributo:

Teste tes = new Teste();
tes.atributo1;

a mesma regra para metodos!

Polimorfismo e herança:

http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=85

public:
indica que a classe, metodo ou atributo pode ser acessado de qualquer lugar, sem restrição…

private:
é privado da classe e não pode ser acessado fora dela.

protected:
é uma mesclagem dos dois acima, não é privado mas tambem não pode ser acessado por qualquer um, somente de uma classe filha…

public class Classe1{
  public int atributo1;
  private int atributo2;
  protected int atributo3;
}

public class Classe2 extends Classe1{
  Classe1 c = new Classe1();
  public Classe2(){
    //permitido porque atributo1 é publico
    c.atributo1 = 1234;
    //não permitido porque atributo2 é privado da Classe1
    c.atributo2 = 5231;
    //permitido porque Classe2 herda de Classe1
    c.atributo3 = 125;
  }
}

os mais usados são public e private, protected é usado em situações mais especificas, como diria o pessoal da Sun: ao usar protected ou você sabe exatamente o que está fazendo ou não faz a menor ideia.

J

Essa história do cachorro eu achei muito mal traduzida.

Sei lá, acho que tradução ruim às vezes acaba atrapalhando mais do que ajudando.

Já na primeira página o cara traduz “Campfire Stories” como “Estórias do Cachimbo”. Será que ele achou que aquela figura de espeto com marshmallow era um cachimbo? Vai saber.

Aí na segunda página vai falar sobre o significado da gravura anterior e diz que “Dog adiciona um novo método chamado back()”. Ei, é bark() (latir). O cara fala que opta por não traduzir os nomes de classes, mas acho que devia ter traduzido os nomes de classes e métodos (ou pelo menos colocar a tradução entre parenteses para facilitar o entendimento visto que normalmente a tradução destina-se a quem não sabe inglês). Juro que entendi melhor lendo o texto em inglês do que em português. E olha que não sou nenhum craque em inglês :oops:

Mas o texto em si é muito interessante, principalmente a parte sobre usar um array depois para chamar todas as subclasses referenciadas pela superclasse.

J

Entenda o lance (“regra”) do “é-um” que tem na história do cachorro e mais algumas outras coisas através desse texto:

http://www.inf.pucminas.br/professores/torsten/aulas/aula02.html

M

Salve,

Bem não conheço o poliformismo este é novo para mim :twisted:

O método estático faz com que o método ou variável pertença a uma classe e não ao objeto/instância.

Herança é você extender uma classe pai tipo a classe cadeira extende tamburete, ou seja, será implementado apenas o encosto usando para as demais partes a classe pai, e polimofismo é você escrever um método com a mesma assinatura recebendo dados diferentes, por exemplo:

public double divide(int x, int y); public double divide( int x, float y);

Private acesso dentro da mesma classe, protected para o mesmo pacote e public para todo mundo.

:okok:

J

Respondendo à campanha de Marcos Souza na assinatura…

http://www.mgjug.com.br

C

fala ae gente blza???

leandropaz2005

da uma olhada nesse link
é um material bem simples e de facil compreencao
fala sobre modificadores de acesso em java (private e compania limitada) :wink:

http://www.jspbrasil.com.br/conteudo/certificacao/pmodificadores.pdf

J

Mas isso não é sobrecarga (overload)?

“Oswaldo Bueno”:
- Polimorfismo: Um conceito muito importante em programação orientada ao objeto é polimorfismo. Na linguagem Java, de forma resumida, polimorfismo é a capacidade de dois objetos de classes distintas aceitarem a mesma mensagem (implementarem o mesmo método), a implementação pode ser por herança ou por interface.

Antes de 1985, a capacidade de métodos de mesmo nome receberem parâmetros de tipos diferentes (sobrecarga/overload) também era considerada uma forma de polimorfismo. Mas desde o texto de Cardelli e Wegner, ficou claro que esta segunda definição não era uma característica de objeto orientação, podendo inclusive ser usada em linguagens procedurais.

O trecho acima faz parte do seguinte texto:
http://www.milenio.com.br/griphus/javadrops/livros_magnet.htm

Só para constar, ainda não consegui fixar bem essas diferenças. :oops:

Criado 3 de julho de 2005
Ultima resposta 5 de jul. de 2005
Respostas 7
Participantes 5