Qual é a diferença entre estática pública e estática privada

public, private e protected são todos modificadores de acesso em java. Por exemplo, um campo público em uma classe é acessível a todas as classes, enquanto o privado é acessível apenas a partir dos métodos dessa classe. Instanciado significa que você deve fazer uma referência para o objeto que deseja usar. Por exemplo MyObject m = new MyObject ();

Antes de explicar o conceito acima, devo dizer que este é o conceito OOPS, não apenas os conceitos de java, o OOPS suporta a linguagem de suporte a todos os conceitos acima:

1) static: Static é o ponto de partida da jvm. Portanto, apenas estamos usando no java public static static void main.

Média estática, uma por pessoa, como este trabalho estático em java. Isso significa que apenas uma estática tem a classe. Isso significa que, quando você cria mais de um objeto, a estática nunca é alterada para cada objeto. Isso é chamado de um por classe. Estático não é propriedade do objeto. Estático é propriedade de classe.

Portanto, podemos usar isso sem criar instância. Podemos chamar o método estático por classname.methodname. O método estático é implicitamente final. você não pode substituir um método estático por um método não estático.

2) instanciado: a instanciação é um dos mecanismos mais importantes para a reutilização de código em linguagens de programação orientadas a objetos. Instanciação é o uso de classes de objetos. (Uma classe de objeto é um conjunto de objetos que compartilham uma estrutura e um comportamento em comum). Instanciação é fundamentalmente uma palavra para o uso da herança. Os programadores podem definir classes de objetos, definir seus próprios tipos de objetos e instancia-los conforme necessário. Este é um dos mecanismos mais importantes para a reutilização de código em linguagens de programação orientadas a objetos.

3) privado - Somente a classe atual terá acesso ao campo ou método.

4) protected - Somente a classe e subclasses atuais (e às vezes também as classes do mesmo pacote) dessa classe terão acesso ao campo ou método.

5) public - Qualquer classe pode se referir ao campo ou chamar o método.

Em Java, Static significa memória global comum compartilhada para objetos.

Instanciado significa criação de objetos.

Tipos de especificadores de acesso:

Em java, temos quatro especificadores de acesso e eles estão listados abaixo.

1. público 2. privado 3. protegido 4. padrão (sem especificador)

Analisamos esses especificadores de acesso com mais detalhes.

O que outras pessoas estão dizendo

especificadores públicos:

Especificadores públicos atingem o mais alto nível de acessibilidade. Classes, métodos e campos declarados como públicos podem ser acessados ​​de qualquer classe no programa Java, estejam essas classes no mesmo pacote ou em outro pacote.

Exemplo:

public class Demo {// classe pública public x, y, size; // variáveis ​​de instância pública}

especificadores privados:

Os especificadores particulares atingem o nível mais baixo de acessibilidade. Os métodos e campos privados podem ser acessados ​​somente na mesma classe à qual os métodos e os campos pertencem. métodos e campos privados não são visíveis nas subclasses e não são herdados pelas subclasses. Portanto, o especificador de acesso privado é oposto ao especificador de acesso público. Usando o Private Specifier, podemos obter encapsulamento e ocultar dados do mundo exterior.

Exemplo:

public class Demo {// classe pública private double x, y; // variáveis ​​de instância privadas (encapsuladas)

conjunto público (int x, int y) {// configurando valores de campos privados this.x = x; this.y = y; }

public get () {// definindo valores de campos privados return Point (x, y); }}

especificadores protegidos:

Métodos e campos declarados como protegidos só podem ser acessados ​​pelas subclasses em outro pacote ou em qualquer classe dentro do pacote da classe dos membros protegidos. O especificador de acesso protegido não pode ser aplicado à classe e interfaces.

padrão (sem especificador):

Quando você não define o especificador de acesso para o elemento, ele segue o nível de acessibilidade padrão. Não há palavra-chave do especificador padrão. Classes, variáveis ​​e métodos podem ser acessados ​​por padrão. Usando o especificador padrão, podemos acessar a classe, método ou campo que pertence ao mesmo pacote, mas não de fora deste pacote.

Exemplo:

classe Demo {int i; (Padrão) }

Exemplo em tempo real:

Acima, em: http://java-answers.blogspot.in/2012/01/access-specifiers-in-java.html?m=1

Estes são os modificadores associados às variáveis ​​dentro de uma classe.

Estático: a variável é comum a toda a classe, não específica a nenhum objeto. público: fornece o nível mais alto de visibilidade para essa variável. O escopo da variável (desde que exista) não se limita apenas a esta classe ou a este pacote, mas qualquer outro objeto, mesmo de um pacote diferente, pode usar essa variável importando esse pacote / arquivo em seu ambiente.

privado: menor nível de visibilidade fornecido. Somente os objetos desta classe podem vê-lo.

protected: Fornece acesso a meio caminho entre público e privado, no sentido de que os filhos dessa classe também podem ver essa variável.

Geralmente, da minha experiência no ensino de Java, as pessoas ainda se confundem com o modificador estático. Como regra geral, o modificador estático deve ser usado com variáveis ​​que são: 1) declaradas como constantes como em: public static final double PI = 3.1415.

2) classes internas que servem apenas como definição:

classe LinkedList {Cabeça do nó, cauda; // classe interna que serve apenas como uma definição para o nó classe estática privada Node {// sua definição aqui}}

Por que deveria ser estático? Por ser apenas uma definição, você não precisa ter várias cópias da mesma definição em cada objeto da classe LinkedList agora, precisa?

Espero que isto ajude.