As palavras-chave 'this' e 'super' são usadas na programação Java. Essas palavras-chave não podem ser usadas como variáveis ou qualquer outro nome identificador. Java suporta Programação Orientada a Objetos (OOP). O programa ou software pode ser modelado usando objetos. Objetos são insaciados usando classes. Um pilar da OOP é a herança. Ele fornece reutilização de código. As classes que já existem são superclasses e as classes derivadas são subclasses. A super palavra-chave pode ser usada para referenciar um objeto da superclasse. Existem vários objetos no sistema. A palavra-chave 'this' é usada para referenciar um objeto atual. o diferença chave entre isso e super é 'this 'é uma variável de referência usada para referenciar o objeto atual enquanto 'super' é uma variável de referência usada para referir o objeto imediato da superclasse.
1. Visão geral e principais diferenças
2. O que é isso em Java
3. O que é super em Java
4. Semelhanças entre isso e super em Java
5. Comparação lado a lado - este vs super em Java em forma de tabela
6. Resumo
A palavra-chave 'this' é usada para referenciar um objeto atual. Consulte o programa Java fornecido.
Figura 01: Programa Java usando esta palavra-chave
Em Java, existem três tipos de variáveis. São variáveis de instância, variáveis locais e variáveis de classe. De acordo com o programa acima, a classe Employee possui duas variáveis de instância. Eles são id e nome. Variáveis locais são as variáveis que pertencem aos métodos. Variáveis de classe são compartilhadas por todos os objetos. O ID e o nome são passados para o construtor Employee. Se o programador escreve id = id; não inicializará as variáveis da instância porque o Construtor já possui id e nome. Não há valores para variáveis de instância. Portanto, imprimi-los exibirá nulo. Ao usar isso, refere-se ao objeto atual. Portanto, fornecer id e nome ao construtor pode definir as variáveis da instância.
A palavra-chave 'this' pode ser usada para chamar o método de classe atual. Consulte o programa java fornecido.
classe pública ThisDemo
public static void main (String [] args)
Myclass myClass = new Myclass ();
myClass.B ();
classe Myclass
vazio público A ()
System.out.println ("A");
vazio público B ()
System.out.prinltn ("B");
this.A ();
A classe Myclass contém dois métodos. Eles são os métodos A e B. Ao criar um objeto de Myclass e invocar o método B, imprimirá B, A como saída. No método B, após a impressão de B, há uma declaração como this.A (). Usando isso, o método de classe atual foi chamado.
Também é possível usar essa palavra-chave para chamar o construtor de classe atual. Consulte o programa fornecido.
classe pública ThisDemo
public static void main (String [] args)
A obj = novo A (5);
classe A
público A ()
System.out.println ("Construtor A");
público A (int x)
esta();
System.out.println ("Construtor parametrizado A");
De acordo com o programa acima, a classe A possui um construtor padrão e um construtor parametrizado. Ao criar um objeto de A, o construtor parametrizado é chamado. No construtor parametrizado, há uma declaração como esta (); Ele chamará o construtor de classe atual que é A ().
A palavra-chave 'super' está relacionada à herança. A herança é um conceito importante da Programação Orientada a Objetos. Permite usar as propriedades e métodos da classe já existente para uma nova classe. A classe já existente é conhecida como classe pai ou superclasse. A nova classe é conhecida como classe ou subclasse filho.
O 'super' é uma variável de referência usada para referenciar o objeto de classe pai imediato. A super palavra-chave pode se referir à variável de instância imediata da classe pai ou invocar o método imediato da classe pai. O super () é usado para chamar o construtor imediato da classe pai.
Suponha que haja duas classes como A e B. A classe A é a superclasse e a classe B é a subclasse. Classe A, B ambos têm método de exibição.
classe pública A
exibição pública nula ()
System.out.println ("A");
a classe pública B estende A
exibição pública nula ()
System.out.println ("B");
Ao criar um objeto do tipo B e chamar a exibição do método, ele fornecerá a saída B. a classe A possui o método de exibição, mas é substituída pelo método de exibição da subclasse B. Se o programador quiser chamar o método de exibição na classe A, ele poderá usar a super palavra-chave. Consulte o programa Java fornecido.
Figura 02: Programa Java usando super palavra-chave
De acordo com o programa acima, a classe A tem uma variável chamada número com o valor 10. A classe B estende A e tem uma variável chamada número com o valor 20. Geralmente, ao criar um objeto do tipo B e chamar o método de exibição, deve-se fornecer o número em a subclasse porque o valor da superclasse é substituído pela nova classe. Usando o super.num, o valor do número da superclasse é impresso.
O super () pode ser usado para chamar o construtor da superclasse. Consulte o programa abaixo.
public class Main
public static void main (String [] args)
B obj = novo B ();
classe A
UMA()
System.out.println ("A");
classe B estende A
B ()
super();
System.out.println ("B");
De acordo com o programa acima, a classe A possui um construtor A (). A classe B tem o construtor B (). A classe B estende a classe A. Ao criar um objeto do tipo B, ele imprimirá A, B como a saída. O construtor B () possui super (). Portanto, primeiro o construtor A é chamado e depois vai para B. Mesmo que super () não seja gravado, por padrão, o construtor pai é chamado.
O super usando o método é o seguinte.
Figura 03: Programa Java que chama o método da superclasse
De acordo com o programa acima, a classe A possui um método de exibição. Classe B também tem método de exibição. A classe B estende A. Ao criar um objeto do tipo B e chamar o método de exibição, a saída será A e B. No método de exibição da classe B, o método de exibição da classe A é chamado usando super.display (). Esse método imprime "A" primeiro. Depois imprime "B".
This vs Super | |
O 'this' é uma variável de referência usada para referenciar o objeto atual. | O 'super' é uma variável de referência usada para referenciar um objeto de superclasse imediato. |
Variável de instância | |
Uma variável de instância de classe atual pode ser referida usando este. | A variável de instância da superclasse pode ser referida usando super. |
Método de classe | |
O método de classe atual pode ser chamado usando este. | O método da superclasse pode ser chamado usando super. |
Construtor | |
O construtor de classe atual pode ser chamado usando this (). | O construtor da superclasse pode ser chamado usando super (). |
As palavras-chave 'this' e 'super' são usadas em Java. As palavras-chave não podem ser usadas como variáveis ou qualquer outro nome identificador. Eles parecem ser os mesmos, mas eles têm uma diferença. A diferença entre este e super é que super é uma variável de referência usada para referir o objeto imediato da superclasse enquanto esta é uma variável de referência que refere o objeto atual.
Você pode fazer o download da versão em PDF deste artigo e usá-la para fins offline, conforme nota de citação. Faça o download da versão em PDF aqui: Diferença entre isso e super em Java
1.This () e super palavra-chave em java e seu objetivo com um pequeno exemplo, Atoz conhecimento, 31 de janeiro de 2015. Disponível aqui
2. "Esta palavra-chave em java - ponto java". Disponivel aqui
3.tutorialspoint.com. "Herança Java". The Point, disponível aqui