Em Java, um construtor não pode ser abstrato, final, estático, nativo ou strictfp. Então, não há estática construtor em Java .
Um construtor estático usado para inicializar dados estáticos significa que a tarefa especificada será executada apenas uma vez durante o programa. Normalmente, um construtor estático é chamado automaticamente quando a primeira instância é gerada ou qualquer membro estático é referenciado. O construtor estático é declarado explicitamente usando uma palavra-chave estática. No entanto, o construtor estático não é permitido em Java.
definir computador
Alguns recursos principais do construtor estático são os seguintes:
- Não serão necessários parâmetros ou modificadores de acesso.
- Uma classe específica pode ter apenas um construtor estático.
- Não permite herança ou sobrecarga.
- É invocado automaticamente, não pode ser chamado direta ou explicitamente.
- Se o valor dos campos estáticos não for inicializado, ele será inicializado com os valores padrão.
Vamos entender porque o construtor estático não é permitido em Java:
E se declararmos um construtor estático?
Um construtor estático não é permitido em Programação Java . É ilegal e contra os padrões Java usar um construtor estático. Portanto, o programa Java não será compilado e gerará um erro em tempo de compilação.
Vamos entender isso com um exemplo. Considere o exemplo abaixo:
StaticConstructorDemo.java:
pivô do panda
public class StaticConstructorDemo { //Declaring a static constructor public static StaticConstructorDemo() { System.out.println('Static Constructor of the class'); } public static void main(String args[]) { // Creating a constructor object to invoke it StaticConstructorDemo obj = new StaticConstructorDemo(); } }
Saída:
Exception in thread 'main' java.lang.Error: Unresolved compilation problem: Illegal modifier for the constructor in type StaticConstructorDemo; only public, protected & private are permitted. at StaticConstructorDemo.(StaticConstructorDemo.java:4) at StaticConstructorDemo.main(StaticConstructorDemo.java:13)
No exemplo acima, podemos ver que está lançando uma exceção ' Modificador ilegal para o tipo de construtor '. E está claramente escrito que público, protegido , & privado são permitidos.
Por que Java não suporta um construtor estático?
Quando marcamos qualquer coisa com uma palavra-chave estática, ela pertence apenas à classe, por exemplo, método estático, variável estática, etc. Os métodos estáticos não podem ser herdados de suas subclasses porque pertencem à classe na qual são declarados. Da mesma forma, não podemos usar uma variável estática em suas subclasses.
como baixar vídeo do youtube vlc
No caso de um construtor, um construtor é um bloco de código reutilizável, o que significa que podemos chamá-lo a partir de suas subclasses durante a criação dos objetos. Mas, quando o declaramos como estático, ele não pode ser usado por suas subclasses além das classes declarantes. Portanto, é ilegal declarar um construtor como estático. Assim, violará todo o motivo do conceito de herança.
Se declararmos um construtor como estático, então ele não poderá ser acessado por suas subclasses e pertencerá apenas a um nível de classe. O programa não será compilado e gerará um erro em tempo de compilação.
Vamos entender com um exemplo:
StaticConstructorExample.java:
linux renomear pasta
public class StaticConstructorExample { public StaticConstructorExample() { /*Constructor of this class*/ System.out.println('In StaticConstructorExample Class'); } }
StaticConstructorChild.java:
public class StaticConstructorChild extends StaticConstructorExample { public StaticConstructorChild() { System.out.println('In StaticConstructorChild class'); } public void display() { System.out.println('Method of StaticConstructorChild class'); } public static void main(String args[]) { StaticConstructorChild obj = new StaticConstructorChild(); obj.display(); } }
Saída:
In StaticConstructorExample Class In StaticConstructorChild class Method of StaticConstructorChild class
A partir do exemplo acima, podemos notar que quando o objeto da classe filho é criado, primeiro ele invoca o construtor da classe pai e depois o seu próprio construtor de classe. Isso está acontecendo porque a palavra-chave new está criando o objeto e depois invocando o construtor para inicializar os valores. Cada classe filha tem um construtor super() como a primeira instrução para herdar as propriedades da classe pai.
Esta é a razão pela qual não podemos criar um construtor estático em Java.
Conclusão:
Os construtores em Java não podem ser estáticos porque se os construtores forem marcados como estáticos, eles não poderão ser chamados a partir da classe filha; assim, o objeto da classe filha não será criado. O programa não será compilado e gerará um erro em tempo de compilação.