Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?



Documentos relacionados
Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Universidade Federal de Uberlândia

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

2 Orientação a objetos na prática

Computação II Orientação a Objetos

Introdução a Linguagem

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

FBV - Linguagem de Programação II. Um pouco sobre Java

Linguagens de. Aula 02. Profa Cristiane Koehler

Linguagem de Programação Introdução a Linguagem Java

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

LINGUAGEM DE PROGRAMAÇÃO JAVA

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Programação Orientada a Objetos

INTRODUÇÃO À LINGUAGEM C++

Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes rxbrito@gmail.

Linguagem de Programação I

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Fundamentos de Programação II. Introdução à linguagem de programação C++

Java. Marcio de Carvalho Victorino

Programação Orientada a Objetos! Java - Fundamentos. Prof. Sérgio Almagro! sergio.ricardo.almagro@gmail.com

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Noções sobre Objetos e Classes

Algoritmos e Programação

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Desenvolvimento OO com Java Orientação a objetos básica

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

CURSO DE PROGRAMAÇÃO EM JAVA

Java Como Programar, 8/E

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Desenvolvimento Web TCC Turma A-1

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Introdução à Linguagem Java

AULA Uma linguagem de programação orientada a objetos

PROGRAMAÇÃO JAVA. Parte 1

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

3 Classes e instanciação de objectos (em Java)

JSP - ORIENTADO A OBJETOS

Análise de Programação

Prof. Esp. Adriano Carvalho

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores II TCC Turma A-1

Orientação a Objetos com Java

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Introdução à Programação Orientada a Objetos

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Algoritmos e Programação II. Sobrecarga

A Linguagem Java. Alberto Costa Neto DComp - UFS

Programação para Internet II

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Algoritmos e Técnicas de

Linguagens de Programação

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

BSI UFRPE Prof. Gustavo Callou

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Programando em C++ Histórico da Linguagem C

Programação: Estruturas de seleção

JavaScript (ou JScript)

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

insfcanceof new public switch transient while byte continue extends for int null

Programação por Objectos. Java

Programação para web JavaScript

Convertendo Algoritmos para a Linguagem C

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

EMENTA DO CURSO. Tópicos:

LINGUAGEM C. Estrutura básica de um programa

Programação para Dispositivos Móveis Aula 1. Prof. William Yamamoto

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Programação de Computadores II: Java. / NT Editora. -- Brasília: p. : il. ; 21,0 X 29,7 cm.

Exercícios de Revisão Java Básico

Estrutura Condicional em Java

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Programação por Objectos

Programação: Tipos, Variáveis e Expressões

Módulo 06 Desenho de Classes

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Conceitos básicos da linguagem C

Introdução à Programação

Introdução à linguagem

Transcrição:

Algoritmos e Programação 2 Baseado no material do Prof. Júlio Pereira Machado Introdução à Programação Orientada a Objetos O que é um paradigma de programação? É um padrão conceitual que orienta soluções de projeto e implementação. Paradigmas explicam como os elementos que compõem um programa são organizados e como interagem entre si. Exs.: procedural, funcional, orientado a objetos Orientação a Objetos É baseada na modelagem de objetos do mundo real. O que é um objeto? Uma abstração de um objeto do mundo real. Uma estrutura composta de dados e operações. 1

Objetos Cada objeto possui características (dados) e comportamento (operações). Ex.: lâmpada características: ligada (sim/não), potência, voltagem, etc. comportamento: ligar, desligar, queimar, etc. Um programa orientado a objetos é estruturado como uma comunidade de objetos que interagem entre si. Cada objeto tem um papel a cumprir. Cada objeto oferece um serviço ou realiza uma ação que é usada por outros membros da comunidade. Encapsulamento É um dos conceitos básicos de OO. A idéia de uma caixa preta : não é necessário saber os detalhes de funcionamento interno, mas sim como utilizar. Encapsular é esconder como as coisas funcionam por trás de uma interface externa. Ex.: caixa automático Como ele é implementado internamente? Utilizamos através de operações bem conhecidas 2

Operações (Métodos) Interface pública declara as operações permitidas Público Dados (Atributos) objeto Acesso aos dados é feito através da chamada de um método Privado Mensagens Objetos interagem entre si através do envio de mensagens. Um objeto chama um método de outro objeto. O objeto emissor requisita a execução de um determinado método ao objeto receptor. obj1 MENSAGEM Identificar o objeto receptor Identificar o método que o objeto deverá executar Passar os argumentos necessários obj2 3

Classes Uma classe é uma fôrma para produzir objetos. Determina um conjunto de objetos com: propriedades semelhantes comportamentos semelhantes relacionamentos comuns com outros objetos Instanciar objetos significa gerar novos exemplares a partir de uma descrição abstrata de um objeto genérico. Objetos são instâncias de uma classe. Classificação Lâmpada Lâmpada1 Lâmpada2 Instanciação Classes X Instâncias X Objetos Objetos são gerados a partir de classes. Uma classe define as propriedades e o comportamento dos objetos gerados por ela. Todo objeto é uma instância de uma classe. 4

veículos veículo Marca Placa lerplaca classe Ferrari IDN8810 objeto1 Fiat Uno IAS3333 objeto2 instâncias Exemplo Java public class Veiculo { private String marca; private String placa; Atributos... public String lerplaca(){ return placa; Método Resumo Conceitos OO Objeto unidade básica de orientação a objetos. Um objeto é uma entidade que tem atributos, comportamento e identidade. Objetos são membros de uma classe e os atributos e o comportamento (métodos) de um objeto são definidos pela definição da classe. Classe uma classe é uma descrição de um conjunto de objetos. Este conjunto de objetos compartilha atributos e comportamento em comum. Uma definição de classe descreve todos os atributos dos objetos membros da classe, bem como os métodos que implementam o comportamento destes membros. 5

Orientação a objetos um método de desenvolvimento de software que usa abstração com objetos, classes encapsuladas e comunicação por mensagens, hierarquia de classes e polimorfismo. Abstração um modelo de um conceito ou objeto do mundo real. Encapsulamento processo de esconder os detalhes internos de um objeto do mundo externo. Atributo usado para armazenar o estado de um objeto. Pode ser simples como uma variável escalar (int, char, double, ou boolean) ou pode ser uma estrutura complexa tal como outro objeto. Comportamento atividade de um objeto que é vista do ponto de vista do mundo externo. Inclui como um objeto responde a mensagens alterando seu estado interno ou retornando informação sobre seu estado interno. Método uma operação ou serviço executado sobre o objeto, declarado como parte da estrutura da classe. Métodos são usados para implementar o comportamento do objeto. Estado reflete os valores correntes de todos os atributos de um objeto e são o resultado do comportamento do objeto ao longo do tempo. Introdução Java Histórico da linguagem 1991 Patrick Naughton, Mike Sheridan e James Gosling criaram a linguagem em 1991, no GreenProject da Sun O objetivo do era desenvolver software para controlar eletrodomésticos (TVs interativas, torradeiras interativas, etc.) 6

Idéia inicial era utilizar C++ Objetivos: linguagem pequena, eficiente e facilmente portável A linguagem deveria permitir a construção de programas que pudessem executar em diferentes arquiteturas sem a necessidade de se re-escrever código. Foi criada a linguagem Oak, que com o crescimento da Internet deu origem a Java Potencial de criar páginas na Web com conteúdo dinâmico. 1994 Criado o navegador HotJava que permitia executar applets Java 1995 Em maio, John Gage, diretor da Sun Microsystems e Marc Andreessen, da Netscape, anunciaram que a linguagem já era realidade e seria incorporada ao Navigator Em novembro, a linguagem Java foi disponibilizada pela 1ª vez no JDK 1.0 1997 JDK 1.1 traz novas APIs para tratamento de eventos, acesso a banco de dados, interfaces gráficas, etc 1999 JDK 1.2 ou Java 2 Correção de bugs, otimização e sedimentação dos conceitos Observação: A partir da versão 1.2, o JDK (Java Development Kit) recebeu a denominação de SDK (System Development Kit). 7

Plataforma Java J2SE (Java 2 Platform, Standard Edition) Desenvolvimento e execução de applets, aplicações stand-alone ou aplicações cliente J2EE (Java 2 Platform, Enterprise Edition) Reúne um conjunto de tecnologias em uma arquitetura voltada para o desenvolvimento de aplicações servidoras J2ME (Java 2 Platform, Micro Edition) Fornece um ambiente de execução otimizado e permite escrever programas cliente que são executados em pequenos dispositivos sem-fio (smart cards, telefones celulares, pagers,...) Características Java é tanto uma linguagem de programação de alto nível quanto uma plataforma de desenvolvimento de sistemas. Existem basicamente 3 tipos de programas em Java: Aplicações (programas normais ordinários) De console: suportam saída em modo texto De janela: cria e gerencia múltiplas janelas, usa mecanismos de GUI (Graphical User Interface) para programação em janelas Applets (programas em web pages) pequenos programas embutidos em páginas HTML executa no cliente dentro de um navegador Servlets (aplicações cliente-servidor) executa no servidor (ao contrário dos applets) estende a funcionalidade de um servidor 8

Ambiente Java Java é tanto compilada quanto interpretada. O compilador transforma o programa em bytecodes. Bytecodes são instruções de máquina compreendidas pela Java Virtual Machine. A Java Virtual Machine é um interpretador que transforma as instruções bytecodes em linguagem de máquina. Programa Java minhaclasse.java Compilador javac.exe Bytecode minhaclasse.class Interpretador JVM java.exe PC UNIX MAC 9

C X Java C X Java Ambientes de programação BlueJ Ambiente voltado para o ensino de Java e Orientação a Objetos Disponibilizado gratuitamente na Internet http://www.bluej.org Necessita do SDK instalado para funcionar Eclipse Ambiente integrado para o desenvolvimento profissional de software Disponibilizado gratuitamente na Internet http://www.eclipse.org Necessita do SDK instalado para funcionar 10

Ambiente de Execução J2SE deve ser utilizado por desenvolvedores Para apenas executar programas em Java, a Sun disponibiliza o JRE (Java Runtime Environment) Estrutura de um programa Um programa Java é um conjunto composto por uma ou mais classes. Tipicamente, cada classe é implementada em um arquivo fonte separado, sendo que o arquivo deve ter o mesmo nome da classe. Ex.: a classe Veiculo deve estar definida no arquivo Veiculo.java Em geral, os arquivos que compõem um programa java devem estar no mesmo diretório. Biblioteca de classes (API) Application Programming Interface É uma coleção de classes, normalmente provendo uma série de facilidades que podem ser usadas em programas. Classes são agrupadas em conjuntos chamados packages. Exs: java.lang: inclui classes básicas, manipulação de arrays e strings. Este pacote é carregado automaticamente pelo programa java.io: operações de input e output java.awt: suportam aplicativos em janelas (windowed) java.util: classes diversas para manipulação de dados 11

Ambiente de Programação Sun disponibiliza gratuitamente http://java.sun.com J2SE Disponível para vários sistemas operacionais Contém: compilador, depurador, biblioteca de classes e a máquina virtual Não oferece editor ou ambiente visual integrado Tipos de Dados Básicos Tipos de dados primitivos inteiros: byte (8 bits), short (16), int (32), long (64) 1 (decimal), 07 (octal), 0xff (hexadecimal) reais: float (32), double (64) 3.0F, 4.02E23, 3.0 caractere: char (16) a, \141, \u0061, \n booleano: boolean (8) true, false Em Java, tem-se dois tipos de conversão de valores: conversão para um tipo maior automática conversão para um tipo menor (chamada de casting) não é automática int i=1; long l=i; byte short int long long l=1; int i=l; Erro!!! byte short int long 12

Para converter de um tipo para um tipo menor, precisamos referenciar de forma explícita. (tipo Java) expressão; Ex.: long l = 1; int i = (int) l; byte b1=1, b2=2, b3; b3 = (byte)(b1 + b2); Cuidado! Ao somar dois valores byte iguais a 100, o resultado é o int 200. Ao realizar o cast para byte, o resultado é convertido para -56, o equivalente ao padrão de bits armazenados. Operadores Operadores básicos: aritméticos: +, -, *, /, % (resto da divisão) relacionais: >, >=, <, <= igualdade: ==,!= lógicos: &&, & (and),, (or), ^ (xor),! (not) atribuição: =, +=, -=, *=, /=, %= incremento, decremento: ++, -- Funções matemáticas (classe Math): sqrt(x): cálculo da raiz quadrada de x (x é do tipo double) abs(x): valor absoluto de x (x pode ser float, int, long) ceil(x): arredonda x para o menor inteiro não menor que x (ceil(9.2)=10.0, ceil(-9.8)=-9.0) cos(x): coseno trigonométrico de x (x em radianos) exp(x): método exponencial e x pow(x,y): x elevado a potência y (x y ) Exemplo: double raio; raio = Math.sqrt(area/Math.PI); 13

Cuidado: O resultado da operação de divisão em Java depende do tipo dos operandos. Tipo inteiro: o resultado é a divisão inteira int resultado = 10/4 //igual a 2 Tipo ponto flutuante: o resultado é a divisão normal float resultado = 10f/4f //igual a 2,5 Comandos Declaração Variáveis: int valor1, valor2 = 123; double taxa, percentual; Constantes: final double PI = 3.1415; if Condicionais são escritos da seguinte forma: if (condição) { if (condição) { else { if (condição) { else if (condição) { else { 14

if (i % 2 == 0) { System.out.println( Par ); else { System.out.println( Ímpar ); if (vel >= 25) { if (vel > 65) { System.out.println( maior 65 ); else { System.out.println( maior 25 ); else { System.out.println( menor 25 ); switch...case Utilizado para cobrir múltiplas escolhas sobre valores alternativos de variáveis int, byte, short, long ou char. Escreve-se da seguinte forma: switch (expressão) { case constante1: break;... default: switch (menuitem){ case 0: System.out.println( zero ); break; case 1: System.out.println( um ); break; default: System.out.println( inválido ); switch (nota){ case A : case B : case C : System.out.println( Passou ); break; default: System.out.println( Reprovou ); 15

for Tem a seguinte forma: for (inicialização; condição; alteração) { Ex.: int soma = 0; for (int i=1; i<=3; i++) { sum += i; System.out.println( Soma +soma); while Tem a seguinte forma: while (condição) { Ex.: int i = 0; while (i<10) { System.out.println( i= + i); i++; do...while Tem a seguinte forma: do { while (condição); Ex.: int i = 0; do { System.out.println( i= +i); i++; while (i<10); 16

Classe String String É uma classe e não tipo primitivo. Representa um grupo de caracteres. Declarados entre aspas duplas String nome = "Júlio"; String nome = new String( Júlio ); Conversão Java converte outros tipos para strings int idade = 25; String nomeidade = nome + " " + idade; Operadores concatenação: + String nomecompleto = nome + " " + "Machado ; comparação: equals String str1 = "texto"; String str2 = "txt"; if(str1.equals(str2)){ //compara conteúdo Métodos úteis Tamanho: Método length() String texto1 = "Início"; System.out.println(texto1.length()) ; --> 6 Caractere em uma posição: Método charat(posição) char c = texto1.charat(1); --> n 17

Substrings: Método substring(início,fim) String texto1 = "Início"; String sub = texto1.substring(1,3) --> ní Conversão: Métodos parsexxx de cada classe do tipo original int i = Integer.parseInt("123"); double d = Double.parseDouble("1.3"); 18