Fundamentos da Linguagem
Java e da Orientação a Objetos
Ludimila Monjardim Casagrande 2012
Programação Orientada a Objetos
Tópicos da Aula
Fundamentos da linguagem Java:
Arquivos
Comentários
Convenções de codificação
Palavras-chave
Identificadores
Tipos primitivos
Sintaxe para a declaração de:
Classes, atributos, métodos e construtores.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 2
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 3
Arquivos em Java
Todo arquivo fonte em Java termina com a extensão
.java.
Os arquivos compilados do Java possuem a
extensão .class.
Um arquivo fonte em Java deve conter no máximo
uma classe pública, ou seja, o arquivo pode conter 0
ou 1 classe pública.
Caso exista uma classe pública, então, o nome do
arquivo deve ser igual ao nome da classe pública.
Comentários em Java
Java suporta três estilos de comentários:
Para comentar uma linha:
usa-se os caracteres //
Para comentar várias linhas:
usa-se os caracteres /* e */
Para comentar linhas que fazem parte da
documentação da classe:
usa-se os caracteres /** e */
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 4
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 5
Primeiro Aplicativo Java
1. /* essa é uma forma de comentar
múltiplas linhas */
2. // esse é um comentário de uma única linha
3. public class PrimeiraClasse {
4. // o método main inicia a execução da aplicação Java
5. public static void main (String[] args) {
6. System.out.println(“Minha primeira classe.”);
7. } // fim do método main
8. } // fim da classe
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 6
Convenções do Java
Para aumentar a legibilidade dos códigos
desenvolvidos em Java, algumas convenções
são adotadas.
As convenções de código providas pela Sun e
amplamente seguidas podem ser encontradas
em:
http://www.oracle.com/technetwork/java/codeconv-
138413.html ou
http://www.oracle.com/technetwork/java/codeconvtoc-
136057.html
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 7
Convenções para Nomes
Classes e Interfaces:
nomes de classes devem ser escritos com a
primeira letra maiúscula e as demais minúsculas –
a primeira letra de palavras subsequentes
também deve ser maiúscula.
Exemplos:
Cliente
ClienteEspecial
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 8
Convenções para Nomes
Variáveis e Métodos:
nomes de variáveis e métodos devem ser escritos
com letras minúsculas – sendo a primeira letra de
palavras subsequentes maiúscula.
Exemplos de nomes de métodos:
adicionarCliente
remover
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 9
Palavras-chave do Java
Palavras-chave e palavras reservadas do Java:
As palavras-chave goto e const são reservadas, embora não tenham
significado em Java. Portanto, programas não podem usá-las como
identificadores.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 10
Identificadores
Um identificador é um nome usado para
identificar uma variável, um método, uma classe
ou uma constante.
Palavras-chave ou reservadas não podem ser
usadas como identificadores.
Um identificador pode começar com uma letra,
com o caracter $ ou com um underscore _,
seguidos por letras, underscores, caracteres $,
ou dígitos.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 11
Identificadores
Exemplos de identificadores válidos:
$nome
nome
primeiroNome
nome1
_nome
Identificadores são case sensitive, portanto,
Nome ≠ nome.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 12
Tipos Primitivos do Java
Os tipos primitivos da linguagem Java são:
boolean
char
byte
short
int
long
float
double
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 13
Tipos Primitivos do Java
Tipos primitivos da linguagem Java e seus
respectivos tamanhos em bits:
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 14
Tipos Primitivos do Java
Variáveis do tipo boolean só podem receber os
valores true e false.
Os tipos inteiros são: byte, short, int e long.
Todos com sinal.
Os tipos ponto-flutuante são: float e double.
O tipo char é inteiro porém sem sinal. Sendo
assim, o intervalo de valores do char é de 0 a 216
-1 0 a 65535.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 15
Intervalos de Valores
Intervalos de valores dos tipos primitivos inteiros do Java:
*
* byte: -128 a 127 e short: -32768 a 32767, por exemplo
*
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 16
Intervalos de Valores
Variáveis do tipo char usam o esquema de
codificação Unicode, que corresponde a todos os
caracteres ASCII + caracteres especiais.
Como char ocupa 2 bytes (16 bits), pode representar
até 65.536 caracteres (atualmente cerca de 35.000
são usados). Isso faz com que a linguagem possa
representar todos os caracteres em todos os idiomas
escritos no planeta.
A tabela ASCII estendida utiliza somente 8 bits (≈
capacidade para representar apenas 256 caracteres).
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 17
Estrutura de uma Classe
<modificador> class <nome_da_classe> {
[<declaração_dos_atributos>]
[<declaração_dos_construtores>]
[<declaração_dos_métodos>]
}
Estrutura básica de uma classe
em UML
Estrutura básica de uma classe em
Java
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 18
Estrutura de uma Classe - Exemplo
public class Contador {
public int contador;
public Contador( ) {
this.contador = 0;
}
public void incrementa( ) {
this.contador++;
}
public void decrementa( ) {
this.contador--;
}
}
Atributo e tipo do atributo
Construtor default
Métodos
this referência para o objeto corrente
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 19
Representações de uma Classe
public class Conta {
private double saldo;
public void creditar (double valor) {
saldo = saldo + valor;
}
public void debitar (double valor) {
saldo = saldo - valor;
}
}
Representação usando UML
Representação usando Java
Nota:
- private
+ public
~ default
# protected
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 20
Declaração de Atributos
A sintaxe básica para a declaração de um
atributo é:
<modificador> <tipo> <nome_do_atributo>;
o modificador é opcional
Exemplos:
private int ra;
public String nome;
Conta c;
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 21
Inicialização de Atributos
No momento de sua declaração os atributos
também podem ser inicializados.
Exemplos:
public int idade = 1;
private double resultado = 10.0;
String nome = “Java”;
protected Conta c = null;
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 22
Inicialização de Atributos
Em Java, caso os atributos não sejam
explicitamente inicializados na sua declaração,
eles serão automaticamente inicializados com
um valor predeterminado de acordo com o seu
tipo.
Exemplos de valores iniciais conforme o tipo:
int 0
boolean false
double 0.0
referência a um objeto null
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 23
Valores Default
Valores predefinidos de inicialização de
variáveis de classe em Java:
Tipo Valor Inicial Tipo Valor Inicial
byte 0 short 0
int 0 long 0
float 0.0 double 0.0
char '\u0000' boolean false
referência a objeto
null
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 24
Declaração de Métodos
A sintaxe básica para a declaração de um
método é:
<modificador><tipo_de_retorno><nome_do_método>
(<lista_de_argumentos>) {
<instruções>
}
o modificador, a lista de argumentos e as instruções
são partes opcionais
a lista de argumentos é formada por pares, separados
por vírgula:
<tipo><nome_do_argumento>
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 25
Exemplos de Métodos
Método sem argumentos,
que retorna um int
Método com argumentos,
que não retorna nada
this referência para o objeto corrente
public class Aluno {
int matricula;
public int obterMatricula( ) {
return matricula;
}
public void alterarMatricula
(int matricula) {
this.matricula = matricula;
}
}
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 26
Construtores
Objetos são criados por meio da execução de um dos
seus construtores.
O nome do construtor deve ser idêntico ao nome da
classe.
Os construtores devem ser declarados sem nenhum tipo
de retorno.
Exemplo: public Aluno() { }
É permitido (embora não aconselhável) que um método
tenha o mesmo nome da classe. Nesse caso, se existir
um tipo de retorno, trata-se de um método comum e não
de um construtor.
Construtores
Construtores podem usar qualquer modificador de
acesso, incluindo private.
Os construtores são comumente utilizados para definir
valores para os atributos da classe.
Métodos construtores definidos para uma certa classe
podem ou não possuir argumentos.
O construtor sem argumentos ou construtor vazio é
considerado o construtor default.
Se nenhum construtor for implementado na classe, o
compilador gerará automaticamente o construtor padrão
(default), que não possui argumentos.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 27
Construtores
Se qualquer outro construtor (com argumentos) existir na
classe e você quiser usar um construtor sem
argumentos, você deverá criá-lo manualmente.
Sendo assim, em Java, o construtor default é criado automaticamente pelo compilador se e somente se não existir nenhum outro construtor definido para a classe.
Isso significa que o construtor default pode ser omitido na declaração de uma classe caso ela não possua um construtor com argumentos.
Se a classe possuir um construtor com argumentos, é fortemente recomendado que o construtor default seja declarado explicitamente.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 28
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 29
Declaração de Construtores
A sintaxe básica para a declaração de um
construtor é:
<modificador><nome_da_classe>(<lista_de_argumentos>){
<instruções>
}
o modificador, a lista de argumentos e as instruções
são partes opcionais
a lista de argumentos é formada por pares
<tipo><nome_do_argumento>
um construtor não possui tipo de retorno
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 30
Exemplos de Construtores
public class Conta {
private double saldo;
public Conta ( ) {
}
public Conta (double saldo) {
this.saldo = saldo;
}
public void creditar (double valor) {
saldo = saldo + valor;
}
public void debitar (double valor) {
saldo = saldo - valor;
}
public double obterSaldo ( ) {
return saldo; } }
Construtor default
Construtor com
um argumento
Os construtores normalmente
inicializam os atributos da
classe.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 31
A Referência this
A palavra-chave this é uma referência para o
objeto corrente.
this pode ser usado para:
referenciar um atributo ou método de uma classe
dentro de um construtor ou de método da mesma;
passar o objeto corrente como um parâmetro para
outro método ou construtor.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 32
Criação de um Objeto
Todo objeto em um programa ou aplicação é
criado em tempo de execução, utilizado e
destruído.
Em Java, a palavra-chave new é usada para
criar um novo objeto como uma instância de uma
classe específica, retornando como resultado
uma referência para o objeto criado.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 33
Criação de um Objeto
A sintaxe para criação de um objeto é:
new <nome_da_classe> ([lista_de_argumentos])
Observe que a palavra-chave new é sucedida pela chamada de um construtor da classe.
O corpo (ou código) do método construtor determina as ações associadas à inicialização de cada objeto criado.
Um construtor só é invocado quando um objeto é criado.
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 34
Exemplo de Criação de um Objeto
public class Principal {
public static void main (String[] args) {
Conta c1 = new Conta( );
c1.creditar(10.0);
System.out.println(c1.obterSaldo());
Conta c2 = new Conta(50.0);
c2.creditar(10.0);
System.out.println(c2.obterSaldo());
}
}
Chamada do construtor
default
Chamada do construtor
com um argumento
c1 e c2 são objetos
distintos e independentes
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 35
Acesso aos Membros de uma Classe
Os atributos e métodos também são chamados de membros de uma classe.
Em Java, a seguinte sintaxe é utilizada para se ter acesso aos membros da classe:
<objeto>.<membro> ou <classe>.<membro>
Exemplos:
c1.creditar(10.0);
aluno1.matricula;
System.out;
Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 36
Leituras Recomendadas
FJ-11: Java e Orientação a Objetos.
Caelum Ensino e Soluções em Java. http://www.caelum.com.br/curso/fj-11-java-orientacao-objetos/
Complete Java 2 Certification - Study Guide.
Sybex.
Java: Como Programar.
Autores: H. M. Deitel e P. J. Deitel.
Editora: Pearson – 6ª Edição.