Introducao logica2
-
Upload
denilton-darold -
Category
Education
-
view
324 -
download
1
Transcript of Introducao logica2
![Page 1: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/1.jpg)
1
Lógica de Programação
Denilton Luiz Darold
![Page 2: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/2.jpg)
2
Revisão
• Definição de algoritmo• Teste de mesa• Diagramas de Bloco• Operadores
– Lógicos– Relacionais– Aritméticos
• Estrutura de repetição
2
![Page 3: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/3.jpg)
3
Aula 2
• Introdução a Java
• Java Virtual Machine - JVM
• Garbage Collection
• Ambiente de Desenvolvimento
• Estrutura de Código/Primeiro Programa
• Sintaxe
• Compilação e Execução
• Exercícios
3
![Page 4: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/4.jpg)
4
Introdução Java
• Visão Geral– linguagem de programação orientada a objetos– uma coleção de APIs– um ambiente de execução
• História– Criada em 90 pela Sun Microsystems.(Oracle)– Projeto liderado por James Gosling, com o
principal objetivo de ser multi-plataforma.
4
![Page 5: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/5.jpg)
5
Java - Características
• Orientação a Objetos
• Simples e robusta
• Gerenciamento automático de memória
• Independência de plataforma
• Multi-threading (Multi tarefas)
5
![Page 6: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/6.jpg)
6
Plataformas
• J2SE - Java 2 Standard Edition– PCs, notebooks, etc..
• J2EE - Java 2 Enterprise Edition– Hoje JEE
• J2ME - Java 2 Micro Edition– Dispositivos móveis, como celulares, smart
phones.
• Objetivo do Curso J2SE e princípios de JEE.
6
![Page 7: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/7.jpg)
7
Ambiente de Desenvolv.
• J2SDK– Java 2 System Development Kit – Implementa a plataforma J2SE, provendo
ambiente básico necessário para o desenvolvimento de aplicações
– Consiste de:• JRE(Java Runtime Environment)• Ferramentas para desenvolvimento:
compilador, debugger, gerador de documentação, empacotador JAR;
• Conjunto de APIs e código fonte de classes7
![Page 8: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/8.jpg)
8
Arquitetura Java
• JVM– Java Virtual Machine
• Garbage Collection– Gerenciamento de alocação/liberação de
memória
• Sand Box– Módulo de segurança
8
![Page 9: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/9.jpg)
9
JVM
• Coração da JRE– JRE: Conjunto de programas que possibilita
executar aplicações Java
• Possibilita a portabilidade de código– Compile once, run anywhere
9
“Uma máquina imaginária que é implementada via software ou hardware.Um código a ser executado por essa máquina deve ser gravado em umarquivo com extensão .class. e possuir código compatível com as instruções Java.”
![Page 10: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/10.jpg)
10
JVM
![Page 11: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/11.jpg)
11
JVM
• Conjunto de instruções(CPU)
• Conjunto de registradores
• Formato de padrões de classe
• Pilha de memória
• Pilha de objetos coletados (garbage col.)
• Área de memória
11
![Page 12: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/12.jpg)
12
+ JVM
• A JVM emula uma máquina real possuindo um conjunto de instruções próprio e atua em áreas de gerenciamento de memória;
• A JVM possui uma especificação que pode ser implementada nas diversas arquiteturas;
• os ambientes de execução e de desenvolvimento são fornecidos por fabricantes de hardware e software(MacOS,Linux, Windows)
• Não trabalha diretamente com a linguagem de programação e sim arquivos .class, que contem byte-codes.
12
![Page 13: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/13.jpg)
13
+ JVM
• O Código java é compilado, gerando o byte-code
• Esse byte-code é aplicado à JVM que se encarrega de interpretar os comandos para o sistema operacional onde o programa está rodando. Ou seja, a máquina virtual traduz as instruções de código Java para as instruções válidas no sistema operacional em que está rodando.
• Esse byte-code poderá então ser interpretado por qualquer máquina virtual Java, em Linux, Windows, Mac OS..etc..
13
![Page 14: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/14.jpg)
14
+ JVM
• Um programa só executado caso o seu byte-code passe pela verificação de segurança do JVM, que consiste em:– o programa foi escrito utilizando a sintaxe e
semântica da linguagem;– não existem violações de áreas restritas– o código não gera Stack Overflow– os tipos de parâmetros dos métodos estão
corretos– não existem nenhuma conversão ilegal de dados– o acesso à objetos está corretamente declarado14
![Page 15: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/15.jpg)
15
Biblioteca de Classes
• Na maioria dos sistemas operacionais modernos, um corpo de código reusável é organizado e disponibilizado para simplificador o trabalho do programador;
• Esse código encontra-se, geralmente, na forma de bibliotecas dinâmicas;
• Como Java é multi-plataforma, disponibiliza um grande conjunto padronizado de bibliotecas de classe, que contém praticamente o mesmo número de funções encontradas nos sistemas operacionais modernos.
15
![Page 16: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/16.jpg)
16
Gerenciamento de Memória
• Durante a execução de um programa, ocorre a alocação e liberação dinâmica de memória RAM. Dados são escritos e lidos na memória satisfazendo os requisitos do programa;
• Em linguagens tradicionais essa alocação fica sob responsabilidade do programador; (stack Overflow)
• Para facilitar o trabalho e evitar erros comuns associados à alocação de memória, Java implementou garbage collection.
16
![Page 17: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/17.jpg)
17
Garbage Collection
• Em outras linguagens(como C), o programa é responsável pelo gerenciamento de memória
• Em Java, é automático, através da JVM
• Controla a liberação de memória não mais utilizada
• O coletor é executado periodicamente, num processo de baixa prioridade
17
![Page 18: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/18.jpg)
18
Estrutura de Código
![Page 19: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/19.jpg)
19
Estrutura de Código
• Linhas 1 e 2: comentários
• Linha 4: Declaração do nome do programa
• Linha 5 e 9: Início de bloco
• Linha 8: Deve estar em todo programa Java. O interpretador JVM executa os comandos que estiverem nesse bloco (main)
• Linha 10: Código propriamente dito
• Linha 11 e 12: Fechamento de bloco
19
![Page 20: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/20.jpg)
20
+ sobre o código
• Main– Ponto de entrada. Nem toda classe irá possuí-lo.– Uma classe sem esse método não pode ser
executado.
20
public static void main(String[] args)
![Page 21: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/21.jpg)
21
Convenções de Nomes
• O código fonte Java é armazenado em arquivos com extensão .Java
• Um arquivo poderá armazenar mais de uma classe
• Use o nome da classe principal para nomear o arquivo– Ex: Cliente.Java
21
![Page 22: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/22.jpg)
22
+ Convenções
• Nome de Classes– Substantivos ou frases explicativas– Primeira letra maiúscula
• MyFirstClass
• Nome de Métodos– Verbos– Primeira letra minúscula e cada inicial interna
maiúscula (também para variáveis)• getUserName()
22
![Page 23: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/23.jpg)
23
Exemplo de código
![Page 24: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/24.jpg)
24
Ambiente
• Verifique a instalação do sdk– java -version ( No prompt de comando do
windows)
• Verifique a instanciação das variáveis de ambiente– path=%path%;c:\j2sdk\bin– classpath=%classpath%;.;c:\j2sdk\jre\lib
24
![Page 25: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/25.jpg)
25
Compilação e Execução
• Primeiro passa compilar. O comando abaixo gerará um nome arquivo .class.– javac Exemplo.java
25
![Page 26: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/26.jpg)
26
• Com o arquivo .class, podemos executá-lo, através do comando seguinte comando:– java Exemplo
• Isso irá chamar JVM, que executará o método main da classe em questão.
26
![Page 27: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/27.jpg)
27
Erros Comuns
• COMPILAÇÃO
• Variável PATH mal configurada
• Erro de Digitação
27
![Page 28: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/28.jpg)
28
...continuação
• Case-sensitive – Ou nome de arquivo diferente do nome da classe
pública
• EXECUÇÃO
• Variável CLASSPATH mal configurada
28
![Page 29: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/29.jpg)
29
Compilação e Execução
• Digite o código do Alô Mundo
• Salve em um arquivo com o nome AloMundo.java
• Abra o console DOS– Iniciar->Executar->CMD
• Vá ao diretório onde se encontra o arquivo
• Execute o compilador Java, informando o arquivo a ser compilado
• Liste o diretório e verifique a existência do .class
• Execute o programa
29
![Page 30: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/30.jpg)
30
Exercícios
• Faça um programa que mostre seu nome
• Faça um programa passando seu nome como parâmetro
• Corrija o código a seguir
30
class Errado{public static void main (string a())
sistem.println(“Existem erros.”)}
}
![Page 31: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/31.jpg)
31
Sintaxe
• Delimitadores– Símbolos usados pelo compilador para
diferenciar comandos, blocos de comandos, métodos, classes, etc..
31
![Page 32: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/32.jpg)
32
Sintaxe
• Identificadores
32
![Page 33: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/33.jpg)
33
Sintaxe
• Palavras reservadas
33
![Page 34: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/34.jpg)
34
Declarando Variáveis
• Segue o seguinte esquema:– <tipo>+<espaço>+identificador+;– <tipo>+<espaço>+identificador+=+valor+;
• Onde:
• tipo é um primitivo de dados ou classe ou interface
• identificador é o nome
• valor é o valor atribuído
34
![Page 35: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/35.jpg)
35
Exemplo de código
35
![Page 36: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/36.jpg)
36
Tipos Primitivos
• ...
36
![Page 37: Introducao logica2](https://reader033.fdocument.pub/reader033/viewer/2022052508/559aa1901a28abf1088b47a5/html5/thumbnails/37.jpg)
37
It’s over..
Thank you!Thank you!Thank you!Thank you!Denilton