1 - POO - Do C Ao Java
1 - POO - Do C Ao Java
1 - POO - Do C Ao Java
2023/2
Sumário
1. O que é Java?
2. Criando um código em Java
○ Compilando via terminal
○ Usando uma IDE
3. Variáveis e tipos primitivos
4. Tipos não-primitivos
○ Strings
○ Vetores
5. Leitura e saída de dados
6. Operadores, instruções de controle
7. Funções Métodos
8. Praticando
2
O que é Java?
3
O que é Java?
Java é uma Plataforma
● Criada pela Sun Microsystems nos anos 90. Comprada pela Oracle em 2008.
● Tecnologia geralmente oferecida em três grandes segmentos:
○ Java SE (Standard Edition). Contém as bibliotecas base da plataforma, usada pela
maioria dos projetos;
○ Java EE (Enterprise Edition). Versão voltada para grandes projetos de empresas
com recursos avançados;
○ Java ME (Micro Edition). Versão para aplicativos móveis de baixa disponibilidade
de hardware e sistemas embarcados;
● Mas existem várias extensões, como por exemplo a JSP (Java Server Pages),
voltada para criação de páginas web.
4
O que é Java?
Java é uma Linguagem de Programação Código Java (.java)
5
O que é Java?
Java é uma Linguagem de Programação Código Java (.java)
6
Criando um código em
Java
7
Como era com código em C…
Código fonte: olamundo.c
int main() {
printf("Olá, Mundo!\n" );
return 0;
}
Compilando e executando:
./olamundo
Olá, Mundo!
8
Como é com código em Java…
Código fonte: OlaMundo.java
Compilando e executando:
javac OlaMundo.java
java OlaMundo
Olá, Mundo!
9
Usando IDEs
Ambientes de Desenvolvimento Integrado (IDEs) te ajudam a organizar seu projeto de
código, gerir dependências e tirar proveito de recursos da linguagem para facilitar a
programação de projetos mais complexos.
10
Criando um novo projeto no Eclipse
Vamos botar a mão na massa…
11
Olhando para a função main…
Pra quê isso tudo?
12
Olhando para a função main…
Pra quê isso tudo?
public - Este método é público, visível e invocável por objetos de outros tipos
static - Este método é estático, imutável, pode ser acessado sem ter sido
instanciado um objeto desta classe (chamamos de método da classe, ao invés do
objeto)
main - O identificador do método, neste caso um nome especial que indica para a
JVM que a execução deve começar por aqui.
13
Variáveis e tipos
primitivos
14
Tipos de dados em C vs. Java
Tabela 1: Tipos de dados primitivos em C (desconsiderando unsigned e signed)
15
Tipos de dados em C vs. Java
Tabela 2: Tipos de dados primitivos em Java
17
Tipos não-primitivos
Antes de falarmos sobre "Tipos não-primitivos", vamos refletir sobre o processo de
criação e uso de variáveis em nosso código:
Isto é a declaração de uma variável. Com
ela, dizemos para o compilador "reservar"
um espaço na memória do tamanho de
int x; int e rotulá-lo como x.
18
Tipos não-primitivos
Estruturas de dados mais complexas, com uma string (cadeia de caracteres), são
representadas em Java por Objetos, cujo tipo é uma Classe. Estes objetos precisam ser
instanciados (criados) com o comando new logo antes de chamarmos o seu método
construtor, que sempre possui o mesmo nome da Classe deste Objeto.
Nota: antes de ser instanciado, todo objeto tem como valor padrão null;
19
“Tipo String”
Código fonte: OlaMundo.java
A classe String define objetos String com métodos utilitários para análise do texto, como
acessar seus caracteres, ver seu tamanho e comparar conteúdo. Ela também faz parte do
pacote java.lang, que já é automaticamente importado em todos os códigos Java.
20
E os vetores?
Código fonte: OlaMundo.java
Neste caso, o operador new faz o serviço de alocar espaços contíguos na memória que
caibam aquele tipo. Note que qualquer uma dessas variáveis agora é um Objeto especial, que
tem atributos e métodos úteis para manipulação de vetores como .length, .equals(),
.toString()...
21
Leitura e saída de dados
22
Exibindo dados em Java
Código fonte: OlaMundo.java
A classe System possui diversos utilitários para se interagir com o sistema. Ela também
faz parte do pacote java.lang, que já é automaticamente importado em todos os códigos
Java. System.out é o Objeto de saída padrão e possui diversos métodos para tal.
23
Recebendo dados em Java
Código fonte: OlaMundo.java
Objetos Scanner servem para leitura de dados de diferentes fontes. Como queremos ler do
Objeto de entrada padrão, passamos System.in como parâmetro para sua função construtora.
Uma vez instanciado, podemos usar seus métodos para leitura como .nextInt() .
24
Operadores, instruções
de controle
25
Operadores
De modo geral, os operadores como ==, !=, <=, >, &&,||, etc. funcionam da
mesma maneira que em C com a vantagem de retornarem o tipo boolean (quando
for o caso). Porém é preciso lembrar que o comportamento que esperamos delas é
para tipos primitivos. Portanto:
26
Operadores
Para Strings, também podemos usar os operadores + e += como forma de
concatenar frases:
27
Instruções de controle
Instruções de controle como if, else, else if, while, for, continue, break,
também funcionam de maneira análoga ao C. Mas há uma novidade: o comando
for na forma de "for each":
29
Funções acessadas pelo método main
No paradigma de Orientação a Objetos, trabalhamos mais comumente com
métodos de classes do que funções por si. O método pertence à classe, como é o
caso da função main. Porém, dada a natureza estática (static) da função main,
só podemos chamar métodos igualmente static dentro dela, ou métodos
definidos por objetos já disponíveis em seu contexto.
31
Praticando
32
Exercício da Prova 3 de Introdução à
Programação de Engenharia Mecânica
Uma determinada turma do curso de Engenharia Mecânica possui 5 alunos. O professor de Introdução
à Programação aplicou 3 avaliações (AV1, AV2 e AV3) durante o semestre. A AV1 teve peso 2, enquanto
a AV2 e a AV3 tiveram peso 3:
Crie um programa em C que, na função principal (main), solicite as 3 notas de provas de cada aluno
(utilizando para isso um laço de repetição).
O cálculo da média do aluno deve ser realizado, a cada iteração, através de uma função específica
obterMediaAluno(). A média de cada aluno deve: i) ser retornada pela função, ii) mostrada na
função principal e iii) guardada em um vetor; à medida em que for calculada.
Ao final, o programa deve calcular e mostrar a média da turma através de uma segunda função
obterMediaTurma(), que: i) recebe como parâmetro o vetor das médias dos alunos da turma e ii)
retorna a média, que deve ser mostrada na função principal.
33
Obrigado!
Dúvidas ou sugestões:
[email protected]
34
Do C ao Java
Uma breve apresentação da linguagem Java
2023/2