instituto de informática estruturade’dados’ii · 2 programação em java...

39
Estrutura de Dados II Revisão de Métodos em Classes Aplicada a Estrutura de Dados Básicas 20/08/2018 Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos Instituto de Informática

Upload: hoangcong

Post on 02-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Estrutura  de  Dados  II    

 Revisão  de  Métodos  em  Classes  Aplicada  a  Estrutura  de  Dados  Básicas  

 

20/08/2018    

Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos  

Instituto de Informática

2

Programação em Java

q O  código  fonte  em  Java  estão  con8dos  nas   Classes   que   são   a   unidade   de  programação  Java    – Java  tem  foco  em  substan8vos  (classes)    

• Linguagens  Procedurais  e  impera8vas  como  C  tem  foco  em  verbos  com  ações  orientadas  con8das   em   um   programa   fonte   (código  fonte  em  C)  

3

Programação em Java

q Classe  é  um  padrão  para  a  construção  de  objetos  em  Java  

• Objetos  são  criados  a  par8r  da  classe  • Tipos   de   dados   pré-­‐definidos   (como  inteiros)   são   variáveis   de   uma   classe   de  objetos  pré-­‐definidos  

• Tipos  definidos  pelo  usuário  são  objetos  

4

Classes em Java

q As  classes  contém  métodos  

• Implementa  comportamentos  

q As  Classes  contém  dados    • Implementa  atributos  

q As  Classes  são  reu8lizáveis  

q Variáveis  ou  Atributos  de  dados   (declarados  no  bloco  da  classe):  podem  ser  usados  em  qualquer  lugar  (qualquer  bloco)  da  classe  –  uso  em  outras  classes  depende  de  modificadores  de  acesso  (public,  private,  etc);  

–  existem   enquanto   o   objeto   exis8r   (ou   enquanto   a  classe  exis8r,  se  declarados  sta8c).  

Recordando Escopo de Variáveis em Java

5

q Variáveis  locais  (declaradas  dentro  de  blocos  de  procedimentos)  –  existem   enquanto   o   procedimento   (método,   bloco  de  controle  de  execução)  es8ver  sendo  executado;  

–  não  pode  ser  usado  fora  do  bloco;  –  não   pode   ter   modificadores   de   acesso   (private,  public,  etc).  

Recordando Escopo de Variáveis em Java

6

q Variáveis   Globais   (declaradas   dentro   de   uma  classe)  

q Variáveis  locais  (declaradas  dentro  de  blocos  de  procedimentos)  –  existem   enquanto   o   procedimento   (método,   bloco  de  controle  de  execução)  es8ver  sendo  executado;  

–  não  pode  ser  usado  fora  do  bloco;  –  não   pode   ter   modificadores   de   acesso   (private,  public,  etc).  

Recordando Escopo de Variáveis em Java

7

8

Exemplo de Escopo numa Classe

Definindo atributos de uma classe em Java

q Um   atributo   ou   variável   de   uma   classe   tem   a  seguinte  estrutura  genérica:  

<visibilidade> <tipo><nomeVariavel>

9

Modificadores de acesso p/ atributos ou variáveis

q <visibilidade>   -­‐   é   o   modificador   de   acesso   para   o  atributo,  podendo  ser:  –  public  :  poderá  ser  acessado  por  qualquer  classe.  –  private  :  só  poderá  ser  acessado  dentro  da  mesma  classe.  –  protected   :   só   poderá   ser   acessado   por   classes   do   mesmo  pacote   ou   por   subclasses   (veremos   isto   quando   estudarmos  herança).  

–  default  (package)  :  só  poderá  ser  acessado  dentro  da  própria  classe   ou   por   classes   do   mesmo   pacote.   A   maioria   dos  autores  não  considera  default  como  modificado  de  acesso  e  sim  como  um  padrão  para  atributos  no  mesmo  pacote.  

  10

Exemplos em Java

class Carro { private String fabricante; private String placa; private int numeroPortas; private ...}

Palavras reservadas <visibilidade> Tipo do

Atributo <tipo>

Nome do Atributo <nomeVariavel>

11

q Vários   atributos   de   um   mesmo   8po  podem  ser  declarados  conjuntamente.  

q Podemos   especificar   que   um   atributo  deve   ser   inicializado   com   um   valor  específico.  

Atenção

12

Definindo atributos em Java

class Carro { private String fabricante, modelo; private String placa, chassi; private int numeroPortas, anoFabricacao; private String paisFabricacao = “Brasil”; private ...}

Indica Mudança de valor

Valor para inicialização

13

Definindo atributos em uma Classe (Exemplos)

class  Cliente  {          private  String  nome,  cpf;          private  String  rua,  cep,  cidade;          private  String  pais  =  “Brasil”;                  private  ...  }  

14

15

Métodos e Parâmetros

q Objetos   têm   operações   que   podem   ser  invocadas  (Java  as  chama  de  métodos).  

q Métodos   podem   ter   parâmetros   para   passar  informações   adicionais   necessárias   para   sua  execução.  

q Métodos   implementam   o   comportamento   dos  objetos.  

q Métodos  de  acesso  fornecem  informações  sobre  um  objeto  (estado  do  objeto).  

16

Métodos e Parâmetros

q Métodos  têm  uma  estrutura  que  consiste  em  um  cabeçalho  e  um  corpo.  

q O  cabeçalho  define  a  assinatura  do  método.  

       public  int  obterNumero()    q O  corpo  engloba  as  instruções  do  método.

17

Descrevendo um método em Java

public int obterNumero() { return numero; }

Tipo de retorno Nome do método

Lista de parâmetros (vazia)

Início e fim do corpo do método (bloco)

Instrução de retorno

Modificador de visibilidade

18

Métodos modificadores q Eles  têm  uma  estrutura  de  método  semelhante:  cabeçalho  e  corpo.  

q U8lizados  para  modificar  o  estado  de  um  objeto.  

q Alcançados  por  meio  da  modificação  do  valor  de  um  ou  mais  campos.  – Geralmente  contêm  instruções  de  atribuição.  

– Geralmente  recebem  parâmetros.  

19

Descrevendo Métodos modificadores

public void calcularSoma(int numero) { soma += numero; }

Tipo de retorno (void) Nome do método Parâmetro

Modificador de visibilidade

Instrução de atribuição

Campo sendo alterado

Métodos em Java Estrutura Genérica

q Um   método   de   uma   classe   tem   a   seguinte  estrutura  genérica:  

<visibilidade> <static> <tipo_retorno> <nome_método> (<parâmetros>){// corpo ou escopo do método}

20

Modificadores de acesso p/ Métodos

q <visibilidade>  -­‐  é  o  modificador  de  acesso  para  o  método,  podendo  ser:  –  public  :  o  método  poderá  ser  acessado  por  qualquer  classe.  

–  private  :  o  método  só  poderá  ser  acessado  dentro  da  mesma  classe.  

– protected : o método só poderá ser acessado por classes do mesmo pacote ou por subclasses (veremos isto em herança).

–  default   (package)   :  o  método  só  poderá  ser  acessado  dentro  da   própria   classe   ou   por   classes   do   mesmo   pacote.   Vários  autores   não   consideram   default   como   um   modificador   de  acesso  e  sim  como  um  padrão  para  pacote.   21

Modificadores de acesso p/ Métodos

q <staLc>  -­‐  modificador  que  define  se  o  método  é  de   classe   (com   sta8c)   ou   de   instância   (sem  sta8c).        Métodos   de   classe   podem   ser   chamado   sem   a  especificação  de  um  objeto.  

  Os  métodos  sta8c  tem  um  relacionamento  com  uma  classe  como  um  todo,  enquanto  os  métodos  que  não  são   sta8c   são   associados   a   uma   instância   de   classe  específica   (objeto)   e   podem   manipular   as   variáveis  de  instância  do  objeto.    

22

Declarando de Retorno em Métodos

q <Lpo_retorno>   -­‐   declaração   do  8po   de   retorno  do  método,  que  pode  ser  qualquer  um  dos  8pos  primi8vos,  qualquer  objeto.  

23

Declarando de Parâmetros em Métodos

q (<parâmetros>)  :  –    um   método   pode   ter   zero   ou   mais   argumentos,  também  chamados  parâmetros;  

–  cada   argumento   indicará   um   parte   da   informação  que  deve  ser  passada  ao  método  no  momento  de  sua  chamada;  

24

Declarando de Parâmetros em Métodos

q (<parâmetros>)  :  –  quando  houver  mais  de  um  argumento,  eles  devem  ser  separados  por  vírgulas;  

–  caso   o   método   não   receba   argumentos,   os  parênteses  devem  ser  deixados  vazios.  

25

Algumas regras aplicadas aos métodos

q Métodos   retornam,   no   máximo,   um   valor,  podendo  ser  uma  variável  ou  um  objeto;  

q Se  o  8po  de   retorno  do  método  não   for  void,  o  corpo   do   método   tem   de   ter   um   comando  return;  

26

Algumas regras aplicadas aos métodos

q Passagem  de  parâmetros  com  8po  diferente  dos  parâmetros   recebidos   (assinatura   do   método)  gera  erro  de  sintaxe;  

q É  importante  recordar  que  um  método  não  pode  ser   definido   dentro   de   outro  método,   pode   ser  chamado   de   um   outro   método   mas   não  declarado  dentro  de  outro;  

27

Definindo Métodos em Java

q   Um  método  pode  executar  várias  instruções,  mas  a  mais  simples  é  a  instrução  (comando)  de  atribuição:       atributo  =  expressão;       Exemplo:  x  =  3;  

28

Definindo Métodos em Java q Para   executar   a   instrução   de   atribuição   o  computador  – avalia  expressão,  obtendo  um  valor;  – Faz   com   que   o   novo   valor   de   atributo   seja   o  valor  gerado  pela  expressão.  

29

Definindo o método main em Java Exemplo

30

Métodos construtores q Métodos   construtores   são   métodos   especiais  definidos  com  o  mesmo  nome  da  classe;  

q Construtores   são   chamados   automa8camente  toda  vez  que  um  objeto  da  classe  é  criado;  

31

Métodos construtores q Os  métodos  construtores  servem  para  inicializar  as   variáveis   de   instância   de   seus   objetos   e   não  possuem  nenhum  valor  de  retorno.  

32

Exemplo de Métodos construtores

class  Cliente  {          private  String  nome,  cpf;  

           //  Construtor  para  classe  Cliente          Cliente  (String  nomeCliente,  String  cpfCliente)  {                    nome  =  nomeCliente;                    cpf  =  cpfCliente;          }  }  

33

Exercícios de Revisão envolvendo Classes, Vetores e Métodos

q Faça  uma  aplicação  em  Java  que  contenha  duas  classes  no  mesmo  pacote  chamadas  de  Vetores  e  MeusMetodos  e  quatro  métodos.  

q   A  classe  Vetores  deve  ter  o  método  principal  e  outro  método  escolhido  por  você  que  atenda  as  especificação  deste  enunciado.  

q    A   classe  MeusMetodos   deve   conter   os   outros  dois   métodos   que   também   atendam   as  especificação  deste  enunciado.    

   34

Exercícios de Revisão envolvendo Classes, Vetores e Métodos

q  Os   quatro  métodos   estão   descritos   abaixo   em  ordem  aleatória.  

−  Um   método   do   8po   privado   e   está8co.   Este  método  receba  como  parâmetros  um  número  a  ser  procurado  no  vetor,  o  tamanho  do  vetor  e  o  próprio   conteúdo   do   vetor   e   retorne   o  elemento  de  menor  valor  encontrado  no  vetor;  Os  números  são  do  8po  inteiro.  

35

Exercícios de Revisão envolvendo Classes, Vetores e Métodos

−  Um  método  cuja  assinatura  seja:    public  void  busca(int  x,  int  tam,  int  []  vetor);  Este   método   deve   imprimir   na   tela   o   número  procurado  e  a  posição  ou  posições  do  vetor  aonde  ele  se   encontra   ou,   alterna8vamente,   um   mensagem  informado   ao   usuário   que   o   referido   número   não   foi  encontrado  no  vetor.  

Os  parâmetros  são    x  é  o  número  procurado  no  vetor,  tam  é  o  tamanho  do  vetor  e  vetor  é  o  nome  do  vetor  com  todos  os  seus  elementos.  

36

Exercícios de Revisão envolvendo Classes, Vetores e Métodos

−  Um  método  do  8po  público.  Este  método  receba  como   parâmetros   um   número   a   ser   procurado  no   vetor,   o   tamanho   do   vetor   e   o   próprio  conteúdo   do   vetor   e   retorne   o   elemento   de  maior  valor  encontrado  no  vetor;  Os  números  são  do  8po  inteiro.  

   

   37

Exercícios de Revisão envolvendo Classes, Vetores e Métodos

−  Um   método   principal   que   declare   as   variáveis  necessárias  e  leia:  •  Os   elementos   de   um   vetor   de   números   inteiros   de  tamanho   definido   e   armazenado   em   uma   variável.  Neste   exercício   será   atribuído   7   a   está   variável.  Considere   que   os   elementos   do   vetor   estão   neste  intervalo  ]-­‐10000,  +10000[      

•  O  elemento  procurado  no  vetor.  

−  Chame   os   três   outros   métodos   e   imprima   os  resultados  necessários.  

   

38

Exemplo de Input e Output Válidos para o Exercício de Revisão

39