Object-oriented programming System (OOPs) é um paradigma de programação baseado no conceito de “objetos” que contêm dados e métodos. O principal objetivo da programação orientada a objetos é aumentar a flexibilidade e a manutenção dos programas. A programação orientada a objetos reúne dados e seu comportamento(métodos) em um único local(objeto) torna mais fácil entender como um programa funciona. Vamos cobrir cada e cada característica do OOPs em detalhes para que você não vai enfrentar qualquer difícil compreensão de conceitos Opa.,
OOPs Conceitos – Tabela de Conteúdo
- o Que é um Objeto
- o Que é uma classe
- Construtor em Java
- Programação Orientada a Objeto Possui
- Abstração
- Encapsulamento
- Herança
- Polimorfismo
- Classe Abstrata e Métodos
- Interfaces em Java
o Que é um Objeto
Objeto: é um conjunto de dados e o seu comportamento(muitas vezes conhecidos como métodos).os objetos
têm duas características: eles têm estados e comportamentos.,
Exemplos de estados e comportamentos
Exemplo 1:
Objeto: Casa
Estado: Endereço, Cor, Área
Comportamento: Abra a porta, feche a porta
Então, se eu tivesse que escrever uma classe baseada em estados e comportamentos de Casa. Eu posso fazer isso assim: estados podem ser representados como variáveis de instância e comportamentos como métodos da classe. Veremos como criar classes na próxima seção deste guia.
Nota: Como vimos acima, os estados e comportamentos de um objeto, podem ser representados por variáveis e métodos na classe, respectivamente.,
características dos objectos:
Se achar difícil compreender a abstracção e encapsulação, não se preocupe, pois já abordei estes tópicos em pormenor com exemplos na próxima secção deste guia.
- abstracção
- encapsulação
- passagem de mensagem
abstracção: a abstracção é um processo em que só mostra dados “relevantes” e “esconde” detalhes desnecessários de um objecto do utilizador.encapsulação: encapsulação significa simplesmente o estado do objeto(campos) e o comportamento(métodos) juntos. Se você está criando classe, você está fazendo encapsulação.,um único objeto por si só pode não ser muito útil. Uma aplicação contém muitos objectos. Um objeto interage com outro objeto invocando métodos nesse objeto. Também é referido como Invocação do método. Veja o diagrama abaixo.
o que é uma classe em conceitos Opa
uma classe pode ser considerada como um modelo usando o qual você pode criar quantos objetos você quiser. Por exemplo, aqui temos uma classe Website
que tem dois membros de dados (também conhecidos como campos, variáveis de instância e estados de objetos)., Este é apenas um projeto, ele não representa nenhum site, no entanto usando isso podemos criar objetos do Site (ou instâncias) que representam os sites. Nós criamos dois objetos, ao criar objetos nós fornecemos propriedades separadas para os objetos usando o construtor.
Saída:
beginnersbook 5google 18
o Que é um Construtor
Construtor parece um método, mas é, na verdade, não um método. O seu nome é o mesmo que o nome da classe e não devolve nenhum valor., Você já deve ter visto esta declaração em quase todos os programas que eu tenha compartilhado acima:
MyClass obj = new MyClass();
Se você olhar para o lado direito desta instrução, estamos chamando o construtor padrão da classe myClass
para criar um novo objeto (ou instância).
também podemos ter parâmetros no construtor, tais Construtores são conhecidos como construtores parametrizados.,
Exemplo de construtor
Resultado:
Chaitanya 30Steve 56
Programação Orientada a Objeto características
Estas quatro características são a principal OOPs Conceitos que você deve aprender a compreender a Programação Orientada a Objeto em Java
de Abstração
a Abstração é um processo onde você só mostram o “relevante de dados” e “ocultar” detalhes desnecessários de um objeto de usuário., Por exemplo, quando você faz login na sua conta bancária online, você digita o seu user_id e senha e pressione login, o que acontece quando você pressiona login, como os dados de entrada enviados para o servidor, como ele é verificado é tudo abstraído de você. Leia mais sobre isso aqui: abstração em Java.
encapsulação
encapsulação simplesmente significa vincular o estado do objeto(campos) e o comportamento (métodos) juntos. Se você está criando classe, você está fazendo encapsulação.,
Encapsulation example in Java
How to
1) Make the instance variables private so that they cannot be accessed directly from outside the class. Você só pode definir e obter valores dessas variáveis através dos métodos da classe.
2) tem métodos getter e setter na classe para definir e obter os valores dos Campos.
Saída:
No Of Employees: 5613
classe EncapsulationExample
que está usando o Objeto da classe EmployeeCount
não será capaz de obter o NoOfEmployees diretamente., Ele tem que usar os métodos setter e getter da mesma classe para definir e obter o valor.
então, qual é o benefício da encapsulação na programação java
bem, em algum momento, se você quiser mudar os detalhes de implementação da classe emprego, você pode fazê-lo livremente sem afetar as classes que estão a usá-lo.
herança
o processo pelo qual uma classe adquire as propriedades e funcionalidades de outra classe é chamado herança., Heritance provides the idea of reusability of code and each sub class defines only those features that are unique to it, rest of the features can be inherited from the parent class.herança é um processo de definição de uma nova classe baseada em uma classe existente, estendendo seus membros de dados comuns e métodos.
As variáveis e métodos da classe base também podem ser usados na classe infantil.
sintaxe: herança em Java
para herdar uma classe que usamos estende palavra-chave. Aqui a classe A é a classe infantil e a Classe B é a classe pai.
class A extends B{}
Inheritance Example
In this example, we have a parent class Teacher
and a child class MathTeacher
., Na classe MathTeacher
não precisamos escrever o mesmo código que já está presente na presente classe. Aqui temos o nome do Colégio, designação e método does() que é comum para todos os professores, assim a classe MathTeacher não precisa escrever este código, os membros de dados comuns e métodos podem herdados da classe Teacher
.,
Saída:
BeginnersbookTeacherMathsTeaching
Nota: Multi-nível herança é permitida em Java, mas não herança múltipla
Tipos de Herança:
a Única Herança: refere-se a uma criança de pais e de relação de classe, onde uma classe estende a classe.
herança de vários níveis: refere-se a uma relação de classe de filhos e pais onde uma classe estende a classe de filhos. Por exemplo, a classe A estende a Classe B e a Classe B estende a classe C.,hereditariedade hierárquica: refere-se a uma relação de classe de filhos e pais em que mais de uma classe estende a mesma classe. Por exemplo, a Classe B estende a classe A e a Classe C estende a classe A.
herança múltipla: refere-se ao conceito de uma classe estendendo mais de uma classe, o que significa que uma classe-filho tem duas classes-mãe. Java não suporta herança múltipla, leia mais sobre isso aqui.
a maioria das novas linguagens OO, como conversa fiada, Java, C#, não suportam herança múltipla. A herança múltipla é suportada em C++.,
polimorfismo
polimorfismo é uma funcionalidade de programação orientada a objetos que nos permite realizar uma única ação de diferentes maneiras. Por exemplo, imagine que temos uma classe Animal
que tem um método animalSound()
, aqui não podemos lhe dar execução a esse método como não sabemos qual é o Animal de classe seria estender Animal
classe., Então, vamos fazer esse método abstrato como este:
public abstract class Animal{ ... public abstract void animalSound();}
Agora, suponha que temos duas classes Animais Dog
e Lion
que se estende Animal
classe. Podemos fornecer os detalhes de implementação lá.
public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}
e
public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}
Como você pode ver que, embora tivéssemos a ação comum para todas as subclasses animalSound()
mas havia formas diferentes para fazer a mesma ação., Este é um exemplo perfeito de polimorfismo (característica que nos permite realizar uma única ação de diferentes maneiras).
Tipos de Polimorfismo
1) Estática Polimorfismo
2) Dinâmica de Polimorfismo
Polimorfismo Estático:
Polimorfismo que é resolvido durante o compilador de tempo é conhecido como polimorfismo estático. A sobrecarga de método pode ser considerada como exemplo de polimorfismo estático.
Método Overloading: isso nos permite ter mais de um método com o mesmo nome em uma classe que difere na Assinatura.,
Saída:
aa 10
Quando eu digo assinatura do método, eu não estou falando sobre o tipo de retorno do método, por exemplo, se dois métodos com o mesmo nome, os mesmos parâmetros e tipo de retorno, então este não é um método válido de sobrecarga exemplo. Isto irá lançar erro de compilação.
polimorfismo dinâmico
é também conhecido como “Dynamic Method Dispatch”. Polimorfismo dinâmico é um processo no qual uma chamada para um método sobreposto é resolvida em tempo de execução, pelo contrário, é por isso que é chamado de polimorfismo em tempo de execução.,
exemplo
Saída:
Woof
Uma vez que ambas as classes, classe-filho e classe-mãe têm o mesmo métodoanimalSound
. Qual do método será chamado é determinado em tempo de execução pela JVM.
mais Alguns substituindo exemplos:
É UMA & TEM UM Relacionamento
Um Carro É UM Veículo e TEM UMA Licença, em seguida, o código ficaria assim:
public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}
a Classe Abstrata e métodos OOPs Conceitos
o método Abstrato:
1) Um método que é declarado, mas não definidos. Apenas o método assinatura sem corpo.,
2) Declarado usando o abstrato palavra-chave
3) Exemplo :
abstract public void playInstrument();
5) Usado para colocar algum tipo de compulsão na classe que herda a classe possui métodos abstratos. A classe que herda deve fornecer a implementação de todos os métodos abstratos da classe-mãe else declarar a subclasse como abstrata.
6) Estas não podem ser abstrato
- Construtores
- métodos Estáticos
- métodos Privados
- Métodos que são declarados “final”
Classe Abstrata
Uma classe abstrata que descreve os métodos, mas não necessariamente implementa todos os métodos.,
abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}
Nota 1: pode haver alguns cenários em que é difícil implementar todos os métodos na classe de base. Em tais cenários pode-se definir a classe base como uma classe abstrata que significa que esta classe base é um tipo especial de classe que não é completa por si só.
uma classe derivada da classe base abstrata deve implementar os métodos que não são implementados(significa que eles são abstratos) na classe abstrata.
Nota 2: a classe abstracta não pode ser instanciada, o que significa que não pode criar o objecto da classe abstracta., Para usar esta classe, você precisa criar outra classe que amplie esta classe abstrata fornece a implementação de métodos abstratos, então você pode usar o objeto dessa classe infantil para chamar métodos não-abstratos da classe pai, bem como métodos implementados(aqueles que eram abstratos no pai, mas implementados na classe criança).Nota 3: Se uma criança não implementar todos os métodos abstratos da classe-mãe(a classe abstrata), então a classe-criança deve ser declarada abstrata.,
Exemplo de classe Abstrata e Métodos
Aqui temos uma classe abstrata Animal que possui um método abstrato animalSound(), já que o som animal é diferente de um animal a outro, não há nenhum ponto em dar a implementação para este método como toda criança de classe devem substituir esse método a dar os seus próprios detalhes de implementação. Foi por isso que o fizemos abstracto.agora cada animal deve ter um som, tornando este método abstrato tornamos obrigatório para a classe infantil dar detalhes de implementação a este método. Assim garantimos que todos os animais têm um som.,
saída:
Woof
Interfaces em Java
uma interface é uma planta de uma classe, que pode ser declarada usando a palavra-chave da interface. Interfaces podem conter apenas constantes e métodos abstratos (métodos com apenas assinaturas sem corpo).Como classes abstratas, as Interfaces não podem ser instanciadas, elas só podem ser implementadas por classes ou estendidas por outras interfaces. Interface é uma forma comum de alcançar a abstração completa em Java.,
Nota:
- Java não suporta Herança Múltipla, no entanto, uma classe pode implementar mais de uma interfaces
- Interface é semelhante a uma classe abstrata, mas contém apenas métodos abstratos.,
- Interfaces são criadas utilizando a interface de palavra-chave em vez da palavra-chave class
- Nós usamos
implements
palavra chave para a implementação de uma interface(semelhante para a extensão de uma classe com a palavra chave extends)
Interface: Sintaxe
class ClassName extends Superclass implements Interface1, Interface2, ....
Exemplo de Interface:
Nota:
- Todos os métodos de uma interface são implicitamente public e abstract. Usando a palavra-chave
abstract
antes de cada método ser opcional. - uma interface pode conter variáveis finais.,
- Uma classe pode estender apenas uma outra classe, mas pode implementar qualquer número de interfaces.
- Quando uma classe implementa uma interface, ela tem que dar a definição de todos os métodos abstratos de interface, caso contrário ela pode ser declarada como classe abstrata
- uma referência à interface pode apontar para objetos de suas classes de implementação.
generalização e especialização:
A fim de implementar o conceito de herança em um OOPs, é preciso primeiro identificar as semelhanças entre as diferentes classes de modo a chegar à classe base.,
Este processo de identificação das semelhanças entre as diferentes classes é chamado de generalização. Generalização é o processo de extrair características compartilhadas de duas ou mais classes, e combiná-las em uma superclasse generalizada. Características compartilhadas podem ser atributos ou métodos.
em contraste com a generalização, especialização significa criar novas subclasses a partir de uma classe existente. Se se verificar que certos atributos ou métodos apenas se aplicam a alguns dos objetos da classe, uma subclasse pode ser criada.,
especificações de acesso
bem, você deve ter visto a palavra-chave pública privada nos exemplos que eu compartilhei acima. Eles são chamados de especificadores de acesso como eles decidem o escopo de um membro de dados, método ou classe.
Existem quatro tipos de especificadores de acesso em java:
público: acessível a todos. Outros objetos também podem acessar esta variável ou função membro.
private: Not accessible by other objects. Os membros particulares só podem ser acessados pelos métodos da mesma classe. Objecto acessível apenas na classe em que são declarados.,
protected: The scope of a protected variable is within the class which declares it and in the class which herits from the class (Scope is class and subclass).
Default: Scope is Package Level. Não precisamos mencionar explicitamente o padrão como quando não mencionamos nenhum especificador de acesso é considerado como padrão.,
o que vamos aprender nos próximos tutoriais sobre conceitos OOPs
embora tenhamos coberto quase todos os conceitos OOPs aqui, mas o que quer que tenhamos aprendido neste guia é breve, estes tópicos são amplos e há tanto espaço para aprender estes tópicos em detalhe com a ajuda de exemplos. É por isso que eu cobri cada tópico em detalhes, juntamente com exemplos e diagramas nos próximos tutoriais.como você pode ler os próximos tutoriais de uma maneira sequencial? Existem algumas maneiras de fazer isso-1) links tutoriais são fornecidos na barra lateral esquerda, ir embora eles na sequência dada.,
2) Go to the main java tutorial page that has all the links to the tutorials in the sequential manner.se você encontrar alguma dificuldade em entender estes conceitos OOPs, em seguida, deixe um comentário abaixo e eu vou voltar para você o mais rápido possível.