Conceitos de OOPs em Java: o que é, noções básicas com exemplos

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.

Conceitos OOPs em Java com exemplos

O seguintewing são conceitos gerais de OOPs em Java:

1) Classe

A classe é um dos conceitos básicos de OOPs que é um grupo de entidades semelhantes. É apenas um componente lógico e não a entidade física. Vamos entender este um dos conceitos de OOPs com 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 conceitos Java OOPs que contém os dados e a função, que opera nos dados. Por exemplo – cadeira, bicicleta, marcador, caneta, mesa, carro, etc.

3) Herança

Herança é um dos conceitos básicos 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 OOPs 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 conceitos OOP em Java, que é um ato de representar recursos essenciais sem incluir detalhes de fundotails. É uma técnica de criação de um novo tipo de dados adequado para uma aplicação específica. Vamos entender este um dos Conceitos de OOPs com 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 conceitos de Java OOPs para agrupar dados e código. Neste conceito de OOPs, as variáveis ​​de uma classe estão sempre escondidas de outras classes. Ele só pode ser acessado usando os métodos da classe atual. Por exemplo – na escola, um aluno não pode existir sem aula.

7) Associação

Associação é um relacionamento entre dois objetos. É um dos conceitos OOP em Java que define a diversidade entre 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):

  • Os conceitos de OOPs em Java oferecem uma estrutura modular clara e fácil de entender 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 exemplos como os conceitos de Java OOPs 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 plítica de privacidade 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 sobre os dados.

Na verdade, ter dados e realizar determinadas operações nesses dados é uma característica muito básica de qualquer programa de software.

Especialistas em Programação de Software pensaram em combinar Dados e Operações. Portanto, o nascimento da Programação Orientada a Objetos, comumente chamada de OOPS.

O mesmo código em linguagens de programação orientada a objetos terá os mesmos dados e algumas ações executadas 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 viz,

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

Eles são discutidos em maior detalhetails em tutoriais sucessivos