Neste artigo, explicaremos a todos os alunos de Java o que são variáveis Java e como trabalhar com elas.
O que é variável Java
Uma variável em Java pode ser considerada como uma caixa. Essa "caixa" tem um certo tamanho: a memória que é alocada para ela. Quanta memória será alocada depende do tipo da variável, mas falaremos sobre isso um pouco mais tarde. Ao mesmo tempo, o tamanho da própria caixa não pode ser alterado após sua criação, mas o conteúdo pode. A caixa pode estar vazia. Você pode "inserir" algum valor nele e, em seguida, extrair e colocar algum outro valor. Assim, uma variável é um campo que armazena valores de dados durante a execução de um programa Java. Esta caixa tem características importantes:- pode sempre conter apenas um valor (ou pode estar vazio, caso em que conterá o valor padrão),
- Tem um tipo de dados. Seu tamanho depende do tipo de dados, bem como de qual área específica da memória o local é alocado para ele (onde está).
Como declarar variáveis
Para declarar variáveis em Java, você precisa especificar seu tipo e nome. Aqui está um exemplo de declaração de três variáveis:
int myInt;
String s;
Object variableName;
Aqui int , String e Object são os tipos de dados e myInt , s , variableName são nomes de variáveis. O tipo de dados deve ser escolhido com base nas necessidades do programa, sendo melhor escolher um nome para que fique claro do que se trata. Claro que para iniciantes não é tão rígido, mas em grandes projetos, nomes de variáveis como 's' podem prejudicar a legibilidade do código. Portanto, é melhor se acostumar a nomear as variáveis de uma maneira que deixe claro para que servem desde o início. Dentro do razoável, claro.
Como inicializar variáveis
Ao declarar uma variável, você aloca memória para ela. Inicialização significa que você "coloca" um determinado valor na "caixa". Isso pode ser feito imediatamente durante a declaração da variável ou posteriormente. Além disso, o valor de uma variável pode mudar durante a execução do programa. Exemplo:
public class VariableTest {
public static void main(String[] args) {
int myInt = 5;
String s;
s = "init";
System.out.println(s);
s = s+5;
System.out.println(s);
}
}
Aqui declaramos e inicializamos a variável myInt em uma linha, imediatamente alocando memória para ela (32 bits para cada número int), demos um nome e então colocamos o valor 5 na memória alocada. Em seguida, declaramos que estávamos alocando espaço de memória para a string s , e um comando separado já colocou o valor “init” nela. Depois disso, imprimimos a string e alteramos o valor da variável s . Neste programa, imprimimos as linhas e, se você executá-lo, verá o seguinte resultado:
init init5
Tipos de dados de variáveis em Java: primitivos e não primitivos
Os tipos de dados de variáveis em Java são divididos em dois grupos:- Os tipos de dados primitivos incluem byte , short , int , long , float , double , boolean e char
- Tipos de dados não primitivos, como String , Arrays e Classes
public class VariableTest {
public static void main(String[] args) {
int myInt = - 5; // integer (whole number)
float myFloat = 2.718281828459045f; // Floating point number
char myLetter = 'a'; // character
boolean myBool = true; // boolean
String myText = "Hero"; // String
System.out.println(myInt + " " +
myFloat +" " + myLetter + " " + myBool + " " + myText);
Student myStudent = new Student("Walker","Johnny", "Kyle", null);
}
}
int , char , boolean e float são primitivos. String não é primitivo. E a variável myStudent ? Este é um objeto da classe Student criada pelo usuário . Foi criado simplesmente para ilustrar o trabalho com variáveis não primitivas. Eles são a maioria em Java, já que quase tudo nessa linguagem de programação é um objeto. Para entender, segue o código da classe Aluno :
import java.util.Date;
public class Student {
String surname;
String name;
String secondName;
Long birthday; // Long instead of long is used by Gson/Jackson json parsers and various orm databases
public Student(String surname, String name, String secondName, Date birthday ){
this.surname = surname;
this.name = name;
this.secondName = secondName;
this.birthday = birthday == null ? 0 : birthday.getTime();
}
@Override
public int hashCode(){
//TODO: check for nulls
//return surname.hashCode() ^ name.hashCode() ^ secondName.hashCode() ^ (birthday.hashCode());
return (surname + name + secondName + birthday).hashCode();
}
@Override
public boolean equals(Object other_) {
Student other = (Student)other_;
return (surname == null || surname.equals(other.surname) )
&& (name == null || name.equals(other.name))
&& (secondName == null || secondName.equals(other.secondName))
&& (birthday == null || birthday.equals(other.birthday));
}
}
Tipos de variáveis em Java: local, instância e estática
Existem três tipos diferentes de variáveis em Java, nós as listamos a seguir:- Variáveis locais
- Variáveis de instância
- Variáveis estáticas
Variáveis locais
Uma variável declarada dentro do corpo do método é chamada de variável local. Além disso, variáveis locais são declaradas dentro de construtores e blocos. Você pode usar variáveis locais apenas dentro desse método, construtor ou bloco onde foram criadas e os outros métodos da classe nem sabem que a variável existe. Portanto, as variáveis locais são criadas quando o método, construtor ou bloco é inserido e a variável é destruída quando o método, construtor ou bloco não funciona. Uma variável local não pode ser definida com a palavra-chave static . Ainda mais: você não pode usar modificadores de acesso para variáveis locais. Aqui está um exemplo:
public class VariableTest {
public static void main(String[] args) {
System.out.println(myMethod("C plus "));
}
private static String myMethod(String myString) {
String myOtherString = "plus";
return myString + myOtherString;
}
}
Aqui myOtherString é uma variável local. Você não pode usá-lo do outro método, mas myMethod . As variáveis locais não podem ter valores padrão. Se pelo menos uma variável local não for inicializada no programa, o programa não funcionará corretamente. Vamos fazer uma pequena alteração em um dos exemplos anteriores e "esquecer" de inicializar a variável myBool :
public class VariableTest {
public static void main(String[] args) {
int myInt = - 5; // integer (whole number)
float myFloat = 2.718281828459045f; // Floating point
char myLetter = 'a'; // character
boolean myBool; // boolean
String myText = "Hero"; // String
System.out.println(myInt + " " +
myFloat +" " + myLetter + " " + myBool + " " + myText);
Student myStudent = new Student("Walker","Johnny", "Kyle", null);
}
}
Se tentarmos executar o programa, ele lançará um erro:
Erro:(10, 50) java: a variável myBool pode não ter sido inicializada
Variáveis de instância
Uma variável declarada dentro da classe, mas fora do corpo de qualquer método, construtor ou bloco, é chamada de variável de instância. As variáveis de instância são criadas quando um objeto é criado usando a palavra-chave new . Ele é destruído quando o objeto é destruído. Ele não pode ser declarado como estático, mas você pode usar modificadores de acesso 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, as variáveis de instância são privadas, mas você pode alterar a visibilidade das subclasses. As variáveis de instância, em oposição às variáveis locais, possuem valores padrão. Para todos os tipos primitivos numéricos, 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. Aqui está um exemplo:
//instance variable example
public class Employee {
// here we have a public instance variable. It is visible for this class and child classes
public String name;
//this instance variable is private so it’s visible for the Employee class only. You can use setters and getters to get it
private double salary;
public Employee (String empName) {
name = empName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double employeeSalary) {
salary = employeeSalary;
}
public static void main(String args[]) {
Employee employee = new Employee("Johnny");
employee.setSalary(1500);
System.out.println("name = " + employee.getName());
System.out.println("salary = " + employee.getSalary());
}
}
variáveis estáticas
Uma variável declarada como estática é chamada de variável estática. Java permite que você declare tais variáveis fora de um método, construtor ou bloco. Não pode ser local, eles pertencem à classe, não às instâncias. Isso significa que uma única cópia de uma variável estática é criada e compartilhada entre todas as instâncias da classe. A alocação de memória para variáveis estáticas ocorre apenas uma vez quando a classe é carregada na memória. Eles podem ter qualquer visibilidade, mas geralmente são declarados como públicos. Eles também têm valores padrão, como variáveis de instância.
public class Box
{
public void add(int data)
{
Storage.sum = Storage.sum + data;
Storage.count++;
}
public void remove(int data)
{
Storage.sum = Storage.sum - data;
Storage.count--;
}
}
public class Storage
{
public static int count = 0;
public static int sum = 0;
}
No exemplo acima, criamos uma classe Storage separada , movemos as variáveis count e sum para ela e as declaramos estáticas. Variáveis estáticas públicas podem ser acessadas de qualquer método de programa (e não apenas de um método). Para reforçar o que você aprendeu, sugerimos que você assista a uma vídeo aula do nosso Curso de Java
GO TO FULL VERSION