Programação Básica em Java

Slides:



Advertisements
Apresentações semelhantes
Programação orientada a objetos
Advertisements

Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Prof. Thiago Pereira Rique
Histórico do Java 1990 James Gosling (Sun Microsystems)
Orientação a Objetos: Encapsulamento e Classificação
Linguagem Java Renata Araujo
Linguagens de Programação Orientadas a Objetos
Laboratório de Java Herança e Agregação (Lab II) Prof. Guido Araújo.
Polimorfismo e Acoplamento Dinâmico
Linguagem C Estruturas de Controle de Fluxos
Wagner Santos C. de Jesus
Tipos de dados, valores literais e variáveis
Paradigmas da Programação
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Linguagem técnica de programação I Java – REVISÃO
CRIANDO OBJETOS EM JAVA
JAVA: Conceitos Iniciais
Unidade I: “Dê um mergulho rápido”
Programação Orientada a Objetos com Java
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Interfaces.
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Entendendo as definições de classe
Seminário 1: Revisão de C
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Linguagem de Programação JAVA
Tipos de Dados Paradigmas de Programação
Classes, Objetos, Atributos e Métodos JAVA
Introdução à Linguagem Java
Programação em C++ Compiladores
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Orientação a Objetos e Java Graduação em Ciência da Computação
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Wagner Santos C. de Jesus
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação Orientada a Objetos - Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Estrutura de Controle em JAVA
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Linguagem I Strings.
Linguagens de Programação II
Laboratório I Mateus Raeder. Mateus Raeder – maio de 2010 Arrays  Variável: armazena apenas um valor  Como criar em uma única variável, espaço para.
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Conceitos Básicos e Manipulação de Objetos
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Modificadores Programação II.
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Linguagem de Programação – Aula 02 Prof. Me. Ronnison Reges Vidal.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Transcrição da apresentação:

Programação Básica em Java Laboratório de Java Programação Básica em Java (Lab I) Prof. Guido Araújo

Tipos de Dados Tipos primitivos Lógico: boolean Caracter: char (16) Byte: byte (8) Inteiros: short (16) < int (32) < long (64) Floating-point: float (32) < double (64) Void: void

Declarações e Definições Declaração de variáveis Tipo da variável e o seu nome int a; String s = “abcd”; Pode-se criar uma referência para um objeto String s = new String(“abcd”); Ou mesmo um invólucro Character c = new Character(letra);

Declarações e Definições (cont.) Campos float saldoAtual; String titular; Métodos float getSaldo () { código }

Escopo Escopos encaixados são permitidos { int x = 12; // somente x está disponível int q = 96; // ambos x & q disponíveis } // somente x disponível // q fora de escopo

Escopo (cont.) Mas não é uma festa, como em C/C++ ! { int x = 12; } NÃO PODE !!

Escopo (cont.) Vida das variáveis São criadas Continuam vivas enquanto estiverem dentro do escopo Depois o coletor-de-lixo se livra delas. Aleluia !!! { String s = new String(“oba”); } // fim do escopo s nasce s morre

Coletor de Lixo De tempos em tempos varre o espaço livre jogando fora o que está fora de escopo

Operadores Operadores Os mesmos comuns em outras linguagens: + - * / = Precedência é matemática Parênteses para forçar precedência e legibilidade

Mais Operadores (cont.) Atribuição: = Relacionais: > < >= <= == != Bitwise (bit-a-bit): & (AND) | (OR) ~ (NOT) ^ (XOR) Lógicos: || && Operador shift (deslocamento) x << y , x >> y Auto-incremento: i++ (pos) --i (pré)

Mais Operadores (cont.) Erro comum Confundir = com ==

Mais Operadores (cont.) Concatenação de cadeias int x = 0, y = 1, z = 2; String s = "x, y, z "; System.out.println (s + x + y + z);

Controle da Execução if-else Tipo boolean somente possue valores true ou false expression é avaliado como boolean expression pode ser qualquer expressão

Controle da Execução (cont.) ; while expression é avaliada como tipo boolean statement executa enquanto expression for true Pode fazer operações dentro de expression

Controle da Execução (cont.) do-while expression é avaliada como tipo boolean statement executa sempre uma primeira vez Enquanto expression for true execução continua

Controle da Execução (cont.) for-loop initialization: inicializar o controle do laço conditional: se true laço statement continua a executar step: incrementa o controle do laço mais uma interação

Controle da Execução (cont.) switch selector é avaliado como tipo int statement selecionada executa de acordo com selector break (opcional) faz saltar para o final da sentença Se não for nenhum dos casos executa sentença em default

Tipos Agregados de Dados (cont.) Arrays Declaração: int a[10]; Acesso: a[5] = 47; Inicialização : a[] = { 13, 25, 83, 90 } b[] = { “casa”, “muito”, “bonita” } Início em zero

O que é um objeto ? Empacotando funções e dados em class A class torna-se capaz de descrever características e comportamento Tipos de dados abstratos A class permite definir um novo tipo de dado Ela permite o programador abstrair o problema O compilador trata o novo tipo da mesma maneira que os tipos built-in É como se a linguagem estivesse se adequando ao problema…..

Classes Campos Métodos class ContaCor { float saldoAtual; Diferente de C/C++ Definição interna class ContaCor { float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; }

Instanciando, Criando e Acessando class ContaCor { float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0.0f; conta.creditaValor (10.0f); Instancia objeto Acessa campo Acessa método

Um Programa Simples Importando utilitários Imprimindo // INF-300 Laboratório de Java // HelloWorld.java import java.util.*; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, it's: "); System.out.println(new Date()); } Importando utilitários Imprimindo

Compilando e Executando pedro> javac HelloWorld.java pedro> java HelloWorld HelloWorld.class EXECUTA !!

Exercício 1 Do diretório acesso Implemente o programa HelloWorld.java Implemente um programa CriaConta.java que instancia uma conta, credita R$ 10 e imprime o saldo. Compile e execute.

Controle de Acesso Três modos de acessar membros de uma classe public todas as declarações a seguir estão disponíveis para todos private só o criador do tipo pode acessar estes membros protected mais tarde !!

Controle de Acesso (cont.) class ContaCor { private float saldoAtual; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0; Não funciona !!

Controle de Acesso (cont.) class ContaCor { public float saldoAtual; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0; Agora sim !!

Controle de Acesso (cont.) Tudo público public class ContaCor { int saldoAtual; String titular; }

Métodos de Acesso (cont.) class ContaCor { private float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; } Acessa saldo

Exercício 2 Do diretório acesso Leia o programa TestaAcesso.java Faça saldoAtual ser privado. O que ocorreu ? Faça saldoAtual ser public. O que ocorreu ? (Extra) Estude o programa MetodoAcesso.java. Que vantagem ele oferece em relação à TestaAcesso.java ?

Armazenamento Estático static mantém o valor da variável durante execução Variável é inicializada somente na primeira chamada da função O valor que for armazenado permanece entre chamadas Variável não é disponível fora do escopo

Armazenamento Estático class ContaCor { static private float saldoAtual; void creditaValor (float val) { saldoAtual = saldoAtual + val; } Variável estática

Armazenamento Estático (cont.) ContaCor conta1 = new ContaCor(); ContaCor conta2 = new ContaCor(); : conta1.creditaValor (10.0f); conta2.creditaValor (5.0f); conta2 conta1 10.0

Armazenamento Estático (cont.) ContaCor conta1 = new ContaCor(); ContaCor conta2 = new ContaCor(); : conta1.creditaValor (10.0f); conta2.creditaValor (5.0f); conta2 conta1 10.0

Armazenamento Estático (cont.) ContaCor conta1 = new ContaCor(); ContaCor conta2 = new ContaCor(); : conta1.creditaValor (10.0f); conta2.creditaValor (5.0f); conta2 conta1 15.0

Método Estático Chamada da classe class ContaCor { static private float saldoAtual; static void getSaldo () { return saldoAtual; } : ContaCor.getSaldo(); Chamada da classe

Exercício 3 Do diretório acesso Leia o programa StaticVar.java. Compile e execute. O que ocorreu ? Altere saldoAtual para saldo estático e execute. O que ocorreu ? (Extra) Estude o programa StaticMetodo.java. O que significa o método ser estático ?

Construtor Incializa saldo class ContaCor { float saldoAtual; } : ContaCor conta = new ContaCor(); conta.saldoAtual = 0.0; Incializa saldo

Construtor (cont.) Cria objeto e Inicializa saldo class ContaCor { float saldoAtual; ContaCor (int val) { saldoAtual = val; } : ContaCor conta = new ContaCor(10.0f); Cria objeto e Inicializa saldo

Exercício 4 Do diretório acesso Adicione um construtor a CriaConta.java que inicializa a conta com R$ 35. Compile e execute.