·
Cursos Gerais ·
Linguagens de Programação
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
19
Polimorfismo e Sobrecarga em Java: Conceitos e Exemplos
Linguagens de Programação
FIAP
66
Aula sobre Classes e Objetos em Java - Conceitos, Atributos e Metodos
Linguagens de Programação
FIAP
19
Polimorfismo e Sobrecarga em Java - Conceitos e Exemplos
Linguagens de Programação
FIAP
22
Java-Classes-Wrapper-Operadores-Estruturas-de-Decisao-Repeticao
Linguagens de Programação
FIAP
19
Polimorfismo e Sobrecarga em Java
Linguagens de Programação
FIAP
10
Conceitos de Herança em Programação Java
Linguagens de Programação
FIAP
1
Transmissão de Dados entre Cliente e Servidor em Java Swing
Linguagens de Programação
FIAP
66
Revisão de Classes e Objetos em Java - Conceitos e Exemplos Práticos
Linguagens de Programação
FIAP
49
Anotações sobre Herança em Programação Orientada a Objetos
Linguagens de Programação
FIAP
24
Aprendendo a Armazenar de Maneira Correta
Linguagens de Programação
FIAP
Texto de pré-visualização
Agenda para Aula 05 Revisão Classes e métodos Sobrecarga de Métodos Exercícios 1 2 Classes e Objetos Classe Abstração Molde Projeto Objeto Concreto Ocorrência real Instância Produto X Composição de uma Classe Uma classe é composta por Comportamentos ou operações Características ou atributos modelo Métodos ou funções Dados ou variáveis implementação 4 Exemplos usados durante aulas Classe String String s declara objeto s do tipo String s abcd instancia s na memória do comp char c scharAt i invoca método charAt a partir do objeto s Classe Scanner Scanner entrada declara objeto entrada entrada new ScannerSystemin instancia entrada int i entradanextInt invoca método 5 Exemplos de Classes e Objetos No contexto de uma rede social como você modelaria atributos e tarefas Usuário Gerente da rede No contexto de um banco como você modelaria atributos e tarefas Conta bancária Cliente 6 Exemplo Círculo Classe Círculo Atributos variáveis de instância Raio Métodos tarefas Alterar set informar get raio Calcular diâmetro Calcular área Calcular circunferência Exibir Dados Dúvidas por que diâmetro área e circunferência não são atributos Poderia ter mais atributos além do raio 7 Exemplo Chaves Métodos públicos Atributos 8 Cuidado Declarar mais de uma classe public no mesmo arquivo é um erro de compilação Porém podemos ter vários métodos public declarados em uma mesma classe Recomendase que atributos sejam privados encapsulamento Apesar de privados os atributos podem ser acessados ou alterados a partir de qualquer método 9 Programa usando classe Circulo Instancia objeto c do tipo Circulo Chama método exibeDados do objeto c Invocamos os métodos a partir do objeto Nesse exemplo o que será impresso 10 Invocando métodos Observe que não existe obrigatoriedade de chamar os métodos na ordem em que foram implementados Semelhante a um fornecedor de serviços o objeto instanciado disponibiliza todos os seus métodos entretanto o programa só utiliza aqueles que desejar na ordem que for relevante 11 Alterando o programa Chamando método com parâmetro E agora o que seria impresso Classe Circulo com Construtor Aloca memória e inicializa atributos do objeto Altera atributo com segurança encapsulamento Acessa valor armazenado no atributo 13 Importância do encapsulamento Porque encapsular e ocultar Criamos classes para clientes reuso Capacidade de usar sem conhecer detalhes internos Alterações na implementação não afetam cliente Garantia de acesso seguro aos dados Posso ter círculo com raio negativo Supondo que não a validação deve ser feita no método set Dúvidas 15 Sobrecarga de métodos O que é Recurso que permite que vários métodos com mesmo nome sejam definidos Obrigatório diferentes parâmetros quantidade tipos e ordem dos argumentos Apesar de ser bastante usada para definir vários construtores a sobrecarga também pode ser usada para sobrescrever outros métodos que não sejam construtores 16 Quantos construtores uma classe pode ter Nenhum construtor padrão não recomendável Apenas 1 construtor Vários construtores Para isso usaremos o recurso de sobrecarga 17 Exemplo inicial Classe Data construtor valida e atualiza atributos do objeto tipo Data 18 Criando a classe Data cont Implemente Método privado uso interno da classe 19 Teste da Classe Data public class TesteData public static void main String args Data data new Data06 04 2023 SystemoutprintlnMeu aniversário datatoString datasetData31 02 2023 SystemoutprintlnQue data é essa datatoString Teste sua classe 20 E se eu quisesse usar apenas algumas informações public class TesteData public static void main String args Data data1 data2 data3 data1 new Data12 09 2022 data2 new Data2021 data3 new Data12 2024 Systemoutprintln Hoje é data1toString ingressei no primeiro semestre de data2getAno e me formarei em data3getMes data3getAno 21 Construtores sobrecarregados Classe Data construtor existente public Data int d int m int a setDatad m a construtor com mês e ano public Data int m int a setData1 m a construtor com apenas ano public Data int a setData1 1 a 22 Incluir métodos get método público obtém dia public int getDia return dia método público obtém mês public int getMes return mes método público obtém ano public int getAno return ano 23 Teste Classe Data public class TesteData public static void main String args Data data1 data2 data3 data1 new Data12 09 2022 data2 new Data2021 data3 new Data12 2024 Systemoutprintln Hoje é data1toString ingressei no primeiro semestre de data2getAno e me formarei em data3getMes data3getAno Implemente e Teste Pergunta importante Sobrecarga de métodos só funciona para método construtor 24 VETORES Sintaxe tipodedado nomearray new tipodedadoquantidade tipodedado Tipo de dado primitivo ou classe nomearray Identificação ou nome do vetor 25 Os índices do vetor variam de 0 a N 120 2 13 25 8 12 15 30 5 9 0 1 2 3 4 5 6 7 8 9 jan fev mar Abr mai jun jul ago set out nov dez 0 1 2 3 4 5 6 7 8 9 10 11 Exemplos int VET new int10 String mes new String12 import javautilScanner 2 ÏÏÏ 3 ÏÕÖpublic class Vetor01 4 ÏÏ 5 ÏÏÏÞßàpublic static void main String args 6 ÏÏÏÏ 7 ÏÏÏϹíÏScanner leia new ScannerSystemin 8 ÏÏÏϹíÏint i quant0 total0 9 ÏÏÏϹíÏint N new int10 10 ÏÏÏÏ 11 ÏÏÏϹ¹ÏSystemoutprintDigite o numero de valores a inserir 10 12 ÏÏÏϹ¹Ïquant leianextInt 13 ÏÏÏÏ 14 ÏÏÏϹ¹for i0iquanti 15 ÏÏÏÏÏÏ5 16 ÏÏÏÏÏÏ7¹¹ÏSystemoutprintfDigite o valor d i1 17 ÏÏÏÏÏÏ7¹¹ÏNi leianextInt 18 ÏÏÏÏÏÏ7¹¹Ïtotal Ni total total Ni 19 ÏÏÏÏÏÏ 20 ÏÏÏÏ 21 ÏÏÏϹ¹ÏSystemoutprintlnValores do vetor 22 ÏÏÏϹ¹for i0 iquant i 23 ÏÏÏÏÏÏй¹ÏSystemoutprintNi 24 ÏÏÏÏ 25 ÏÏÏϹ¹ÏSystemoutprintln 26 ÏÏÏϹ¹ÏSystemoutprintlnSomatoria total 27 ÏÏÏϹ¹ÏSystemoutprintfA media 2f doubletotalquant 28 ÏÏÏÏ 29 ÏÏ 26 27 jGRASP exec java Vetor01 ¼¼MDigite o numero de valores a inserir 105 ¼¼MDigite o valor 110 ¼¼MDigite o valor 220 ¼¼MDigite o valor 330 ¼¼MDigite o valor 440 ¼¼MDigite o valor 550 MMMValores do vetor MMM10 20 30 40 50 MMMSomatoria 150 MMMA media 3000 MMM jGRASP operation complete Inicializando vetores na declaração class InicializaVetores 2 ÏÏ 3 ÏÏÏÞßàpublic static void mainString args 4 ÏÏÏÏ 5 ÏÏÏϹíÏdouble moeda 001 005 01 050 1 6 ÏÏÏÏ 1 centavo 5 centavos até 1 real 7 ÏÏÏϹ¹for int i0 imoedalengthi 8 ÏÏÏÏÏÏй¹ÏSystemoutprintfMoeda 2f moedai 9 ÏÏÏÏ 10 ÏÏ 28 M jGRASP exec java InicializaVetores MMMMoeda 001 MMMMoeda 005 MMMMoeda 010 MMMMoeda 050 MMMMoeda 100 MMM MMM jGRASP operation complete Arrays bidimensionais 0 1 0 notas00 notas01 1 notas10 notas11 2 notas20 notas21 29 Java não possui arrays bidimensionais no formato linha e coluna por exemplo mas é possível obter a mesma funcionalidade criando um array de array O seu formato é tipodedado nomearray new tipodedado índice1índice2 O programa a seguir armazena as duas notas de 3 alunos Para tanto será criado um vetor de vetor conforme a tabela a seguir O primeiro índice representa o aluno e o segundo representa a nota do aluno import javautilScanner class Matriz public static void main String args double notasnew double32 Scanner leia new ScannerSystemin double media int aluno nota for aluno0 aluno3 aluno for nota0 nota2 nota SystemoutprintAluno aluno1 digite a nota1 nota notasalunonota leianextDouble 30 Systemoutprintln SystemoutprintlnConsultando as notas de um aluno SystemoutprintlnDigite o no do aluno 13 aluno leianextInt SystemoutprintlnAluno aluno SystemoutprintlnNota 1 notasaluno10 SystemoutprintlnNota 2 notasaluno11 media notasaluno10 notasaluno112 SystemoutprintlnMedia media 31 Passagem de arrays para Métodos A passagem de arrays é sempre feita por referência endereço Veja o exemplo de ordenação de vetores 32 Passagem de arrays para Métodos import javautilScanner class Exemplo0804Teste public static void mainString args int N new int10 Scanner leia new ScannerSystemin for int i0 i10 i SystemoutprintDigite o numero i1 Ni leianextInt ordenaArrayIntN SystemoutprintlnEm ordem crescente mostraArrayN 33 public static void ordenaArrayInt int arr int x y aux for x0 xarrlengthx for y0 yarrlengthy if arrxarry aux arry arry arrx arrx aux public static void mostraArrayint arr for int i0 iarrlength i Systemoutprintarri 34 Agenda para Aula 07 Revisão atividades Modelagem UML Mais exercícios 35 36 Atividade Classe Data Altere a classe Data incluindo o método bissexto que informa se o ano é bissexto ou não booleano Utilize este método para validar a quantidade de dias de fevereiro Ativ Ano Bissexto private boolean bissextoint anoTeste if anoTeste40 anoTeste1000 anoTeste400 0 return true return false private int checkDia int diaTeste int diasMes0 31 28 31 30 31 31 30 31 30 31 31 if bissextoano diasMes2 29 if diaTeste 0 diaTeste diasMesmes return diaTeste SystemoutprintlnDia diaTeste inválido Configurado dia 1 return 1 39 Atividade Conta bancária Numa agência bancária as contas são identificadas por números de até 6 dígitos seguidos de um dígito verificador calculado da seguinte forma Ex Seja n 7314 o número da conta 1 Obtemos a soma dos dígitos de n s 7314 15 2 Obtemos o dígito verificador a partir do resto da divisão de s por 10 d s 10 15 10 5 O número da conta é 0073145 Dado um número de conta n exiba o número de conta completo correspondente DV Conta Corrente 41 Atividade Classe Triângulo Dados 3 valores verifique se os mesmos formam um triangulo ou não Caso afirmativo informe se é escaleno isósceles ou equilátero import javautilScanner public class DVContaCorrente public static void mainString args SystemoutprintlnPor favor entre com o numero da Conta Corrente Scanner sc new ScannerSystemin int s0 n dv int cc scnextInt n cc do s s n10 n n10 whilen 0 dv s10 SystemoutprintfConta corrente 06dd cc dv scclose 42 Funciona Double é diferente de double MODELAGEM DE SISTEMA Definição de classes Quem define que classes criar durante o desenvolvimento de um Sistema Que métodos criar para cada classe E quanto aos atributos Que tipos de dados eles devem armazenar Quantos devo criar Atividade Modelagem de sistema Realizada para elaborar e representar as soluções dadas ao sistema análise e projeto O que é Modelagem Ato de criar modelos Representação de algo do mundo real por meio de modelos Simplificação da realidade Ex planta de uma casa representa mas não é a casa Modelagem de sistemas representações do sistemas que desenvolvemos É importante Por quê Ajuda a 1 Compreender o sistema 2 Sair do mundo das ideias e para algo palpável 3 Perceber furos de entendimento antes de implementar 4 Ter compreensão única do sistema equipe e cliente Modelagem de sistemas tem como objetivos 1 Visualizar o sistema 2 Especificar estrutura e ou o comportamento do sistema 3 Proporcionar guia para construção 4 Documentar tomadas de decisões Escolha de modelos A escolha dos modelos pode influenciar na definição da solução Modelos estruturados soluções estruturadas Modelos orientados a objetos soluções O O Nenhum modelo único é suficiente Foco da disciplina Modelagem O O Representação mais próxima da nossa realidade Elementos base objetos ou classes Classes representam um conjunto de objetos Objetos possuem Identidade nome instância Comportamento métodos Estado associado a ele valores que pode assumir Abordagem bastante utilizada na construção de sistemas das mais variadas áreas dimensões e complexidades uso da linguagem UML UML Unified Modeling Language Linguagem para Visualização Especificação Construção e Documentação de artefatos de sistema de software Artefatos Requisitos do sistema modelos código de programa componentes executáveis arquitetura etc Diagramas UML Diagramas de estrutura 6 diagramas Representam a visão estática da aplicação São eles Classes Objetos Componentes Estrutura composta Pacotes Implantação Diagramas de Comportamento 3 diagramas Aspectos gerais de comportamento São eles Casos de uso Atividades Máquina de Estados Diagramas de Interação 4 diagramas Representa diferentes aspectos de interação entre classes e objetos deriva dos anteriores São eles Sequência Comunicação Tempo Diagrama geral de interação Fonte httpwwwumlorg Por que tantos diagramas Preciso implementar todos Representam as múltiplas visões do sistema Visão mais geral ou mais específica de acordo com o diagrama Descoberta de falhas anteriores Cada diagrama tem sua finalidade Ex Caso de uso classe sequência e atividade 1 Diagrama de Caso de uso 53 Diagrama mais geral da UML Base para desenvolvimento de outros diagramas Auxilia no levantamento e análise dos requisitos Linguagem simples e fácil compreensão para usuários do sistema Ideia geral de como o sistema se comporta Identifica atores do sistema usuários e outros softwares Elementos básicos Atores clientes sistemas Casos de uso funcionalidades do sistema Relacionamento relação entre as funcionalidades Associação simples Inclusão caso incluído sempre ocorre Extensão caso estendido pode ocorrer ou não Generalização herança 54 Exemplo Submissões para Congresso Congressos são encontros para comunicar trabalhos de pesquisadores artigos minicursos palestras etc Os trabalhos ao serem submetidos pelos pesquisadores passam por avaliadores que podem aceitar rejeitar ou sugerir alterações para os trabalhos Os seguintes exemplos são recortes de um sistema de Submissão para Congresso 55 Exemplo Sistema de controle de Submissões para Congresso Atores Casos de uso Relacionamentos Associação Extensão 2 Diagrama de Classes Define a estrutura das classes utilizadas pelo sistema Determina os atributos e métodos de cada classe Estabelecer como as classes se relacionam entre si Apoio para a maioria dos outros diagramas Mais utilizado e importante da UML Elemento básico Classe 58 Nome da Classe Atributos Métodos Exemplo Controle de Submissões Relação de Associação Multiplicidade mínmáx 0 1 33 Relação de Herança diferentes tipos de Submissão Diagrama de Classe Exemplo Círculo Visibilidade No jGrasp Crie um projeto e adicione as classes que fazem parte do projeto 3 Diagrama de sequência Preocupase com a ordem em que as mensagens são trocadas entre os objetos de determinado processo Baseiase em um Caso de Uso definido anteriormente Apoiase no Diagrama de Classes para determinar objetos envolvidos e os métodos disparados Exemplo Diagrama de Sequência Caso de uso Realizar Submissão 4 Diagrama de estados Identifica mudanças sofridas nos estados de instância de uma classe ou caso de uso ou subsistema ou sistema completo Baseiase em um Caso de Uso Apoiase no Diagrama de Classes Exemplo Estados Semáforo Exemplo Diagrama de Estados Caso de Uso Realizar submissão
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
19
Polimorfismo e Sobrecarga em Java: Conceitos e Exemplos
Linguagens de Programação
FIAP
66
Aula sobre Classes e Objetos em Java - Conceitos, Atributos e Metodos
Linguagens de Programação
FIAP
19
Polimorfismo e Sobrecarga em Java - Conceitos e Exemplos
Linguagens de Programação
FIAP
22
Java-Classes-Wrapper-Operadores-Estruturas-de-Decisao-Repeticao
Linguagens de Programação
FIAP
19
Polimorfismo e Sobrecarga em Java
Linguagens de Programação
FIAP
10
Conceitos de Herança em Programação Java
Linguagens de Programação
FIAP
1
Transmissão de Dados entre Cliente e Servidor em Java Swing
Linguagens de Programação
FIAP
66
Revisão de Classes e Objetos em Java - Conceitos e Exemplos Práticos
Linguagens de Programação
FIAP
49
Anotações sobre Herança em Programação Orientada a Objetos
Linguagens de Programação
FIAP
24
Aprendendo a Armazenar de Maneira Correta
Linguagens de Programação
FIAP
Texto de pré-visualização
Agenda para Aula 05 Revisão Classes e métodos Sobrecarga de Métodos Exercícios 1 2 Classes e Objetos Classe Abstração Molde Projeto Objeto Concreto Ocorrência real Instância Produto X Composição de uma Classe Uma classe é composta por Comportamentos ou operações Características ou atributos modelo Métodos ou funções Dados ou variáveis implementação 4 Exemplos usados durante aulas Classe String String s declara objeto s do tipo String s abcd instancia s na memória do comp char c scharAt i invoca método charAt a partir do objeto s Classe Scanner Scanner entrada declara objeto entrada entrada new ScannerSystemin instancia entrada int i entradanextInt invoca método 5 Exemplos de Classes e Objetos No contexto de uma rede social como você modelaria atributos e tarefas Usuário Gerente da rede No contexto de um banco como você modelaria atributos e tarefas Conta bancária Cliente 6 Exemplo Círculo Classe Círculo Atributos variáveis de instância Raio Métodos tarefas Alterar set informar get raio Calcular diâmetro Calcular área Calcular circunferência Exibir Dados Dúvidas por que diâmetro área e circunferência não são atributos Poderia ter mais atributos além do raio 7 Exemplo Chaves Métodos públicos Atributos 8 Cuidado Declarar mais de uma classe public no mesmo arquivo é um erro de compilação Porém podemos ter vários métodos public declarados em uma mesma classe Recomendase que atributos sejam privados encapsulamento Apesar de privados os atributos podem ser acessados ou alterados a partir de qualquer método 9 Programa usando classe Circulo Instancia objeto c do tipo Circulo Chama método exibeDados do objeto c Invocamos os métodos a partir do objeto Nesse exemplo o que será impresso 10 Invocando métodos Observe que não existe obrigatoriedade de chamar os métodos na ordem em que foram implementados Semelhante a um fornecedor de serviços o objeto instanciado disponibiliza todos os seus métodos entretanto o programa só utiliza aqueles que desejar na ordem que for relevante 11 Alterando o programa Chamando método com parâmetro E agora o que seria impresso Classe Circulo com Construtor Aloca memória e inicializa atributos do objeto Altera atributo com segurança encapsulamento Acessa valor armazenado no atributo 13 Importância do encapsulamento Porque encapsular e ocultar Criamos classes para clientes reuso Capacidade de usar sem conhecer detalhes internos Alterações na implementação não afetam cliente Garantia de acesso seguro aos dados Posso ter círculo com raio negativo Supondo que não a validação deve ser feita no método set Dúvidas 15 Sobrecarga de métodos O que é Recurso que permite que vários métodos com mesmo nome sejam definidos Obrigatório diferentes parâmetros quantidade tipos e ordem dos argumentos Apesar de ser bastante usada para definir vários construtores a sobrecarga também pode ser usada para sobrescrever outros métodos que não sejam construtores 16 Quantos construtores uma classe pode ter Nenhum construtor padrão não recomendável Apenas 1 construtor Vários construtores Para isso usaremos o recurso de sobrecarga 17 Exemplo inicial Classe Data construtor valida e atualiza atributos do objeto tipo Data 18 Criando a classe Data cont Implemente Método privado uso interno da classe 19 Teste da Classe Data public class TesteData public static void main String args Data data new Data06 04 2023 SystemoutprintlnMeu aniversário datatoString datasetData31 02 2023 SystemoutprintlnQue data é essa datatoString Teste sua classe 20 E se eu quisesse usar apenas algumas informações public class TesteData public static void main String args Data data1 data2 data3 data1 new Data12 09 2022 data2 new Data2021 data3 new Data12 2024 Systemoutprintln Hoje é data1toString ingressei no primeiro semestre de data2getAno e me formarei em data3getMes data3getAno 21 Construtores sobrecarregados Classe Data construtor existente public Data int d int m int a setDatad m a construtor com mês e ano public Data int m int a setData1 m a construtor com apenas ano public Data int a setData1 1 a 22 Incluir métodos get método público obtém dia public int getDia return dia método público obtém mês public int getMes return mes método público obtém ano public int getAno return ano 23 Teste Classe Data public class TesteData public static void main String args Data data1 data2 data3 data1 new Data12 09 2022 data2 new Data2021 data3 new Data12 2024 Systemoutprintln Hoje é data1toString ingressei no primeiro semestre de data2getAno e me formarei em data3getMes data3getAno Implemente e Teste Pergunta importante Sobrecarga de métodos só funciona para método construtor 24 VETORES Sintaxe tipodedado nomearray new tipodedadoquantidade tipodedado Tipo de dado primitivo ou classe nomearray Identificação ou nome do vetor 25 Os índices do vetor variam de 0 a N 120 2 13 25 8 12 15 30 5 9 0 1 2 3 4 5 6 7 8 9 jan fev mar Abr mai jun jul ago set out nov dez 0 1 2 3 4 5 6 7 8 9 10 11 Exemplos int VET new int10 String mes new String12 import javautilScanner 2 ÏÏÏ 3 ÏÕÖpublic class Vetor01 4 ÏÏ 5 ÏÏÏÞßàpublic static void main String args 6 ÏÏÏÏ 7 ÏÏÏϹíÏScanner leia new ScannerSystemin 8 ÏÏÏϹíÏint i quant0 total0 9 ÏÏÏϹíÏint N new int10 10 ÏÏÏÏ 11 ÏÏÏϹ¹ÏSystemoutprintDigite o numero de valores a inserir 10 12 ÏÏÏϹ¹Ïquant leianextInt 13 ÏÏÏÏ 14 ÏÏÏϹ¹for i0iquanti 15 ÏÏÏÏÏÏ5 16 ÏÏÏÏÏÏ7¹¹ÏSystemoutprintfDigite o valor d i1 17 ÏÏÏÏÏÏ7¹¹ÏNi leianextInt 18 ÏÏÏÏÏÏ7¹¹Ïtotal Ni total total Ni 19 ÏÏÏÏÏÏ 20 ÏÏÏÏ 21 ÏÏÏϹ¹ÏSystemoutprintlnValores do vetor 22 ÏÏÏϹ¹for i0 iquant i 23 ÏÏÏÏÏÏй¹ÏSystemoutprintNi 24 ÏÏÏÏ 25 ÏÏÏϹ¹ÏSystemoutprintln 26 ÏÏÏϹ¹ÏSystemoutprintlnSomatoria total 27 ÏÏÏϹ¹ÏSystemoutprintfA media 2f doubletotalquant 28 ÏÏÏÏ 29 ÏÏ 26 27 jGRASP exec java Vetor01 ¼¼MDigite o numero de valores a inserir 105 ¼¼MDigite o valor 110 ¼¼MDigite o valor 220 ¼¼MDigite o valor 330 ¼¼MDigite o valor 440 ¼¼MDigite o valor 550 MMMValores do vetor MMM10 20 30 40 50 MMMSomatoria 150 MMMA media 3000 MMM jGRASP operation complete Inicializando vetores na declaração class InicializaVetores 2 ÏÏ 3 ÏÏÏÞßàpublic static void mainString args 4 ÏÏÏÏ 5 ÏÏÏϹíÏdouble moeda 001 005 01 050 1 6 ÏÏÏÏ 1 centavo 5 centavos até 1 real 7 ÏÏÏϹ¹for int i0 imoedalengthi 8 ÏÏÏÏÏÏй¹ÏSystemoutprintfMoeda 2f moedai 9 ÏÏÏÏ 10 ÏÏ 28 M jGRASP exec java InicializaVetores MMMMoeda 001 MMMMoeda 005 MMMMoeda 010 MMMMoeda 050 MMMMoeda 100 MMM MMM jGRASP operation complete Arrays bidimensionais 0 1 0 notas00 notas01 1 notas10 notas11 2 notas20 notas21 29 Java não possui arrays bidimensionais no formato linha e coluna por exemplo mas é possível obter a mesma funcionalidade criando um array de array O seu formato é tipodedado nomearray new tipodedado índice1índice2 O programa a seguir armazena as duas notas de 3 alunos Para tanto será criado um vetor de vetor conforme a tabela a seguir O primeiro índice representa o aluno e o segundo representa a nota do aluno import javautilScanner class Matriz public static void main String args double notasnew double32 Scanner leia new ScannerSystemin double media int aluno nota for aluno0 aluno3 aluno for nota0 nota2 nota SystemoutprintAluno aluno1 digite a nota1 nota notasalunonota leianextDouble 30 Systemoutprintln SystemoutprintlnConsultando as notas de um aluno SystemoutprintlnDigite o no do aluno 13 aluno leianextInt SystemoutprintlnAluno aluno SystemoutprintlnNota 1 notasaluno10 SystemoutprintlnNota 2 notasaluno11 media notasaluno10 notasaluno112 SystemoutprintlnMedia media 31 Passagem de arrays para Métodos A passagem de arrays é sempre feita por referência endereço Veja o exemplo de ordenação de vetores 32 Passagem de arrays para Métodos import javautilScanner class Exemplo0804Teste public static void mainString args int N new int10 Scanner leia new ScannerSystemin for int i0 i10 i SystemoutprintDigite o numero i1 Ni leianextInt ordenaArrayIntN SystemoutprintlnEm ordem crescente mostraArrayN 33 public static void ordenaArrayInt int arr int x y aux for x0 xarrlengthx for y0 yarrlengthy if arrxarry aux arry arry arrx arrx aux public static void mostraArrayint arr for int i0 iarrlength i Systemoutprintarri 34 Agenda para Aula 07 Revisão atividades Modelagem UML Mais exercícios 35 36 Atividade Classe Data Altere a classe Data incluindo o método bissexto que informa se o ano é bissexto ou não booleano Utilize este método para validar a quantidade de dias de fevereiro Ativ Ano Bissexto private boolean bissextoint anoTeste if anoTeste40 anoTeste1000 anoTeste400 0 return true return false private int checkDia int diaTeste int diasMes0 31 28 31 30 31 31 30 31 30 31 31 if bissextoano diasMes2 29 if diaTeste 0 diaTeste diasMesmes return diaTeste SystemoutprintlnDia diaTeste inválido Configurado dia 1 return 1 39 Atividade Conta bancária Numa agência bancária as contas são identificadas por números de até 6 dígitos seguidos de um dígito verificador calculado da seguinte forma Ex Seja n 7314 o número da conta 1 Obtemos a soma dos dígitos de n s 7314 15 2 Obtemos o dígito verificador a partir do resto da divisão de s por 10 d s 10 15 10 5 O número da conta é 0073145 Dado um número de conta n exiba o número de conta completo correspondente DV Conta Corrente 41 Atividade Classe Triângulo Dados 3 valores verifique se os mesmos formam um triangulo ou não Caso afirmativo informe se é escaleno isósceles ou equilátero import javautilScanner public class DVContaCorrente public static void mainString args SystemoutprintlnPor favor entre com o numero da Conta Corrente Scanner sc new ScannerSystemin int s0 n dv int cc scnextInt n cc do s s n10 n n10 whilen 0 dv s10 SystemoutprintfConta corrente 06dd cc dv scclose 42 Funciona Double é diferente de double MODELAGEM DE SISTEMA Definição de classes Quem define que classes criar durante o desenvolvimento de um Sistema Que métodos criar para cada classe E quanto aos atributos Que tipos de dados eles devem armazenar Quantos devo criar Atividade Modelagem de sistema Realizada para elaborar e representar as soluções dadas ao sistema análise e projeto O que é Modelagem Ato de criar modelos Representação de algo do mundo real por meio de modelos Simplificação da realidade Ex planta de uma casa representa mas não é a casa Modelagem de sistemas representações do sistemas que desenvolvemos É importante Por quê Ajuda a 1 Compreender o sistema 2 Sair do mundo das ideias e para algo palpável 3 Perceber furos de entendimento antes de implementar 4 Ter compreensão única do sistema equipe e cliente Modelagem de sistemas tem como objetivos 1 Visualizar o sistema 2 Especificar estrutura e ou o comportamento do sistema 3 Proporcionar guia para construção 4 Documentar tomadas de decisões Escolha de modelos A escolha dos modelos pode influenciar na definição da solução Modelos estruturados soluções estruturadas Modelos orientados a objetos soluções O O Nenhum modelo único é suficiente Foco da disciplina Modelagem O O Representação mais próxima da nossa realidade Elementos base objetos ou classes Classes representam um conjunto de objetos Objetos possuem Identidade nome instância Comportamento métodos Estado associado a ele valores que pode assumir Abordagem bastante utilizada na construção de sistemas das mais variadas áreas dimensões e complexidades uso da linguagem UML UML Unified Modeling Language Linguagem para Visualização Especificação Construção e Documentação de artefatos de sistema de software Artefatos Requisitos do sistema modelos código de programa componentes executáveis arquitetura etc Diagramas UML Diagramas de estrutura 6 diagramas Representam a visão estática da aplicação São eles Classes Objetos Componentes Estrutura composta Pacotes Implantação Diagramas de Comportamento 3 diagramas Aspectos gerais de comportamento São eles Casos de uso Atividades Máquina de Estados Diagramas de Interação 4 diagramas Representa diferentes aspectos de interação entre classes e objetos deriva dos anteriores São eles Sequência Comunicação Tempo Diagrama geral de interação Fonte httpwwwumlorg Por que tantos diagramas Preciso implementar todos Representam as múltiplas visões do sistema Visão mais geral ou mais específica de acordo com o diagrama Descoberta de falhas anteriores Cada diagrama tem sua finalidade Ex Caso de uso classe sequência e atividade 1 Diagrama de Caso de uso 53 Diagrama mais geral da UML Base para desenvolvimento de outros diagramas Auxilia no levantamento e análise dos requisitos Linguagem simples e fácil compreensão para usuários do sistema Ideia geral de como o sistema se comporta Identifica atores do sistema usuários e outros softwares Elementos básicos Atores clientes sistemas Casos de uso funcionalidades do sistema Relacionamento relação entre as funcionalidades Associação simples Inclusão caso incluído sempre ocorre Extensão caso estendido pode ocorrer ou não Generalização herança 54 Exemplo Submissões para Congresso Congressos são encontros para comunicar trabalhos de pesquisadores artigos minicursos palestras etc Os trabalhos ao serem submetidos pelos pesquisadores passam por avaliadores que podem aceitar rejeitar ou sugerir alterações para os trabalhos Os seguintes exemplos são recortes de um sistema de Submissão para Congresso 55 Exemplo Sistema de controle de Submissões para Congresso Atores Casos de uso Relacionamentos Associação Extensão 2 Diagrama de Classes Define a estrutura das classes utilizadas pelo sistema Determina os atributos e métodos de cada classe Estabelecer como as classes se relacionam entre si Apoio para a maioria dos outros diagramas Mais utilizado e importante da UML Elemento básico Classe 58 Nome da Classe Atributos Métodos Exemplo Controle de Submissões Relação de Associação Multiplicidade mínmáx 0 1 33 Relação de Herança diferentes tipos de Submissão Diagrama de Classe Exemplo Círculo Visibilidade No jGrasp Crie um projeto e adicione as classes que fazem parte do projeto 3 Diagrama de sequência Preocupase com a ordem em que as mensagens são trocadas entre os objetos de determinado processo Baseiase em um Caso de Uso definido anteriormente Apoiase no Diagrama de Classes para determinar objetos envolvidos e os métodos disparados Exemplo Diagrama de Sequência Caso de uso Realizar Submissão 4 Diagrama de estados Identifica mudanças sofridas nos estados de instância de uma classe ou caso de uso ou subsistema ou sistema completo Baseiase em um Caso de Uso Apoiase no Diagrama de Classes Exemplo Estados Semáforo Exemplo Diagrama de Estados Caso de Uso Realizar submissão