Strings e Arrays POO

Documentos relacionados
CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Disciplina: Programação Orientada a Objetos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Tipos de dados e comandos POO

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

Classes e Objetos POO

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

Vetores Unimensionais

Interfaces POO. Prof. Marcio Delamaro

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

Linguagem de programação Java

Vetores Unimensionais

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

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Boas práticas para codificação de classes. 1. Arquivo.h / Em um arquivo. h ( por exemplo, minha_lib. h ), DECLARE todas as

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Linguagem de Programação II Implementação

Orientação a Objetos e Java

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

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

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

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

COMPORTAMENTOS - Observações

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

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

Linguagem de Programação II Implementação

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

CONTEÚDO 04 VETORES. Disciplina: Algoritmos e POO Professora: Alba Lopes.

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Arrays e Marizes. João Paulo Q. dos Santos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Tipos, Literais, Operadores

Tipos, Literais, Operadores

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

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Variáveis Compostas. Vanessa Braganholo

Algoritmos e Programação

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

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

Vetores Unimensionais

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Sexta aula

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

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

Escreva em Java a classe NumeroComplexo que represente um número complexo. A classe deverá ter os seguintes construtores:

Classes, instâncias e métodos de acesso. prática

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Tratamento de Exceções

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Quinta aula

Java para Desktop. Programação Orientada à Objetos 2 JSE

Lição 4 Fundamentos da programação

Programação Orientada aos Objectos I

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Métodos e Procedimentos. Prof. Jesus José de Oliveira Neto

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

AULA 6 - ARRAYS. Array de 10 elementos

Programação Orientada a Objetos em Java

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

Arrays em Java. Prof. Renato Pimentel. GGI030 Programação Orientada a Objetos. Universidade Federal de Uberlândia Faculdade de Computação

Programação de Computadores para GI

Linguagem de Programação III

Fundamentos de Programação

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

Análise de Programação

Programação Orientada a Objetos

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Atributos e Métodos Estáticos

Programação Orientada a Objetos II

INSTRUÇÕES DE REPETIÇÃO

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

Linguagem Java - Introdução

ALOCAÇÃO DINÂMICA DE MEMÓRIA

Transcrição:

Strings e Arrays POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/27

String Uma sequência de caracteres que representa uma informação textual Em Java existe um tipo específico para representar strings Na verdade, um string é também um objeto, instanciado a partir da classe String Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 2/27

String Uma sequência de caracteres que representa uma informação textual Em Java existe um tipo específico para representar strings Na verdade, um string é também um objeto, instanciado a partir da classe String String s = new String( abc ); String p = abc ; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 3/27

Algumas coisas que podemos fazer String s = abc + def ; String r = ghi ; r += s; System.out.println( O valor final é: + 25); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 4/27

String é objeto Possui atributos e métodos... String s = "abc"; System.out.println("O tamanho eh: " + s.length()) if (s.equals("abc")) System.out.println("Sao iguais"); String r = "Meu nome não é Jony".substring(4, 8); int i = r.indexof('o'); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 5/27

Como conhecer uma classe A linguagem Java possui uma vasta biblioteca de classes API (Application Programming Interface) É preciso saber procurar e entender a sua documentação http://docs.oracle.com/javase/8/docs/api/index.html Se tiver sorte, pode fazer uma busca como: api java 8 string Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 6/27

Exercícios Leia um string do teclado usando EntradaTeclado.leString() Mostre quantas vezes cada vogal aparece Transforme e exiba o string só em maiúsculas Leia um segundo string e verifique se ele aparece no início ou no fim do primeiro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 7/27

Aproveitando A documentação que vimos sobre a classe String não é gerada manualmente Ela é extraída do código fonte É fornecida por meio de comentários Nós também podemos criar esse tipo de documentação Javadoc Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 8/27

Antes da declaração de classe Usamos sempre /** comentário */ Antes da declaração da classe colocamos um descrição geral sobre ela /** * Esta classe foi desenhada para facilitar a entrada de dados pelo * teclado. Basicamente ela implementa funções para ler strings, inteiros * e doubles. Ela não faz verificações se o que foi digitado realmente é o * esperado. * @author delamaro * */ public class EntradaTeclado { Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 9/27

Resultado Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 10/27

Antes dos métodos Antes de cada método colocamos uma descrição do que ele faz Quais os parâmetros que recebe O que ele retorna Quais exceções pode lançar Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 11/27

Antes dos métodos /** * Le um string digitado pelo teclado, até que seja * pressionado um enter. Ou seja, le a linha toda. * @return o string que foi digitado pelo usuário. * @throws IOException Essa exceção é lançada quando o * método não consegue ler o string a partir do teclado. */ public static String lestring() throws IOException { Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 12/27

Resultado Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 13/27

Resultado Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 14/27

Atributos Resultado Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 15/27

Arrays Um array em Java também é um tipo especial de objeto Precisa sempre ser instanciado Os elementos do array podem ser tipos primitivos ou objetos int[] vetint = new int[20]; int t = vetint.length; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 16/27

Coisas que podemos fazer int[] v2 = new int[] {0, 1963, 0, 0, 0} ; String[] vs = new String[10]; String[] xv = new String[] { "abc", "def", ""}; Random[] vetrand = new Random[4]; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 17/27

Coisas que podemos fazer int[] v2 = new int[] {0, 1963, 0, 0, 0} ; String vs = new String[10]; String[] xv = new String[] { "abc", "def", ""}; Random[] vetrand = new Random[4]; ATENÇÃO: NÃO HÁ NADA NO ARRAY (null) vetrand[0] = new Random(); vetrand[1] = new Random(110); String vs = null; System.out.println(vs); Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 18/27

Matrizes Um array pode ter mais do que uma dimensão int[][] m = new int[5][3]; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 19/27

Matrizes Um array pode ter mais do que uma dimensão int[][] m = new int[3][5]; m[0][0] m[0][1] m[0][2] m[0][3] m[0][4] m[1][0] m[1][1] m[1][2] m[1][3] m[1][4] m[2][0] m[2][1] m[2][2] m[2][3] m[2][4] Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 20/27

Matrizes Um array pode ter mais do que uma dimensão int[][] m = new int[3][5]; m[0][0] m[0][1] m[0][2] m[0][3] m[0][4] m[1][0] m[1][1] m[1][2] m[1][3] m[1][4] m[2][0] m[2][1] m[2][2] m[2][3] m[2][4] int[][] m = new int[][] { {1,2,3}, {4,5,6}, {7,8,9} }; 1 2 3 4 5 6 7 8 9 Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 21/27

A verdade Uma matriz é na verdade um array Cada elemento do array é um array int[][] m = new int[5][3]; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 22/27

A verdade Uma matriz é na verdade um array Cada elemento do array é um array int[][] m = new int[5][3]; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 23/27

O que podemos fazer m = new int[][] { {1, 2, 3}, {4,5}, {6} }; m = new int[5][]; for (i = 0; i < 5; i++) m[i] = new int[5 i]; Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 24/27

Treinando 1. Crie uma classe para representar uma pessoa, com os atributos privados de nome, idade e altura. Crie os métodos públicos necessários para sets e gets e também um método para imprimir os dados de uma pessoa. 2. Crie uma classe Agenda que pode armazenar 10 pessoas e seja capaz de realizar as seguintes operações: void armazenapessoa(string nome, int idade, float altura); void removepessoa(string nome); int buscapessoa(string nome); // informa em que posição da agenda está a pessoa void imprimeagenda(); // imprime os dados de todas as pessoas da agenda void imprimepessoa(int i); // imprime os dados da pessoa que está na posição i da agenda Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 25/27

Exercício Crie uma classe denominada Elevador para armazenar as informações de um elevador dentro de um prédio. A classe deve armazenar o andar atual (térreo = 0), total de andares no prédio, excluindo o térreo, capacidade do elevador, e quantas pessoas estão presentes nele. A classe deve também disponibilizar os seguintes métodos: Construtor: que deve receber como parâmetros a capacidade do elevador e o total de andares no prédio (os elevadores sempre começam no térreo e vazio); Entra: para acrescentar uma pessoa no elevador (só deve acrescentar se ainda houver espaço); Sai: para remover uma pessoa do elevador (só deve remover se houver alguém dentro dele); Sobe: para subir um andar (não deve subir se já estiver no último andar); Desce: para descer um andar (não deve descer se já estiver no térreo); Encapsular todos os atributos da classe (criar os métodos set e get). Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 26/27

Prática Crie uma classe Televisão e uma classe ControleRemoto que pode controlar o volume e trocar os canais da televisão. O controle de volume permite aumentar ou diminuir a potência do volume de som em uma unidade de cada vez; O controle de canal também permite aumentar e diminuir o número do canal em uma unidade, porém, também possibilita trocar para um canal indicado; Também devem existir métodos para consultar o valor do volume de som e o canal selecionado. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 27/27