Classes e Objetos

1.038 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.038
No SlideShare
0
A partir de incorporações
0
Número de incorporações
471
Ações
Compartilhamentos
0
Downloads
30
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Classes e Objetos

  1. 1. Tecnologia em Sistemas para Internet - IFMSAula 03 – Classes e Objetos Estruturas de Dados Prof.º Msc. Sidney Roberto de Sousa
  2. 2. O que veremos nesta aula?● Classes● Uso de classes para encapsular tipos complexos● Objetos● Matrizes de classes Tec. em Sistemas para Internet - IFMS 2
  3. 3. Problema● Imagine que temos que criar um sistema para cadastrar alunos de um colégio● Primeiramente, devemos levantar quais são os dados de cada aluno a serem cadastrados● Uma vez que estes dados sejam levantados, devemos modelá-los Tec. em Sistemas para Internet - IFMS 3
  4. 4. Dados do alunoAluno: Matrícula: Número Nome Completo: Texto Sexo: Caractere CPF: Número Data de Nascimento: Data Telefone: Número Tec. em Sistemas para Internet - IFMS 4
  5. 5. Dados do alunoAluno: Matrícula: Número Nome Completo: Texto Preciso armazenar Sexo: Caractere como numérico? CPF: Número Data de Nascimento: Data Telefone: Número Tec. em Sistemas para Internet - IFMS 5
  6. 6. Dados do alunoAluno: Matrícula: Texto Nome Completo: Texto Sexo: Caractere CPF: Texto Data de Nascimento: Data Telefone: Texto Tec. em Sistemas para Internet - IFMS 6
  7. 7. Lendo dados de um alunoString matricula = “”;String nomeCompleto = “”;char sexo = ;String cpf = “”;Date dataNascimento = null;String telefone = “”;// Deve agora realizar a leitura dos dados do aluno... Tec. em Sistemas para Internet - IFMS 7
  8. 8. Problema● Eu tenho que “guardar” todas as variáveis contendo os dados do aluno cadastrado → 6 variáveis● Se eu tiver 10 alunos, tenho que criar 60 variáveis...● Solução: poderia utilizar matrizes! Tec. em Sistemas para Internet - IFMS 8
  9. 9. Lendo dados de um alunoString[] matriculas = new String[10];String[] nomesCompletos = new String[10];char[] sexos = new char[10];String[] cpfs = new String[10];Date[] datasNascimento = new Date[10];String[] telefones = new String[10];// Deve agora realizar a leitura dos dados dos alunos... Tec. em Sistemas para Internet - IFMS 9
  10. 10. Problema● Agora ao invés de 60 variáveis, eu tenho apenas 6, mas...● … será que esta é a melhor solução? – Para trabalhar com os dados dos alunos, o meu programa necessitará guardar 6 matrizes – Falta de centralização dos dados → maior complexidade de desenvolvimento● Solução: precisamos de um tipo de dados complexo para encapsular os dados de cada aluno Tec. em Sistemas para Internet - IFMS 10
  11. 11. Tipo de dados complexo● Encapsula um ou mais campos de dados de acordo com um modelo específico● No nosso exemplo, o modelo se refere a um aluno● Em Java, tipos complexos são modelados como classes Tec. em Sistemas para Internet - IFMS 11
  12. 12. Classe Aluno (abaixo no blog) Tec. em Sistemas para Internet - IFMS 12
  13. 13. Métodos e atributos● Uma classe Java é composta basicamente por atributos e métodos● Um atributo é uma propriedade da classe● Um método é um bloco de código que tem como finalidade executar alguma tarefa → usando ou não os atributos da classe Tec. em Sistemas para Internet - IFMS 13
  14. 14. Métodos e atributos● Atributos e métodos podem ter acesso privado, protegido ou público – Se privado, não é visível por outras classes – Se protegido, é visível por classes do mesmo pacote ou subclasses (veremos isto futuramente...) – Se público, é visível por qualquer outra classe● Todo atributo e método é visível por qualquer outro atributo/método dentro da própria classe● Atributos costumam ser definidos com acesso privado → proteção e encapsulamento dos atributos da classe● O nível de acesso de um método depende de para quem queremos disponibilizá-lo Tec. em Sistemas para Internet - IFMS 14
  15. 15. Getters e Setters● Como dito anteriormente, atributos de classes costumam ser definidos como privados● Assim, o acesso aos valores dos atributos é feito por meio de métodos● Um método que retorna o valor de um atributo da classe é popularmente chamado de getter● Um método que modifica o valor de um atributo da classe é popularmente chamado de setter Tec. em Sistemas para Internet - IFMS 15
  16. 16. Analisando a classe Alunoprivate String matricula;// Método getter para o atributo matriculapublic String getMatricula() {    return matricula;}// Método setter para o atributo matrículapublic void setMatricula(String matricula) {    this.matricula = matricula;} Tec. em Sistemas para Internet - IFMS 16
  17. 17. Analisando a classe Alunoprivate String matricula;// Método getter para o atributo matriculapublic String getMatricula() { Retorna um valor do    return matricula; tipo String}// Método setter para o atributo matrícula Não retorna nenhumpublic void setMatricula(String matricula) {    this.matricula = matricula; valor; por isto o tipo de} retorno é void Tec. em Sistemas para Internet - IFMS 17
  18. 18. Analisando a classe Alunoprivate String matricula; Note que o nome do atributo matricula// Método getter para o atributo matricula conflita com o nomepublic String getMatricula() { do parâmetro    return matricula; matricula do método setMatricula.} A palavra reservada this assegura que a// Método setter para o atributo matrícula variável sendopublic void setMatricula(String matricula) { utilizada é o atributo matricula    this.matricula = matricula; pertencente à classe} Aluno. Tec. em Sistemas para Internet - IFMS 18
  19. 19. Lendo dados de um aluno com a classe Aluno Classe LeituraAluno (abaixo no blog) Tec. em Sistemas para Internet - IFMS 19
  20. 20. Analisando a classe LeituraAluno● Na classe LeituraAluno não precisamos importar explicitamente a classe Aluno, pois as duas classes estão no mesmo pacote● Desta forma, a classe LeituraAluno consegue enxergar todos os atributos/métodos da classe Aluno que sejam protegidos ou públicos aluno.setMatricula(textoDigitado) aluno.getNomeCompleto()● Note que o acesso aos atributos ou métodos da classe Aluno por meio do objeto aluno se dá utilizando o operador ponto (.) Tec. em Sistemas para Internet - IFMS 21
  21. 21. Analisando a classe LeituraAluno● Notou a forma “peculiar” que o programa lê a data de nascimento do aluno?● … falaremos disso mais tarde! :D Tec. em Sistemas para Internet - IFMS 22
  22. 22. Lendo dados de vários alunos● Para armazenar os dados de vários alunos lidos do usuário, podemos utilizar uma matriz● Para tanto, basta instanciar uma matriz de objetos da classe Aluno Tec. em Sistemas para Internet - IFMS 23
  23. 23. Lendo dados de vários alunos com a classe Aluno Classe LeituraVariosAlunos Tec. em Sistemas para Internet - IFMS 24
  24. 24. Analisando a classe LeituraVariosAlunos● A instanciação de matrizes de tipos complexos se dá em dois passos● Primeiramente, devemos instanciar a matriz informando o número de elementos que ela terá Aluno[] alunos = new Aluno[10];● Por fim, devemos instanciar cada elemento da matriz individualmente antes de utilizá-lo alunos[i] = new Aluno();● Cada elemento da matriz é tratado como um objeto comum alunos[i].setCpf(textoDigitado); Tec. em Sistemas para Internet - IFMS 25
  25. 25. ReferênciasHORSTMANN, C. S.; CORNELL, G. Core Java. Oitava edição. PearsonPrentice Hall. São Paulo, 2010. Tec. em Sistemas para Internet - IFMS 26

×