OOPs Concepts in Java

conceitos oops em java

O que é OOPS?

Sistema de Programação Orientada a Objetos (OOPs) é um conceito de programação que funciona com base nos princípios de abstração, encapsulamento, herança e polimorfismo. Ele permite que os usuários criem os objetos que desejam e criem métodos para lidar com esses objetos. O conceito básico de OOPs é criar objetos, reutilizá-los em todo o programa e manipular esses objetos para obter resultados.

OOP, que significa “Programação Orientada a Objetos”, é um conceito popularmente conhecido e amplamente utilizado em linguagens de programação modernas como Java.

OOPs Concepts in Java com exemplos

A seguir estão os conceitos gerais de POO em Java:

1) Classe

A classe é um dos conceitos básicos de POO que é um grupo de entidades semelhantes. É apenas um componente lógico e não a entidade física. Vamos entender este dos POO Concepts por exemplo, se você tivesse uma classe chamada “Carros caros”, ela poderia ter objetos como Mercedes, BMW, Toyota, etc. Suas propriedades (dados) podem ser o preço ou a velocidade desses carros. Embora os métodos possam ser executados com esses carros são dirigir, dar ré, frear, etc.

2) Objeto

Um objeto pode ser definido como uma instância de uma classe e pode haver múltiplas instâncias de uma classe em um programa. Um objeto é um dos Java Conceitos OOPs que contêm tanto os dados quanto a função, que opera nos dados. Por exemplo – cadeira, bicicleta, marcador, caneta, mesa, carro, etc.

3) Herança

Herança é um dos básicos Concepts de OOPs em que um objeto adquire as propriedades e comportamentos do objeto pai. Está criando um relacionamento pai-filho entre duas classes. Oferece mecanismo robusto e natural para organização e estrutura de qualquer software.

4) Polimorfismo

Polimorfismo refere-se a um dos conceitos de POO em Java que é a capacidade de uma variável, objeto ou função assumir múltiplas formas. Por exemplo, em inglês, o verbo corrida tem um significado diferente se você usá-lo com um laptop, uma corrida a pé e negócio. Aqui entendemos o significado de corrida com base nas outras palavras usadas junto com ele. O mesmo também se aplica ao Polimorfismo.

5) Abstração

Abstração é um dos OOP Concepts in Java que é um ato de representar características essenciais sem incluir detalhes de fundo. É uma técnica de criação de um novo tipo de dado que é adequado para uma aplicação específica. Vamos entender este um dos POO Concepts por exemplo, ao dirigir um carro, você não precisa se preocupar com seu funcionamento interno. Aqui você só precisa se preocupar com peças como volante, marchas, acelerador, etc.

6) Encapsulamento

Encapsulamento é um dos melhores Java Conceitos de POO de encapsulamento de dados e código. Neste conceito de POO, as variáveis ​​de uma classe são sempre ocultas de outras classes. Elas só podem ser acessadas usando os métodos de sua classe atual. Por exemplo – na escola, um aluno não pode existir sem uma classe.

7) Associação

Associação é um relacionamento entre dois objetos. É um dos OOP Concepts in Java que define a diversidade entre os objetos. Neste conceito OOP, todos os objetos têm seu ciclo de vida separado e não há proprietário. Por exemplo, muitos alunos podem associar-se a um professor, enquanto um aluno também pode associar-se a vários professores.

8) Agregação

Nesta técnica, todos os objetos têm seu ciclo de vida separado. No entanto, existe uma propriedade tal que o objeto filho não pode pertencer a outro objeto pai. Por exemplo, considere o departamento de classe/objetos e o professor. Aqui, um único professor não pode pertencer a vários departamentos, mas mesmo se excluirmos o departamento, o objeto professor nunca será destruído.

9) Composição

A composição é uma forma especializada de agregação. Também é chamado de relacionamento de “morte”. Os objetos filhos não têm seu ciclo de vida, portanto, quando o objeto pai for excluído, todos os objetos filhos também serão excluídos automaticamente. Para isso, vamos dar um exemplo de Casa e quartos. Qualquer casa pode ter vários cômodos. Um quarto não pode fazer parte de duas casas diferentes. Portanto, se você excluir o cômodo da casa também será excluído.

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

  • OOPs Concepts in Java oferecem fácil compreensão e uma estrutura modular clara para programas.
  • Objetos criados para Programas Orientados a Objetos podem ser reutilizados em outros programas. Assim, economiza custos de desenvolvimento significativos.
  • Programas grandes são difíceis de escrever, mas se a equipe de desenvolvimento e design seguir os conceitos OOPS, eles poderão projetar melhor com o mínimo de falhas.
  • Aumenta a modularidade do programa porque cada objeto existe de forma independente.

Comparação de OOPS com outros estilos de programação com ajuda de um exemplo

Vamos entender com exemplo como Java OOPs Concepts são diferentes de outras abordagens de programação.

Linguagens de programação podem ser classificados em 3 tipos principais

  1. Linguagens de programação não estruturadas: A mais primitiva de todas as linguagens de programação com fluxo de controle sequencial. O código é repetido ao longo do programa
  2. Linguagens de programação estruturada: Possui fluxo de controle não sequencial. O uso de funções permite a reutilização de código.
  3. Linguagens de programação orientadas a objetos: Combina dados e ações.

Clique aqui se o vídeo não estiver acessível

Vamos entender esses 3 tipos com um exemplo.

Suponha que você queira criar um Software Bancário com funções como

  1. Depositar
  2. Retirar
  3. Mostrar saldo

Linguagens de programação não estruturadas

As primeiras linguagens de programação foram linguagens de programação não estruturadas. Um código muito elementar de aplicação bancária em linguagem de programação não estruturada terá duas variáveis ​​de um número de conta e outra para saldo de conta

int account_number=20;
int account_balance=100;

Suponha que seja feito um depósito de 100 dólares.

account_balance=account_balance+100

Em seguida, você precisa exibir o saldo da conta.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

Agora foi sacada a quantia de 50 dólares.

account_balance=account_balance-50

Novamente, você precisa exibir o saldo da conta.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

Programação Não Estruturada

Para qualquer outra operação de depósito ou retirada – você repetirá as mesmas linhas repetidamente.

Programação Estruturada

Com a chegada da programação estruturada, linhas repetidas do código foram colocadas em estruturas como funções ou métodos. Sempre que necessário, é feita uma simples chamada à função.

Programação Estruturada

Programação Orientada a Objetos

Em nosso programa, estamos lidando com dados ou realizando operações específicas nos dados. Na verdade, ter dados e realizar determinada operação nesses dados é uma característica muito básica em qualquer programa de software. Especialistas em Programação de Software pensaram em combinar os Dados e Operações. Portanto, o nascimento da Programação Orientada a Objetos, que é comumente chamada de OOPS. O mesmo código em linguagens de Programação Orientada a Objetos terá os mesmos dados e alguma ação realizada nesses dados.

Class Account{
    int account_number;
    int account_balance;
public void showdata(){
    system.out.println(“Account Number”+account_number)
    System.out.println(“Account Balance”+ account_balance)
}
}

Programação Orientada a Objetos

Ao combinar dados e ações, obteremos muitas vantagens sobre a programação estrutural, a saber,

  • Abstração
  • Encapsulamento
  • Herança
  • Polimorfismo

Eles são discutidos em maiores detalhes nos tutoriais seguintes