Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Documentos relacionados
Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Linguagem de Programação III

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Estruturas de Controle em c#

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Análise de Programação

Algoritmos II prof. Daniel Oliveira

Variáveis primitivas e Controle de fluxo

INSTRUÇÕES DE REPETIÇÃO

Aula 4 Estruturas de Controle

Classes e Objetos. Sintaxe de classe em Java

Seleção Múltipla Laços (while, do-while, for) AULA 05

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Linguagem de Programação II Implementação

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Array em Java. Figura 1 - Exemplo de um array de inteiros

Genéricos. Profa. Thienne Johnson EACH/USP

Linguagem Java - Introdução

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Classes e Objetos. Prof. Leonardo Barreto Campos 1

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Orientação a Objetos e Java

Sintaxe Básica de Java Parte 2

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Tipos, Literais, Operadores

Tipos, Literais, Operadores

AULA 6 - ARRAYS. Array de 10 elementos

Programação Estruturada e Orientada a Objetos

Linguagem de Programação III

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Estruturas de Decisão

Estruturas de Condição, Iteração, Arrays e Enumareção

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Introdução à Linguagem de Programação Java 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA

Lição 7 Array em Java

Palavras Reservadas da Linguagem Java

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Técnicas de Programação:

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Linguagem de Programação II Implementação

Programação Orientada a Objetos

Idiomas de Programação

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Estruturas de Controle

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

CURSO DE POO COM JAVA

Métodos Computacionais. Comandos Condicionais e de Repetição em C

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

COMPORTAMENTOS - Observações

Instituto de Informática Estrutura de Dados II

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Sintaxe Básica do Java. João Paulo Q. dos Santos

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Revisão C++ - Parte 1

Arrays (Vetores) Arrays (Vetores) 28/04/ Índices. profs. } Ex1: Se eu preciso manipular 100 nomes de pessoas ao mesmo tempo... é melhor...

Universidade Estadual de Santa Cruz

Desenvolvimento de Aplicações Desktop

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores. Empacotador de Pré-processador. Empacotador de. Primeiro Exemplo Usando Classes em C++

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

Introdução ao Java. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Unidade 2: Linguagem Java Para Programadores C Variáveis, Operadores, Estruturas Prof. Daniel Caetano

5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias.

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1

Variáveis Compostas. Vanessa Braganholo

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

JAVA NETBEANS Aula PGOO Prof. Daniela Pires Conteúdo

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

Estrutura de Dados Funções e Procedimentos

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

LINGUAGEM C: ARRAY: VETORES E MATRIZES

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

Lógica de Programação. Lógica de Programação com Java

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Ambientação com a Sintaxe de Java: parte 1

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Classes, Métodos e Propriedades

Linguagens de Programação

Operadores e Estruturas de Decisão. Vanessa Braganholo

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Java Como Programar, 8/E

Introdução a classes e objetos. Copyright 2006 by Pearson Education

Unidade 8: Sobrecarga de Funções e Vetores e Matrizes (Arrays) Prof. Daniel Caetano

Transcrição:

Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for Instruções break e continue Variável de instância final Arrays Método tostring Referência this Sobrecarga de Construtores e Métodos

Estruturas de Seleção Seleção: if if (nota >=60) System.out.println( Aprovado ); Seleção: if... else if (nota >=0) System.out.println( Aprovado ); else System.out.println( Reprovado );

Estruturas de Seleção Instruções if... else aninhadas if (nota < 40) System.out.println( Reprovado ); else if (nota < 60) System.out.println( Recuperação ); else System.out.println( Aprovado );

Estruturas de Seleção Operador condicional (? : ) System.out.println( nota>=60? Aprovado : Reprovado ); O 1º operando é uma expressão booleana (true ou false) O 2º é o valor da expressão condicional se a expressão booleana for true O 3º é o valor da expressão condicional se a expressão booleana for false

Estruturas de Seleção Instrução switch Realizar diferentes ações baseadas nos possíveis valores de uma variável de inteiro ou expressão Cada ação está associada com o valor de uma expressão integral constante (byte, short, int, ou char)

Estruturas de Seleção switch(condição) { case constante: instrução; break; case constante: instrução; break; default: instrução; }

Estruturas de Repetição Comando while int valor = 3; while (valor < 100) valor = 3 * valor;

Estruturas de Repetição Comando do... while Testa a condição de continuação do loop depois de executar o corpo do loop Sempre executa pelo menos uma vez do{ instrução; } while (condição)

Estruturas de Repetição do... while - Exemplo int cont = 1; do { System.out.printf( %d, cont); ++cont; } while (cont <=10)

Estruturas de Repetição Comando for for (cont=1; cont<=10; cont++) System.out.printf( %d, cont); Forma geral for (inicialização; condicaoparada; incremento) instrução;

Instruções Break e Continue Usadas para alterar o fluxo de controle Instrução break - Quando usada em um while, for, do... while ou switch, ocasiona sua saída imediata dessa instrução A execução continua com a primeira instrução depois da instrução de controle

Break Instruções Break e Continue for (cont=1; cont <=10; cont++) { if (cont == 5) break; System.out.printf( %d, cont); } Esse código imprime 1 2 3 4

Instruções Break e Continue Instrução Continue Quando executada em um while, for ou do while pula as instruções restantes no corpo do loop e prossegue com a próxima iteração do loop

Instruções Break e Continue Continue for (cont = 1; cont <=10; cont++) if (cont == 5) continue; System.out.printf( %d, cont); } Esse código imprime 1 2 3 4 6 7 8 9 10

Operadores de atribuição composto Usados para abreviar instruções de atribuição Ex: c = c + 3; c+= 3; Operadores de atribuição: 1) += 2) -= 3) *= 4) /= 5) %=

Variáveis de instância final A palavra-chave final serve para especificar que uma variável não é modificável (é uma constante) e que qualquer tentativa de modificar é um erro Ex: private final int incremento;

Arrays É um grupo de variáveis que contém valores que são todos do mesmo tipo Os arrays são objetos tipos por referência Os elementos de um array podem ser tipos primitivos ou por referência O número de posição do elemento é chamado índice

Arrays Um programa refere-se aos elementos do array usando o nome do array seguido pelo índice do elemento entre colchetes ([]) O primeiro elemento do array tem índice zero Um programa pode usar uma expressão como índice em um array Um array possui o membro length que fornece o comprimento do array

Arrays Para criar arrays usa-se a palavra-chave new, especificando o tipo dos elementos do array e o número de elementos. Ex 1: int c[] = new int [12]; Ex 2: int c[]; c = new int[12];

Arrays Um programa pode criar vários arrays em uma única declaração Ex 1: String b[] = new String[100], x[] = new String[27]; Ex 2: String b[] = new String[100]; String x[] = new String[27];

Arrays Os colchetes podem aparecer 1) double[] array1, array2; 2) double array1[]; 3) double[] array1; Exemplo array int array[] = new int[10]; for (int c=0; c<array.length; c++) System.out.println(array[c]);

Arrays public class IniciaArray { public static void main (String args[]) { int array[]; array = new int[10]; for (int cont=0; cont < array.length; cont++) array[cont] = 2+2*cont; } }

Arrays Um programa pode criar e inicializar um array Ex: int n[] = {10, 20, 30, 40} Neste caso não é necessário utilizar a palavrachave new

Estrutura for aprimorada Itera os elementos de um array sem utilizar um contador for (parâmetro : array) instrução; Ex: int array[] = {88,94,100,24,75,78} int total = 0; for (int nro: array) total += nro;

Arrays Multidimensionais Os arrays bidimensionais são usados para representar tabelas (linhas e colunas) Para identificar um elemento deve-se informar 2 índices O Java permite especificar arrays unidimensionais cujos elementos são também arrays unidimensionais alcançando assim um array bidimensional

Arrays Multidimensionais Cada elemento do array é acessado por a[linha][coluna] Exemplos 1) int b[][] = {{1,2}, {3,4}}; 2) int b[][] = {{1,2}, {3,4,5}};

Arrays Multidimensionais Exemplos 1) int b[][]; b = new int [3][4]; 2) int b [][]; b = new int [2][]; b[0] =new int[5]; b[1] = new int[3];

Passando arrays para métodos Para passar um array para um método especifique o nome do array sem nenhum colchete Quando um argumento para um método for um array ou elemento de um array de um tipo por referência, o método recebe uma cópia da referência Quando um argumento para um método for um elemento do array de um tipo primitivo, o método recebe uma cópia do valor do elemento

Passagem por valor e referência O Java não permite ao programador escolher entre passar por valor ou passar por referência Todos os argumentos são passados por valor Cópias de valores primitivos Cópias de referência para objetos

Exercício Array 1 Crie uma classe Curso, que contém Um atributo nomecurso Um atributo notas do tipo array com 10 posições Um construtor para setar o valor dos atributos Os métodos get e set para os atributos Um método que calcula a média das notas Um método que calcula a maior nota Crie uma classe para testes

Exercício Array 2 Crie uma classe carro, que contém Um atributo modelo do carro Um atributo ano de fabricação Um atributo preço do carro (indicando o preço do carro em diferentes concessionárias) do tipo array com 5 posições Um construtor para inicializar os atributos Métodos get e set para cada atributo Métodos para encontrar o maior preço de um modelo carro Método para encontrar o menor preço de um modelo de carro Método para calcular o preço médio de um determinado modelo de carro

Método tostring public class Tempo { private int hora; private int minuto; private int segundo; public void settempo(int h, int m, int s) { hora = ((h>=0 && h<24)? h : 0); minuto = ((m>=0 && m<60)? m : 0); segundo = ((s>=0 && s<60)? s : 0); }

Método tostring } public String tostring() { return String.format( %d:%d:%d,hora, minuto, segundo); } O método tostring não recebe argumentos e retorna uma string em formato de hora padrão que consiste nos valores de hora, minuto e segundo separados por dois pontos.

Método tostring A classe tempo não declara um construtor, portanto, ela tem um construtor padrão (default) O método settempo é usado para configurar data/hora. Uma expressão condicional testa se cada argumento está dentro do intervalo especificado

Referência this Cada objeto pode acessar uma referência a si próprio com a palavra-chave this Quando um método não-static é chamado por um objeto particular, o corpo do método utiliza implicitamente a palavra this para referenciar as variáveis de instância do objeto e outros métodos

Referência this

Referência this

Referência this No exemplo anterior duas classes foram declaradas dentro de um mesmo arquivo (TesteThis e Tempo) Quando um arquivo.java é compilado e contém mais de uma classe, o compilador produz um arquivo separado da classe com a extensão.class para cada classe compilada Nesse caso, somente uma classe pode ser declarada como public

Referência this Observe que no exemplo anterior o nome dos parâmetros para o construtor são idênticos aos nomes das variáveis de instância da classe Se um método contiver uma variável local com o mesmo nome de um atributo, esse método vai referenciar a variável local ao invés do atributo

Sobrecarga de construtores Uma classe pode ter vários construtores sobrecarregados permitindo que objetos dessa classe sejam inicializados de diferentes maneiras Para sobrecarregar construtores, basta fornecer múltiplas declarações de construtor com assinaturas diferentes As regras para sobrecarga de construtores são: - A lista de parâmetros tem que mudar - O modificador de acesso pode mudar

Sobrecarga de construtores class Sobrecarga1 { private int num1; private int num2; Escreva três construtores Sobrecarga1(){} Sobrecarga1(int p){ num1 = p; num2 = 0; } } Sobrecarga1 (int p, int s){ num1 = p; num 2 = s; }

Referência this Você pode chamar um construtor dentro de outro construtor através da palavra-chave this: ContaBancaria() { this (, 0.0, false); } ContaBancaria(String nome, double saldo, boolean ehespecial) { this.nome = nome; this.saldo = saldo; this.ehespecial = ehespecial }

ContaBancaria() { this (, 0.0, false); } ContaBancaria(String nome, double saldo, boolean ehespecial) { this.nome = nome; this.saldo = saldo; this.ehespecial = ehespecial } O segundo construtor é apelidado completo, pois inicializa todos os atributos da classe. O primeiro construtor não recebe nenhum argumento e passa o nome do correntista como uma string vazia. A instrução this deve vir sempre na primeira linha do construtor.

Sobrecarga de construtores Outro exemplo

Sobrecarga de construtores

Sobrecarga de métodos É a capacidade de possuir métodos diferentes com mesmo nome, mas com parâmetros diferentes O interpretador determinará qual método deve ser invocado pelo tipo de parâmetro passado. Os trecho abaixo é válido para uma compilação Java. public void imprimir ( int i ) {... } public void imprimir ( float f ) {... } public void imprimir ( String s) {... }

Sobrecarga de métodos Criar métodos com o mesmo nome, mas com diferentes parâmetros e/ou diferente tipo de retorno As regras para sobrecarga de métodos são: - O nome do método tem que ser o mesmo - A lista de parâmetros tem que mudar - O tipo de retorno pode mudar - O modificador de acesso pode mudar

Sobrecarga de métodos public int soma(int x, int y) { return x + y; } public double soma(double x, double y) { return x + y; } public String soma(string x, String y) { return x + y; }

Sobrecarga de métodos Dado o método: void teste (int i, String s){ } Exemplo válido de sobrecarga void teste (String s, int i){ } Exemplo inválido de sobrecarga void teste (int j, String k){ }

Exercício 1) Escreva 3 exemplos válidos de sobrecarga para o método: public void sobrecarga (int x, String y, float z){ } Regras de sobrecarga: - O nome do método tem que ser o mesmo - A lista de parâmetros tem que mudar - O tipo de retorno pode mudar - O modificador de acesso pode mudar

Exercício 2) Crie um a classe retângulo que possui - Dois construtores: 1) Setando a largura e o comprimento para 0 2) Setando a largura e o comprimento com um valor recebido como parâmetro Métodos que calculam o perímetro e a área do retângulo Métodos get e set para o comprimento e largura. O método set deve verificar se a largura e o comprimento são números maiores que 0.0 e menores que 20.0 Teste a classe retângulo