logo

Conceitos de Java OOP

  1. Programação Orientada a Objetos
  2. Vantagem de OOPs sobre linguagem de programação orientada a procedimentos
  3. Diferença entre linguagem de programação orientada a objetos e baseada em objetos.

Nesta página, aprenderemos sobre os conceitos básicos de OOPs. A Programação Orientada a Objetos é um paradigma que fornece muitos conceitos, como herança , ligação de dados , polimorfismo , etc.

começo é considerada a primeira linguagem de programação orientada a objetos. O paradigma de programação onde tudo é representado como um objeto é conhecido como uma linguagem de programação verdadeiramente orientada a objetos.

Conversa fiada é considerada a primeira linguagem de programação verdadeiramente orientada a objetos.

As linguagens orientadas a objetos populares são Java , C# , PHP , Pitão , C++ , etc.

O principal objetivo da programação orientada a objetos é implementar entidades do mundo real, por exemplo, objeto, classes, abstração, herança, polimorfismo, etc.

string comparar com java

OOPs (Sistema de Programação Orientada a Objetos)

Objeto significa uma entidade do mundo real, como uma caneta, cadeira, mesa, computador, relógio, etc. Programação Orientada a Objetos é uma metodologia ou paradigma para projetar um programa usando classes e objetos. Ele simplifica o desenvolvimento e a manutenção de software, fornecendo alguns conceitos:

Além desses conceitos, existem alguns outros termos que são usados ​​no design Orientado a Objetos:

  • Acoplamento
  • Coesão
  • Associação
  • Agregação
  • Composição
Conceitos de Java OOP

Objeto

Objeto Java

Qualquer entidade que possua estado e comportamento é conhecida como objeto. Por exemplo, uma cadeira, uma caneta, uma mesa, um teclado, uma bicicleta, etc. Pode ser físico ou lógico.

Um Objeto pode ser definido como uma instância de uma classe. Um objeto contém um endereço e ocupa algum espaço na memória. Os objetos podem se comunicar sem conhecer os detalhes dos dados ou códigos uns dos outros. A única coisa necessária é o tipo de mensagem aceita e o tipo de resposta retornada pelos objetos.

Exemplo: Um cachorro é um objeto porque possui estados como cor, nome, raça, etc., bem como comportamentos como abanar o rabo, latir, comer, etc.

Aula

Coleção de objetos é chamado de classe. É uma entidade lógica.

Uma classe também pode ser definida como um modelo a partir do qual você pode criar um objeto individual. A aula não consome espaço.

Herança

Quando um objeto adquire todas as propriedades e comportamentos de um objeto pai , é conhecido como herança. Ele fornece reutilização de código. É usado para obter polimorfismo de tempo de execução.

Polimorfismo em Java

Polimorfismo

Se uma tarefa é executada de maneiras diferentes , é conhecido como polimorfismo. Por exemplo: convencer o cliente de forma diferente, desenhar algo, por exemplo, forma, triângulo, retângulo, etc.

Em Java, usamos sobrecarga e substituição de métodos para obter polimorfismo.

Outro exemplo pode ser falar alguma coisa; por exemplo, um gato fala miau, um cachorro late au, etc.

Abstração

Ocultando detalhes internos e mostrando funcionalidade é conhecido como abstração. Por exemplo, chamada telefônica, não sabemos o processamento interno.

Em Java, usamos classe e interface abstratas para obter abstração.

Encapsulamento em conceitos de OOPs Java

Encapsulamento

Vincular (ou agrupar) código e dados em uma única unidade é conhecido como encapsulamento . Por exemplo, uma cápsula, é embalada com diversos medicamentos.

Uma classe java é o exemplo de encapsulamento. Java bean é a classe totalmente encapsulada porque todos os membros de dados são privados aqui.

Acoplamento

Acoplamento refere-se ao conhecimento, informação ou dependência de outra classe. Surge quando as classes estão cientes umas das outras. Se uma classe possui informações detalhadas de outra classe, há um forte acoplamento. Em Java, usamos modificadores privados, protegidos e públicos para exibir o nível de visibilidade de uma classe, método e campo. Você pode usar interfaces para o acoplamento mais fraco porque não há implementação concreta.

Coesão

Coesão refere-se ao nível de um componente que executa uma única tarefa bem definida. Uma única tarefa bem definida é realizada por um método altamente coeso. O método fracamente coeso dividirá a tarefa em partes separadas. O pacote java.io é um pacote altamente coeso porque possui classes e interface relacionadas a E/S. No entanto, o pacote java.util é um pacote fracamente coeso porque possui classes e interfaces não relacionadas.

Associação

Associação representa o relacionamento entre os objetos. Aqui, um objeto pode ser associado a um objeto ou a vários objetos. Pode haver quatro tipos de associação entre os objetos:

  • Um a um
  • Um para muitos
  • Muitos para Um, e
  • Muitos para muitos

Vamos entender a relação com exemplos em tempo real. Por exemplo, um país pode ter um primeiro-ministro (um para um) e um primeiro-ministro pode ter muitos ministros (um para muitos). Além disso, muitos deputados podem ter um primeiro-ministro (muitos para um), e muitos ministros podem ter muitos departamentos (muitos para muitos).

A associação pode ser unidirecional ou bidirecional.

Agregação

A agregação é uma forma de alcançar a associação. Agregação representa o relacionamento onde um objeto contém outros objetos como parte de seu estado. Representa o relacionamento fraco entre objetos. Também é denominado como tem um relacionamento em Java. Da mesma forma, a herança representa o é um relação. É outra forma de reutilizar objetos.

Composição

A composição é também uma forma de conseguir Associação. A composição representa o relacionamento onde um objeto contém outros objetos como parte de seu estado. Existe um forte relacionamento entre o objeto que contém e o objeto dependente. É o estado em que os objetos que contêm não têm existência independente. Se você excluir o objeto pai, todos os objetos filhos serão excluídos automaticamente.


Vantagem de OOPs sobre linguagem de programação orientada a procedimentos

1) OOPs facilitam o desenvolvimento e a manutenção, ao passo que, em uma linguagem de programação orientada a procedimentos, não é fácil gerenciá-los se o código crescer à medida que o tamanho do projeto aumenta.

2) OOPs fornecem ocultação de dados, enquanto, em uma linguagem de programação orientada a procedimentos, os dados globais podem ser acessados ​​de qualquer lugar.

ângulos adjacentes
Dados globais

Figura: Representação de Dados em Programação Orientada a Procedimentos


Dados do objeto

Figura: Representação de Dados em Programação Orientada a Objetos

3) OOPs oferece a capacidade de simular eventos do mundo real com muito mais eficácia. Podemos fornecer a solução de problemas reais se estivermos usando a linguagem de programação orientada a objetos.


Qual é a diferença entre uma linguagem de programação orientada a objetos e uma linguagem de programação baseada em objetos?

A linguagem de programação baseada em objetos segue todos os recursos dos OOPs, exceto herança. JavaScript e VBScript são exemplos de linguagens de programação baseadas em objetos.



Você sabe?
  • Podemos sobrecarregar o método principal?
  • Um construtor Java retorna um valor, mas o quê?
  • Podemos criar um programa sem método principal?
  • Quais são as seis maneiras de usar essa palavra-chave?
  • Por que a herança múltipla não é suportada em Java?
  • Por que usar agregação?
  • Podemos substituir o método estático?
  • Qual é o tipo de retorno covariante?
  • Quais são os três usos da super palavra-chave Java?
  • Por que usar o bloco inicializador de instância?
  • Qual é o uso de uma variável final em branco?
  • O que é um marcador ou interface marcada?
  • O que é polimorfismo de tempo de execução ou envio de método dinâmico?
  • Qual é a diferença entre vinculação estática e dinâmica?
  • Como o downcasting é possível em Java?
  • Qual é o propósito de um construtor privado?
  • O que é clonagem de objetos?
O que aprenderemos em Conceitos de OOPs?
  • Vantagem de OOPs
  • Convenção de nomes
  • Objeto e classe
  • Sobrecarga de método
  • Construtor
  • palavra-chave estática
  • esta palavra-chave com seis usos
  • Herança
  • Agregação
  • Substituição de método
  • Tipo de retorno covariante
  • super palavra-chave
  • Bloco inicializador de instância
  • palavra-chave final
  • Classe abstrata
  • Interface
  • Polimorfismo de tempo de execução
  • Vinculação estática e dinâmica
  • Downcasting com operador instanceof
  • Pacote
  • Modificadores de acesso
  • Encapsulamento
  • Clonagem de objetos