Em Java uma String não é tratada como um tipo de dado e sim uma classe. Então cada variável String é um objeto dessa classe.
Sendo uma classe, ela possui métodos que são muito úteis. Abaixo seguem 2 deles:
Método length();
Retorna o tamanho da String passada;
publicclass Exemplos {
publicstaticvoid main(String[] args) {
String str = "Fhilippe Augusto";
System.out.println(str + " possui " + str.length() + " caracteres.");
}
}
Método equals();
A melhor maneira de se comparar uma String em Java é usando o método equals. Existe uma diferença entre fazer uma comparação de Strings usando o operador de igualdade "==" e fazer uma comparação usando o método equals();
Basicamente o método equals é o seguinte;
String string1 = "Fhilippe";
String string2 = "Augusto";
if (string1.equals(string2)) {
System.out.print("verdadeiro");
} else {
System.out.print("falso");
}
Java possui muitos métodos da classe String que podem ser de muita utilidade durante o desenvolvimento de um aplicativo... Em breve eu irei mostrar mais métodos e alguns exemplos na prática.
Quando precisamos armazenar o valor de uma variável em outra de tipo diferente usamos o Casting.
Existem 2 tipos de Casting em Java. Os Castings implícitos e os explícitos. Exemplo:
Se precisamos armazenar o valor de uma variável do tipo Inteiro em outra do tipo Double:
int numInt = 10;
double numDouble = numInt; // cast implícito
Como o tipo double é maior que o tipo Int, ele pode receber o valor da variável numInt.
Para a ver tabela dos tipos com os valores e os seus tamanhos clique aqui.
Quando convertemos um atributo cujo tipo possui um tamanho maior para um de tamanho
menor, necessariamente devemos fazer um casting explícito. Esse possui a seguinte forma:
(tipoDado)valor. Exemplo:
double valDouble = 10.12;
int valInt = (int)valDouble; //converte valDouble para o tipo int
Para converter um valor Double para Inteiro é preciso fazer o cast explícito, pois o Inteiro é menor que o Double
double x = 10.2;
int y = 2;
int result = (int)(x/y); //converte o resultado da operação para int
Já nesse caso estamos fazendo uma divisão entre um Double e um Int. Como a variável "result" é um inteiro, ela deve ter um cast explícito para receber o resultado da operação.
Resumindo: Para converter de um tipo MENOR para um MAIOR, o cast ocorre implicitamente.
Para converter de um tipo MAIOR para um MENOR, o cast ocorre explicitamente, colocando entre parênteses o tipo a ser convertido como nos dois últimos exemplos.
A linguagem Java é conhecida por ser bastante forte e segura, aliás, segurança é um dos pilares da orientação a objetos. O encapsulamento é uma prova disso. Com o encapsulamento, nós conseguimos proteger o acesso aos atributos da nossa classe definindo como e quais métodos serão responsáveis por alterá-los.
Um exemplo disso na nossa classe Conta, seria o saldo.O saldo certamente não pode ser alterado ou manipulado diretamente, mas sim através de métodos adequados para isso, como métodos que fazem lançamentos de débitos e créditos.
A alteração direta do saldo causaria um problema de cálculos e inconsistência de dados.
Justamente por isso devemos criar classes bem encapsuladas, que fornencem métodos adequados para operar sobre os dados dos objetos daquela classe.
O uso de encapsulamento também evita que um programa torne-se tão interdependente que uma pequena mudança tenha grandes efeitos colaterais.
Modificadores de Acesso
Public
O modificador public deixará visível a classe ou membro para todas as outras classes, subclasses e pacotes do projeto Java.
Private
O modificador private deixará visível o atributo apenas para a classe em que este atributo se encontra.
Protected
O modificador protected deixará visível o atributo para todas as outras classes e subclasses que pertencem ao mesmo pacote. A principal diferença é que apenas as classes do mesmo pacote tem acesso ao membro. O pacote da subclasse não tem acesso ao membro.
Deafault
Por padrão, a linguagem Java permite acesso aos membros apenas ao pacote em que ele se encontra.
Métodos Getters e Setters
Set
Nomeamos um método acessor com set toda vez que este método for modificar algum campo ou atributo de uma classe, ou seja, se não criarmos um método acessor set para algum atributo, isso quer dizer que este atributo não deve ser modificado.
Portanto, como o valor de um atributo da classe será modificado, não é necessário que este método retorne nenhum valor, por isso, os métodos setters são void. Porém, obrigatoriamente, eles tem que receber um argumento que será o novo valor do campo.
Get
Nomeamos um método acessor com get toda vez que este método for verificar algum campo ou atributo de uma classe.
Como este método irá verificar um valor, ele sempre terá um retorno como String, int, float, etc. Mas não terá nenhum argumento.