Java - Tipos de Variáveis
Uma variável nos fornece armazenamento nomeado que nossos programas podem manipular. Cada variável em Java possui um tipo específico, que determina o tamanho e o layout da memória da variável; o intervalo de valores que podem ser armazenados nessa memória; e o conjunto de operações que podem ser aplicadas à variável.
Você deve declarar todas as variáveis antes que elas possam ser usadas. A seguir está a forma básica de uma declaração de variável -
data type variable [ = value][, variable [ = value] ...] ;
Aqui tipo de dados é um dos tipos de dados e variável do Java é o nome da variável. Para declarar mais de uma variável do tipo especificado, você pode usar uma lista separada por vírgulas.
A seguir estão exemplos válidos de declaração de variável e inicialização em Java −
Exemplo
int a, b, c; // Declares three ints, a, b, and c. int a = 10, b = 10; // Example of initialization byte B = 22; // initializes a byte type variable B. double pi = 3.14159; // declares and assigns a value of PI. char a = 'a'; // the char variable a iis initialized with value 'a'
Este capítulo explicará vários tipos de variáveis disponíveis na linguagem Java. Existem três tipos de variáveis em Java -
- Variáveis locais
- Variáveis de instância
- Variáveis de classe/estática
Variáveis locais
-
Variáveis locais são declaradas em métodos, construtores ou blocos.
-
As variáveis locais são criadas quando o método, construtor ou bloco é inserido e a variável será destruída assim que sair do método, construtor ou bloco.
-
Modificadores de acesso não podem ser usados para variáveis locais.
-
As variáveis locais são visíveis apenas dentro do método, construtor ou bloco declarado.
-
As variáveis locais são implementadas internamente no nível da pilha.
-
Não há valor padrão para variáveis locais, portanto, as variáveis locais devem ser declaradas e um valor inicial deve ser atribuído antes do primeiro uso.
Exemplo
Aqui, idade é uma variável local. Isso é definido dentro de pupAge() e seu escopo é limitado apenas a este método.
Demonstração ao vivo
public class Test { public void pupAge() { int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]) { Test test = new Test(); test.pupAge(); } }
Isso produzirá o seguinte resultado -
Saída
Puppy age is: 7
Exemplo
O exemplo a seguir usa idade sem inicializá-lo, então daria um erro na hora da compilação.
Demonstração ao vivo
public class Test { public void pupAge() { int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]) { Test test = new Test(); test.pupAge(); } }
Isso produzirá o seguinte erro ao compilá-lo -
Saída
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
Variáveis de instância
-
Variáveis de instância são declaradas em uma classe, mas fora de um método, construtor ou qualquer bloco.
-
Quando um espaço é alocado para um objeto no heap, um slot para cada valor de variável de instância é criado.
-
As variáveis de instância são criadas quando um objeto é criado com o uso da palavra-chave 'new' e destruídas quando o objeto é destruído.
-
As variáveis de instância contêm valores que devem ser referenciados por mais de um método, construtor ou bloco, ou partes essenciais do estado de um objeto que devem estar presentes em toda a classe.
-
As variáveis de instância podem ser declaradas em nível de classe antes ou depois do uso.
-
Modificadores de acesso podem ser fornecidos para variáveis de instância.
-
As variáveis de instância são visíveis para todos os métodos, construtores e blocos da classe. Normalmente, é recomendável tornar essas variáveis privadas (nível de acesso). No entanto, a visibilidade das subclasses pode ser dada para essas variáveis com o uso de modificadores de acesso.
-
As variáveis de instância têm valores padrão. Para números, o valor padrão é 0, para booleanos é falso e para referências de objeto é nulo. Os valores podem ser atribuídos durante a declaração ou dentro do construtor.
-
As variáveis de instância podem ser acessadas diretamente chamando o nome da variável dentro da classe. No entanto, dentro de métodos estáticos (quando as variáveis de instância recebem acessibilidade), elas devem ser chamadas usando o nome totalmente qualificado. ObjectReference.VariableName .
Exemplo
Demonstração ao vivoimport java.io.*; public class Employee { // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName) { name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal) { salary = empSal; } // This method prints the employee details. public void printEmp() { System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]) { Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); } }
Isso produzirá o seguinte resultado -
Saída
name : Ransika salary :1000.0
Variáveis de classe/estática
-
Variáveis de classe também conhecidas como variáveis estáticas são declaradas com a palavra-chave static em uma classe, mas fora de um método, construtor ou bloco.
-
Haveria apenas uma cópia de cada variável de classe por classe, independentemente de quantos objetos fossem criados a partir dela.
-
Variáveis estáticas raramente são usadas além de serem declaradas como constantes. Constantes são variáveis declaradas como públicas/privadas, finais e estáticas. Variáveis constantes nunca mudam de seu valor inicial.
-
As variáveis estáticas são armazenadas na memória estática. É raro usar variáveis estáticas que não sejam declaradas como final e usadas como constantes públicas ou privadas.
-
As variáveis estáticas são criadas quando o programa inicia e destruídas quando o programa é interrompido.
-
A visibilidade é semelhante às variáveis de instância. No entanto, a maioria das variáveis estáticas são declaradas públicas, pois devem estar disponíveis para os usuários da classe.
-
Os valores padrão são os mesmos das variáveis de instância. Para números, o valor padrão é 0; para booleanos, é falso; e para referências de objeto, é nulo. Os valores podem ser atribuídos durante a declaração ou dentro do construtor. Além disso, os valores podem ser atribuídos em blocos de inicializador estáticos especiais.
-
Variáveis estáticas podem ser acessadas chamando com o nome da classe ClassName.VariableName .
-
Ao declarar variáveis de classe como final estático público, os nomes das variáveis (constantes) estão todos em maiúsculas. Se as variáveis estáticas não forem públicas e finais, a sintaxe de nomenclatura será a mesma das variáveis de instância e locais.
Exemplo
Demonstração ao vivoimport java.io.*; public class Employee { // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args[]) { salary = 1000; System.out.println(DEPARTMENT + "average salary:" + salary); } }
Isso produzirá o seguinte resultado -
Saída
Development average salary:1000
Observação − Se as variáveis forem acessadas de uma classe externa, a constante deve ser acessada como Employee.DEPARTMENT
O que vem a seguir?
Você já usou modificadores de acesso (público e privado) neste capítulo. O próximo capítulo explicará os Modificadores de Acesso e Modificadores de Não Acesso em detalhes.
Java