poo - 02 - fundamentos da linguagem java e da orientação a objetos

36
Fundamentos da Linguagem Java e da Orientação a Objetos Ludimila Monjardim Casagrande 2012 Programação Orientada a Objetos

Upload: ludimila-monjardim-casagrande

Post on 22-Jan-2018

6.108 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

Fundamentos da Linguagem

Java e da Orientação a Objetos

Ludimila Monjardim Casagrande 2012

Programação Orientada a Objetos

Page 2: POO - 02 - Fundamentos da Linguagem Java e da Orientação 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

Page 3: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 4: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 5: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 6: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 7: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 8: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 9: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 10: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 11: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 12: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 13: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 13

Tipos Primitivos do Java

Tipos primitivos da linguagem Java e seus

respectivos tamanhos em bits:

Page 14: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 15: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

*

Page 16: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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).

Page 17: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 18: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 19: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 20: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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;

Page 21: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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;

Page 22: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 23: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 24: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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>

Page 25: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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;

}

}

Page 26: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 27: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 28: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 29: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 30: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 31: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 32: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 33: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.

Page 34: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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

Page 35: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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;

Page 36: POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos

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.