Você está na página 1de 16

Universidade Federal de Sergipe

Programao II
Departamento de Sistemas de Informao / Itabaiana

Prof Alcides Xavier Benicasa


alcides@ufs.br

Pgina inicial do grupo: http://groups.google.com.br/group/ufs-dsi-progii Endereo de e-mail do grupo: ufs-dsi-progii@googlegroups.com Pgina do Professor: https://sites.google.com/site/ufsprofalcidesbenicasa

Roteiro

Introduo Programao Orientada a Objetos

Estrutura de uma classe bsica b Campos Construtores Mltiplos Construtores (Sobrecarga de Construtores) Mtodos Escopo, Tempo de Vida e Visibilidade Variveis Locais Vari Parmetros Campos Modificadores de Acesso public private static final Exemplo
UFS Programao II Prof Alcides Xavier Benicasa

2 32

Programao Orientada a Objetos


Estrutura de uma Classe Bsica

Estrutura de uma classe bsica


public class NomeDaClasse { Campos Construtores Mtodos } O contedo de uma classe

4 32

Introduo Programao Orientada a Objetos

UFS Programao II Prof Alcides Xavier Benicasa

Campos

Introduo Programao Orientada a Objetos

Campos armazenam valores para um objeto. Eles tambm so tamb conhecidos como variveis de vari instncias. Campos definem o estado de um objeto.

public class Lampada { private String estado; private int nVidaUtil;


//construtor e mtodos omitidos

}
Modificador de Visibilidade Tipo Nome da varivel

private String estado; ;

So definidos fora dos mtodos


UFS Programao II Prof Alcides Xavier Benicasa

5 32

Construtores

Introduo Programao Orientada a Objetos

Funo
Colocar cada objeto da classe, quando ele est est sendo criado, em um estado previamente definido para ser utilizado. Inicializao. Inicializa

public class Lampada { private String estado; private int nVidaUtil; public Lampada() { estado = "desligada"; } public Lampada(String NovoEstado) { estado = NovoEstado; }
//mtodos omitidos

6 32

UFS Programao II Prof Alcides Xavier Benicasa

Construtores
Construtores inicializam um objeto.
Introduo Programao Orientada a Objetos

public class Lampada { private String estado; private int nVidaUtil; public Lampada() { estado = "desligada"; } public Lampada(String NovoEstado) { estado = NovoEstado; }
//mtodos omitidos

Eles tm o mesmo nome das suas classes. Eles armazenam valores iniciais nos campos. Eles freqentemente freq recebem valores de parmetros externos nesses campos.
}

7 32

UFS Programao II Prof Alcides Xavier Benicasa

Transmitindo dados via parmetros


CONSTRUTOR
Introduo Programao Orientada a Objetos

public Lampada(String NovoEstado) { estado = NovoEstado; }

Lampada lampada1 = new Lampada(ligada);

8 32

UFS Programao II Prof Alcides Xavier Benicasa

Mltiplos Construtores

Introduo Programao Orientada a Objetos

Sobrecarga
Uma classe pode conter mais de um construtor ou mais de um mtodo do mesmo nome, contando que cada um tenha um nome, conjunto distinto de tipos de parmetros. ... public Lampada() { estado = "desligada"; } public Lampada(String NovoEstado) { estado = NovoEstado; }
UFS Programao II Prof Alcides Xavier Benicasa

9 32

Transmitindo dados via parmetros


CONSTRUTOR
Introduo Programao Orientada a Objetos

public Lampada() { estado = desligada; }

Lampada lampada1 = new Lampada();

10 32

UFS Programao II Prof Alcides Xavier Benicasa

Mtodos de Acesso
Modificador de Visibilidade Nome do Mtodo Lista de Parmetros (vazia)

Introduo Programao Orientada a Objetos

Tipo de Retorno

public String getEstado(){ { return estado; Instruo de } Retorno


Incio e Fim do corpo do Mtodo (bloco)

11 32

UFS Programao II Prof Alcides Xavier Benicasa

Mtodos Modificadores
Modificador de Visibilidade Tipo de Retorno (void) Nome do Mtodo Parmetro(s)

Introduo Programao Orientada a Objetos

public void setEstado(String nEstado){ { estado = nEstado; }

Campo sendo Alterado


UFS Programao II Prof Alcides Xavier Benicasa

12 32

Mtodos

Nome do Mtodo M um Identificador vlido da linguagem; v Parmetros lista de argumentos que sero passados como parmetros para o mtodo. A sintaxe dos argumentos a de declarao de variveis; declara vari Tipo de Retorno indica o tipo do valor retornado pelo mtodo; m return palavra reservada que indica o valor que ser devolvido para o ser programa; Modificadores elementos que caracterizam o mtodo quanto visibilidade m (escopo)
UFS Programao II Prof Alcides Xavier Benicasa

Introduo Programao Orientada a Objetos

13 32

Programao Orientada a Objetos


Escopo / Tempo de Vida / Visibilidade

Escopo / Tempo de Vida / Visibilidade

Introduo Programao Orientada a Objetos

Variveis Locais
Varivel declarada e utilizada dentro de um nico Vari mtodo. Seu tempo de vida est limitado ao mtodo. est m

public int ReiniciaVidaUtil() { int nVidaUtilUtilizada = nVidaUtil; nVidaUtil = 0; return nVidaUtilUtilizada; }

15 32

UFS Programao II Prof Alcides Xavier Benicasa

Escopo / Tempo de Vida / Visibilidade

Introduo Programao Orientada a Objetos

Variveis Locais
Definidas dentro do corpo de um construtor ou mtodo. m Podem ser inicializadas e utilizadas somente dentro do corpo de seu construtor ou mtodo definidor. m Devem ser inicializadas antes de serem utilizadas em um expresso elas no recebem um valor-padro. valorTm escopo que limitado no bloco em que elas so definidas. No so acessveis em nenhum lugar fora acess desse bloco.
UFS Programao II Prof Alcides Xavier Benicasa

16 32

Escopo / Tempo de Vida / Visibilidade

Introduo Programao Orientada a Objetos

Parmetros
Persistem somente durante o perodo em que um per construtor ou mtodo executa. m Atuam como posies temporrias, em vez de posi tempor permanentes, da memria. mem

public void setEstado(String nEstado){ estado = nEstado; }

17 32

UFS Programao II Prof Alcides Xavier Benicasa

Escopo / Tempo de Vida / Visibilidade

Introduo Programao Orientada a Objetos

Parmetros
So definidos no cabealho de um construtor ou cabe mtodo. Recebem seus valores fora, sendo inicializados pelos valores reais de parmetros. Escopo limitado a seu construtor ou ao seu mtodo m definidor. public void setEstado(String nEstado){ estado = nEstado; }

18 32

UFS Programao II Prof Alcides Xavier Benicasa

Escopo / Tempo de Vida / Visibilidade

Introduo Programao Orientada a Objetos

Campos
So definidos fora dos construtores e mtodos. m Utilizados para armazenar dados que persistem por toda a vida de um objeto.

public class Lampada { private String estado; private int nVidaUtil;


//construtor e mtodos omitidos

19 32

UFS Programao II Prof Alcides Xavier Benicasa

Escopo / Tempo de Vida / Visibilidade

Introduo Programao Orientada a Objetos

Campos
Tm escopo de classe: sua acessibilidade se estende por toda a classe e podem ser utilizadas em quaisquer dos construtores ou mtodos da classe em que eles m esto definidos. Enquando forem definidos como private, no podem private, ser acessados de fora de sua classe definidora.
public class Lampada { private String estado; private int nVidaUtil;
//construtor e mtodos omitidos

}
20 32
UFS Programao II Prof Alcides Xavier Benicasa

10

Programao Orientada a Objetos


Modificadores de Acesso

Modificadores de Acesso

Introduo Programao Orientada a Objetos

public
Campo ou mtodo da classe declarado com este modificador poder ser acessado ou executado a partir de qualquer outra classe. Campos e mtodos que devam ser acessados (e modificados, no caso de campos) devem ser declarados com o modificador public.

22 32

UFS Programao II Prof Alcides Xavier Benicasa

11

Modificadores de Acesso

Introduo Programao Orientada a Objetos

private
Campos e mtodos declarados com o modificador private s podem ser acessados, modificados ou executados por mtodos da mesma classe, sendo completamente ocultos para o programador usurio que for usar instncias desta classe ou criar classes herdeiras. Campos ou mtodos que devam ser ocultos totalmente de usurios da classes devem ser declarados com este modificador.

23 32

UFS Programao II Prof Alcides Xavier Benicasa

Modificadores de Acesso

Introduo Programao Orientada a Objetos

friendly (sem modificador) protected


Veremos logo aps os conceitos de PACOTES

24 32

UFS Programao II Prof Alcides Xavier Benicasa

12

Modificadores de Acesso

Introduo Programao Orientada a Objetos

final no pode ser sobrescrito. Equivale declarao de constante; static no necessita de objeto. Pode ser invocado a partir do nome da classe. Por exemplo: Integer.parseInt(<String>)

25 32

UFS Programao II Prof Alcides Xavier Benicasa

Modificadores de Acesso Exemplo


public class Pessoa {
Introduo Programao Orientada a Objetos

private String nome, identidade; private int idade; public String nacionalidade; final float peso = 80; static float altura; altura; public Pessoa(String nome, String id, String nac, int idade,float alt) idade,float alt) { this.nome = nome; this.nome identidade = id; nacionalidade = nac; this.idade = idade; this.idade altura = alt; alt; } public void MostraDados(){//...} MostraDados(){//...} }
UFS Programao II Prof Alcides Xavier Benicasa

26 32

13

Modificadores de Acesso Exemplo cont...


class Principal { public static void main (String args[]) args[]) { Pessoa p1 = new Pessoa("Pedro Alvarez", "28.123.043-2", "28.123.043"Brasiliero", Brasiliero", 32,(float)1.75); 32,(float)1.75); Pessoa p2 = new Pessoa("Maria Madalena", "23.654.232-1", "23.654.232"Brasileira", 26,(float)1.70); 26,(float)1.70); p1.peso = 90; p1.nacionalidade = "Portugues"; "Portugues"; p1.MostraDados(); p1.MostraDados(); p2.MostraDados(); p2.MostraDados(); } }
UFS Programao II Prof Alcides Xavier Benicasa

27 32

Introduo Programao Orientada a Objetos

Modificadores de Acesso Exemplo cont...

Introduo Programao Orientada a Objetos

Erro?
Exception in thread "main" java.lang.Error: Unresolved "main" java. lang. Error: compilation problem: The final field Pessoa.peso cannot problem: be assigned at Principal.main(Principal.java:5) Principal.main(Principal.java:5)

// p1.peso = 90;

Analisando a Sada
Nome : Maria Madalena Identidade: 23.654.232-1 Nacionalidade : Brasileira Idade : 26 Peso : 80.0 Altura: 1.7
UFS Programao II Prof Alcides Xavier Benicasa

28 32

Nome : Pedro Alvarez Identidade: 28.123.043-2 Nacionalidade : Portugues Idade : 32 Peso : 80.0 Altura: 1.7

14

Exerccios

Praticando...

Exerccio - Restaurante Caseiro Hipottico Hipot Considerando o modelo abaixo, desenvolva o programa orientado a objetos.
Dados, informaes relevantes
Introduo Programao Orientada a Objetos
Mesa 1 Kg refeio refei Sobremesa Refrig. 2lt. Refrig. Refrig. 600ml Refrig. Refrig. Lata Refrig. Cerveja Mesa 4 Kg refeio refei Sobremesa Refrig. 2lt. Refrig. Refrig. 600ml Refrig. Refrig. Lata Refrig. Cerveja Mesa 5 Kg refeio refei Sobremesa Refrig. 2lt. Refrig. Refrig. 600ml Refrig. Refrig. Lata Refrig. Cerveja Mesa 2 Kg refeio refei Sobremesa Refrig. 2lt. Refrig. Refrig. 600ml Refrig. Refrig. Lata Refrig. Cerveja Mesa 3 Kg refeio refei Sobremesa Refrig. 2lt. Refrig. Refrig. 600ml Refrig. Refrig. Lata Refrig. Cerveja

Mesa 6 Kg refeio refei Sobremesa Refrig. 2lt. Refrig. Refrig. 600ml Refrig. Refrig. Lata Refrig. Cerveja

30 32

Operaes ou procedimentos
UFS Programao II Prof Alcides Xavier Benicasa

15

Bibliografia Bsica

Introduo Programao Orientada a Objetos

DEITEL E DEITEL. Java: como programar. Makron Books. 2. Edio.

31 32

UFS Programao II Prof Alcides Xavier Benicasa

Bibliografia Complementar

Introduo Programao Orientada a Objetos

BARNES, D.J.; KLLING, M. Programao orientada a objetos com Java: Uma Introduo Prtica Utilizando o Blue J. So Paulo: Editora Pearson, 2004. SANTOS, Rafael. Introduo Programao Orientada a Objetos usando Java. Rio de Janeiro: Elsevier, 2003.

32 32

UFS Programao II Prof Alcides Xavier Benicasa

16

Você também pode gostar