Orientação a Objeto

[color=“darkblue”] :smiley: Oi pessoal, iniciei meus estudos em programação já com java a mais ou menos um mês, até agora blz, minha duvida refere-se a orientação a objeto (um dos grandes destaques do java) mais expecificamente “estanciâmento” gostaria de uma explicação melhor e um exemplo um pouco mais sofisticado, porque os mais simples que eu coletei na net dava p fazer a mesma aplicação sem estânciar, por isso não estou achando tão util assim.

Valeu[/color]

Imagina um veiculo.
Veiculo…pode ser muita coisa!
Motas,carros,carrinhas, …

Entao temos que : veiculo é a classe(abstract ou não) e Mota Carro Carrinha são extensões dessa classe !!!

Agora.

Imagina que tens a classe Carro que permite criar carros. (esta classe é um molde - como uma forma para bolos )

Instancia essa classe! Ou seja cria dois carros!!!

Carro c1 = new Carro()
Carro c2 = new Carro()

Tens 2 carros com estrutura igual mas dois objectos distintos.
(estes carros são os objectos moldados pela tal forma de bolos)

Uma explicacao simples… :slight_smile:
Espero ter ajudado.

A Orientação a Objetos não trata apenas de “da para fazer” ou “não da para fazer”.

Existe toda uma arquitetura por trás de um software bem desenvolvido que tem por objetivo facilitar o desenvolvimento, manutenção e aumentar a confiabilidade e robustez do seu sistema.

O fato de dar ou não para fazer algo sem instanciação não quer dizer que isso não tenha utilidade.

Pense em uma estação espacial, imagina o tamanho do(s) software(s) que a gerenciam, se não existir uma organização e arquitetura adequadas, babau!!! Onibus espacial pousando em plena avenida paulista!!!

pense nisso

Entenda Classe como uma ideia algo não tangivel, já um objeto é algo tangivel, uma coisa do mundo real.

por exemplo: como se contruir uma casa é uma classe. Já uma casa pronta é um objeto.

Intanciar algo nada mais é do que transformar a ideia de como se contruir uma casa em uma casa. ou seja transformar o abstrato em concreto.

Algumas técnicas orientadas ao objeto:

  • usar objetos instanciados a partir de uma classe;

  • derivar classes a partir de uma classe básica;

  • usar uma classe básica imcompleta (abstrata);

  • criar uma coleção de classes que implementam uma ou mais interfaces;

  • criar uma interface derivada;

  • clonar objetos (rasos ou não);

  • particionar o espaço de nomes em pacotes;

  • encapsular membros de classe usando o modificadores private;

  • acessar campos de classe com métodos setXXX() e getXXX(). Esta é a regra nr. 1 para atender à especificação JavaBeans;

  • controlar a visibilidade de membros para as classes derivadas usando o modificador protected;

  • criar métodos sobrecarregados;

  • controlar o espaço de nomes para além do package com o modificador public na declaração das classes;

  • sobrescrever métodos.

Algumas técnicas não orientadas ao objetos (mas às vezes inevitáveis):

  • uma grande sequência de cases num comando switch;

  • o uso de campos public.

Alguém lembra de mais exemplos? :slight_smile:

Acredito que o mehor a vc seria mesmo um bom Livro como Java Como Programar 3º ou 4º ed. ou ainda Certificação Sun para Programador e Desenvolvedor Java2, este ultimo para parte de OO é mesmo show de bola mas 1º serve mesmo por causa da infinidade de exemplos de todas as areas.