Um programa Java pode ser pensado como uma coleção de objetos que funcionam juntos chamando os métodos uns dos outros. A seguir apresentamos brevemente os conceitos de classes, objetos, métodos e variáveis de instância.
Objeto : Um objeto é uma instância de uma classe e possui estado e comportamento. Por exemplo, um cachorro é um objeto. Seu status inclui: cor, nome e raça; seus comportamentos incluem: abanar o rabo, latir, comer, etc.
Classe : uma classe é um modelo que descreve o comportamento e o status de uma classe de objetos.
Método : método é comportamento e uma classe pode ter muitos métodos. Operações lógicas, modificação de dados e todas as ações são concluídas em métodos.
Variáveis de instância : cada objeto possui variáveis de instância exclusivas e o estado do objeto é determinado pelos valores dessas variáveis de instância.
Vejamos um programa Java simples que imprimirá a string Hello World
classe pública MeuPrimeiroJavaPrograma {
/* O primeiro programa Java.
*Irá imprimir a string Hello World
*/
public static void main(String []args) {
System.out.println("Olá Mundo"); // Imprime Olá Mundo
}
}
Aqui está um guia passo a passo sobre como salvar, compilar e executar este programa:
Abra o Bloco de Notas e adicione o código acima;
Salve o nome do arquivo como: MyFirstJavaProgram.java;
Abra a janela de comando cmd e insira o local do arquivo de destino, presumindo que seja C:
Digite javac MyFirstJavaProgram.java na janela da linha de comando e pressione Enter para compilar o código. Se não houver erros no código, o prompt de comando do cmd avançará para a próxima linha. (Supondo que as variáveis de ambiente estejam todas definidas).
Em seguida, digite java MyFirstJavaProgram e pressione a tecla Enter para executar o programa.
Você verá Hello World na janela
C:> javac MeuPrimeiroJavaPrograma.java
C:> java MeuPrimeiroJavaPrograma
Olá mundo
Ao escrever programas Java, você deve prestar atenção aos seguintes pontos:
Sensibilidade a maiúsculas e minúsculas : Java diferencia maiúsculas de minúsculas, o que significa que os identificadores Hello e hello são diferentes.
Nome da turma : Para todas as turmas, a primeira letra do nome da turma deve ser maiúscula. Se o nome da classe consistir em diversas palavras, a primeira letra de cada palavra deverá ser maiúscula, por exemplo, MyFirstJavaClass.
Nomes de métodos : Todos os nomes de métodos devem começar com uma letra minúscula. Se o nome do método contiver diversas palavras, a primeira letra de cada palavra subsequente será maiúscula.
Nome do arquivo de origem : O nome do arquivo de origem deve ser igual ao nome da classe. Ao salvar o arquivo, você deve usar o nome da classe como nome do arquivo (lembre-se de que Java diferencia maiúsculas de minúsculas) e o sufixo do nome do arquivo .java. ( Se o nome do arquivo e o nome da classe forem diferentes, ocorrerá um erro de compilação ).
Entrada do método principal : todos os programas Java iniciam a execução a partir public static void main(String [] args)
.
Todos os componentes do Java requerem nomes. Nomes de classes, nomes de variáveis e nomes de métodos são todos chamados de identificadores.
Em relação aos identificadores Java, há os seguintes pontos a serem observados:
Todos os identificadores devem começar com uma letra (AZ ou az), cifrão ($) ou sublinhado (_)
O primeiro caractere pode ser seguido por qualquer combinação de letras (AZ ou az), cifrões ($), sublinhados (_) ou números.
Palavras-chave não podem ser usadas como identificadores
Os identificadores diferenciam maiúsculas de minúsculas
Exemplos de identificadores legais: idade, $salário, _valor, __1_valor
Exemplos de identificadores ilegais: 123abc, -salary
Como outras linguagens, Java pode usar modificadores para modificar métodos e propriedades em classes. Existem dois tipos principais de modificadores:
Modificadores de controle de acesso: padrão, público, protegido, privado
Modificadores de controle sem acesso: final, abstrato, estático, sincronizado e volátil
Discutiremos os modificadores Java em detalhes em capítulos posteriores.
Existem principalmente os seguintes tipos de variáveis em Java:
variáveis locais
Variáveis de classe (variáveis estáticas)
Variáveis de membro (variáveis não estáticas)
Arrays são objetos armazenados no heap e podem armazenar múltiplas variáveis do mesmo tipo. Nos capítulos posteriores, aprenderemos como declarar, construir e inicializar um array.
Java 5.0 introduziu enumerações, que restringem variáveis a valores predefinidos. O uso de enumerações pode reduzir bugs em seu código.
Por exemplo, criamos um programa para uma loja de sucos que limitará o suco a xícaras pequenas, médias e grandes. Isso significa que não permite que os clientes peçam sucos que não sejam esses três tamanhos.
classe Suco Fresco {
enum FreshJuiceSize {PEQUENO, MÉDIO, GRANDE}
Tamanho do FreshJuiceSize;
}
classe pública FreshJuiceTest {
public static void main(String args[]){
Suco FreshJuice = new FreshJuice();
suco.size = FreshJuice.FreshJuiceSize.MEDIUM;
}
}
Nota: As enumerações podem ser declaradas individualmente ou dentro de uma classe. Métodos, variáveis e construtores também podem ser definidos em enumerações.
As palavras reservadas Java estão listadas abaixo. Essas palavras reservadas não podem ser usadas em nomes de constantes, variáveis e quaisquer identificadores.
Palavras-chave | descrever |
---|---|
resumo | Métodos abstratos, modificadores de classes abstratas |
afirmar | Afirme se a condição foi atendida |
booleano | Tipo de dados booleano |
quebrar | Saia do loop ou segmento de código de rótulo |
byte | Tipo de dados assinado de 8 bits |
caso | Uma condição da instrução switch |
pegar | Use-o para tentar capturar informações de exceção |
personagem | Tipo de dados de caracteres Unicode de 16 bits |
aula | Definir classe |
const | Não usado |
continuar | Não execute o restante do corpo do loop |
padrão | Ramificação padrão na instrução switch |
fazer | Instrução de loop, o corpo do loop será executado pelo menos uma vez |
dobro | Número de ponto flutuante de precisão dupla de 64 bits |
outro | A ramificação executada quando a condição if não é verdadeira |
enumeração | tipo de enumeração |
estende | Indica que uma classe é uma subclasse de outra classe |
final | Indica que um valor não pode ser alterado após a inicialização Indica que o método não pode ser substituído ou que uma classe não pode ter subclasses. |
finalmente | Projetado para completar a execução do código, principalmente pela robustez e integridade do programa, o código será executado independentemente de ocorrer uma exceção. |
flutuador | Número de ponto flutuante de precisão única de 32 bits |
para | instrução de loop for |
Vá para | Não usado |
se | declaração condicional |
implementos | Indica que uma classe implementa a interface |
importar | Classe de importação |
instância de | Testar se um objeto é uma instância de uma classe |
interno | Inteiro de 32 bits |
interface | Interface, um tipo abstrato com apenas definições de métodos e constantes |
longo | Inteiro de 64 bits |
nativo | Os métodos de representação são implementados em código não Java |
novo | Alocar nova instância de classe |
pacote | Uma série de classes relacionadas formam um pacote |
privado | Indica campos privados, métodos, etc., que só podem ser acessados de dentro da classe |
protegido | Indica que o campo só pode ser acessado através da classe ou de suas subclasses ou de outras classes do mesmo pacote. |
público | Representa propriedades ou métodos comuns |
retornar | valor de retorno do método |
curto | 16 dígitos |
estático | Representa algo definido no nível da classe e compartilhado por todas as instâncias. |
strictfp | Comparações de ponto flutuante usam regras estritas |
super | Representa a classe base |
trocar | selecione declaração |
sincronizado | Representa um bloco de código que só pode ser acessado por um thread por vez |
esse | Indica chamar a instância atual ou chamar outro construtor |
lançar | lançar uma exceção |
lança | Defina exceções que podem ser lançadas por um método |
transitório | Modifique os campos para não serem serializados |
tentar | Indica que o bloco de código precisa lidar com exceções ou cooperar com finalmente para indicar que se uma exceção for lançada, o código em finalmente será executado. |
vazio | O método Mark não retorna nenhum valor |
volátil | Os campos de tags podem ser acessados simultaneamente por vários threads sem sincronização |
enquanto | enquanto loop |
Semelhante ao C/C++, Java também oferece suporte a comentários de linha única e multilinha. Os caracteres nos comentários serão ignorados pelo compilador Java.
classe pública MyFirstJavaProgram{
/* Este é o primeiro programa Java *Irá imprimir Hello World
*Este é um exemplo de comentário de várias linhas */
public static void main(String []args){
// Este é um exemplo de comentário de uma única linha /* Este também é um exemplo de comentário de uma única linha */
System.out.println("Olá Mundo");
}
}
Linhas em branco, ou linhas apenas com comentários, são ignoradas pelo compilador Java.
Em Java, uma classe pode ser derivada de outras classes. Se você estiver criando uma classe e já houver uma classe que possua as propriedades ou métodos necessários, você poderá herdar a classe recém-criada dessa classe.
Usando herança, você pode reutilizar métodos e propriedades de classes existentes sem precisar reescrever o código. A classe herdada é chamada de superclasse e a classe derivada é chamada de subclasse.
Em Java, uma interface pode ser entendida como um protocolo de comunicação entre objetos. As interfaces desempenham um papel muito importante na herança.
A interface define apenas os métodos a serem usados pela classe derivada, mas a implementação específica do método depende completamente da classe derivada.
A próxima seção apresenta classes e objetos na programação Java. Depois você terá uma compreensão mais clara das classes e objetos em Java.