SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Java e
Orientação a
Objetos
-
Aula 01
John Godoi
Algoritmo e Código
Quando busca-se uma solução para um problema computacional, ela pode ser obtida
por meio de duas formas:
● Algoritmo: que representa a abstração da solução, a ideia, normalmente escrita
em forma de pseudo-código (que normalmente não pode ser executado) apenas
a fim de visualização. Sequência de passos ou instruções.
● Código: a implementação do algoritmo, escrito em alguma linguagem de
programação (Java por exemplo) que poderá ser passado para o computador e
executado.
Lógica de Programação
Parte da lógica de programação envolve lógica e racioncínio matemático.
É o raciocínio necessário para desenvolver um algoritmo ou código de um programa
se utilizando das ferramentas e funcionalidades que a linguagem dispõe.
Dentre as funcionalidades básicas de uma linguagem de programação temos as
variáveis, os operadores, as estruturas de controle e repetição.
Variáveis
Variável é funcionalidade que a linguagem dispõe para armazenar informações de
forma temporária.
Em Java para utilizar variáveis devemos primeiramente declará-las, para declarar
uma variável devemos definir o tipo da variável a ser utilizada.
Os tipos de variáveis em Java podem ser primitivos (short, int, long, float, double,
char, boolean, byte), Classes (como nos Wrappers dos tipos primitivos: Short,
Integer, Long, Float, Double, Char, Boolean, Byte).
Tipos primitivos
short -32.768 a 32.767 char Carácteres como : ‘a’, ‘B’, ...
int -2.147.483.648 e 2.147.483.647 byte -128 a 127
long -9.223.372.036.854.775.808 a
9.223.372.036.854.775.807
boolean true ou false
float valores positivos que podem ser
representados são
1.40239846e-46 a
3.40282347e+38
double valores positivos que podem
ser representados são
4.94065645841246544e-324 a
1.7976931348623157e+308
Tabela asc II
A tabela asc ii codifica valores inteiros para caracteres, facilitando assim sua
transcrição para código de máquina.
https://upload.wikimedia.org/wikipedia/commons/d/dd/ASCII-Table.svg
Variáveis
Exemplo de declaração de variáveis:
int i;
Inicialização de variáveis, para inicializar uma variável é atribuído (usando o carácter
= ) um valor inicial:
char c = ‘a’;
Vetores
A forma mais simples de representar um conjunto de variáveis de mesmo tipo é por
meio de vetores.
Declaramos vetores da seguinte forma: int []vetor;
E para inicializa um vetor usamos a palavra reservada new, como em int []vetor = new
int[10]; em que alocamos um vetor de valores inteiros com 10 posições.
Para os vetores mapearem os diversos valores do conjunto são usados indíces
indicados entre []. Os indíces que variam de zero ao tamanho do vetor -1.
int x = vetor[0];
Wrappers
Wrappers são classes fornecidas pelo Java que fornecem funcionalidades comuns na
manipulações de valores dos tipos primitivos.
Um dos principais exemplos de Wrappers é o String que possuem diversas
funcionalidades como .concat(String) (que retorna uma nova String com os valores da
primeira concatenado com a passada por parâmetro) e .equals (que permite
comparar se duas String ou Objetos de outras classes são iguais).
A linguagem Java não permite sobreescrever operadores, logo ao se comparar
objetos em Java o operador (==) não compara os valores de cada objeto e sim suas
posições de memória.
Operadores
Operadores podem ser aritméticos, como:
+ soma
- subtração
/ divisão
* multiplicação
% Módulo (resto da divisão)
Operadores
Operadores podem ser lógico, como:
&& AND <= Menor ou igual
|| OR == igual
> Maior != diferente
>= Maior ou Igual
< Menor
Estruturas de Controle de Fluxo
São estruturas que definem condições que quais partes do programa que devem
executadas. Essas condições são expressões booleanas ()
Em Java definimos estruturas de controle de fluxo com:
if( expressãoBooleana ) {
//…
} else {
//…
}
if( expressãoBooleana ) {
//…
else if (expressãoBoolean){
// ...
} else {
//…
}
Estruturas de Repetição
Com essas estruturas definimos que partes do código serão executadas
repetidamente conforme alguma condição baseada em expressões booleanas.
Algumas das estruturas de repetição fornecidas pelo Java são:
● do-while: que executa um trecho do código, incondicionalmente, e o repete se a
expressão booleana for verdadeira
● while: que executará e repetirá um trecho do código se a expressão booleana se
manter verdadeira
Estruturas de Repetição
● for: é uma estrutura de repetição que possui três fases de controle:
inicialização, avaliação e passo. Na inicialização são colocadas instruções a fim
de inicializar o laço de repetição como atribuir valores para variáveis. Na
avaliação é inserida uma expressão booleana que determina se o trecho de
código deve ser executado ou repetido. No passo é determinado como será o
caminhar da repetição. De quanto em quanto ou de qual para qual valor serão
atualizadas as variáveis verificadas na fase de avaliação.
do{
// instruções a serem
// repetidas
} while (expressãoBooleana);
while(expressãoBooleana) {
// instruções a serem
// repetidas
}
for(int i=0; i<10; i++){
//instruções a serem repetidas
}
O que é Java?
Java é toda uma plataforma para desenvolvimento de aplicações multiplataforma
(vários sistemas operacionais, desde desktop há sistema móveis).
O Java como plataforma é composto da linguagem e da Máquina Virtual Java (JVM).
A linguagem Java é originalmente orientada a objetos e estática (exige a definição de
tipo e estruturas devem ser feitas no tempo de compilação).
A JVM também suporta outras linguagens além do Java, tais como: Groovy e Scala
(que foram criadas para serem executadas na JVM), além outras como Ruby, Python
e JavaScript.
Porquê Java?
● Mercado de Trabalho
○ É a linguagem que possui maior demanda no mercado de trabalho
● Empresas
○ Diversas empresas grande do mercado de tecnologia adotam a linguagem Java no
desenvolvimento de suas soluções (Twitter, Linkedin, Google, entre outras).
● Histórias de migração
○ http://www.infoq.com/articles/twitter-java-use
○ http://www.techworm.net/2016/01/why-did-google-choose-java-as-default-application-progra
mming-language-for-android.html
● Comunidade
Paradigmas de programação
Paradigmas de programação são métodos ou estilos de programação, que forçam
alguma forma de estruturação ou modularização do código.
Os paradigmas suportados pelo Java temos:
● Procedural: estilo de programação em que os códigos focam na elaboração de
uma sequência de instruções a fim de dada uma entrada obter uma saída.
● Funcional: nesse estilo de programação a unidade básica das linguagens são as
funções, as funções podem ser passadas para outras funções como parâmetros
e mesmo mantidas em variáveis. Buscam evitar a alteração de valores e em
troca repassam novas instâncias com os novos valores. Tem sido bastante
usadas para soluções em que o foco é a concorrência ou paralelismo.
Orientação a objetos
Os códigos orientados a objetos possuem uma estruturação de código com definição
mais explícita de divisão de responsabilidades por meio de classes.
Assim como a restrição de acesso a informações e definição de ações específicas que
podem ser executadas sobre os objetos das classes.
Classe: classe se trata do tipo de um objeto, a abstração. A classe define
características e ações que um objeto daquele tipo podem ter. Um classe Pessoa
pode ter uma característica nome.
Objeto: instância de uma classe, concretização. Objetos de uma mesma classe
podem ser ter características e ações iguais mas possuem valores dessas
características diferentes. Um objeto da classe Pessoa pode ter o nome John.
Orientação a objetos
Exemplo de uma classe em Java:
//arquivo: Principal.java
public class Principal {
public static void main(String []args){
System.out.println(“Hello World”);
}
}
Orientação a objetos
Na definição de uma classe em Java é importante ressaltar que o arquivo deve ter o
mesmo nome da classe. Inclusive considerando as letras maiúsculas e minúsculas.
Em Java são adotadas algumas conversões para a escrita de código, dentre elas é
determinado o uso de CamelCase para nomes de variáveis, métodos, classes,
enumeradores e etc. Sendo que varíaveis e métodos devem começar com a primeira
letra do nome como minúscula e classes e enumeradores devem começar com a
primeira letra como maiúscula.
Exemplos de CamelCase: FluxoDeCaixa, TipoDeJogo, registrarEProcessar(),
quantidadeDeItens, ...
Orientação a objetos
Ainda sobre exemplo anterior temos o uso da palavra reservada static que indica que
o método poderá ser acessado a partir da classe como: Principal.main(“Principal 1 2
3”);. Em aulas posteriores isso será melhor apresentado.
Ainda temos a definição do parâmetro String [] args, que se trata de um conjunto de
valores que chamamos de vetor e que veremos melhor a respeito ainda nessa aula.
Exercícios
Which of the following Java operators can be used with boolean variables?
(Choose all that apply)
A. ==
B. +
C. -
D. !
E. %
F. <=
Exercícios
What is the output of the following code snippet?
3: int x = 4;
4: long y = x * 4 - x++;
5: if(y<10) System.out.println("Too Low");
6: else System.out.println("Just right");
7: else System.out.println("Too High");
A. Too Low B. Just Right C. Too High D. Compiles but throws a NullPointerException. E. The
code will not compile because of line 6. F. The code will not compile because of line 7.
Exercícios
How many times will the following code print "Hello World"? 3
: for(int i=0; i<10 ; ) {
4: i = i++;
5: System.out.println("Hello World");
6: } A
. 9 B. 10 C. 11 D. The code will not compile because of line 3. E. The code will not
compile because of line 5. F. The code contains an infinite loop and does not
terminate.
Exercícios
1. Faça um programa em java que calcule o valor de 20! (Fatorial)
2. Faça um programa que dado um vetor com 15 valores exiba no terminal os valores na ordem inversa da que
foram inseridos no vetor
3. Faça um programa que exiba os valores decimais da tabela asc ii dos caracteres de vetor de char
4. Faça um programa que para um dado vetor de caracteres exiba a posição no alfabeto de cada caracter no vetor
5. Declare uma variável e a inicialize com o valor 12345678900
6. Faça um programa que verifique de 1 a 30 quais números são múltiplos de 2 ou 3. Se for múltiplo de 2 exiba a
mensagem “FIZZ” e se for múltiplo de 3 exiba a mensagem “BUZZ”. E se for múltiplo de tanto de 2 quanto de 3
exiba as duas mensagens.
Referências
● Desbravando Java e Orientação a Objetos -
Casa do Código - Rodrigo Turini
● Material da PUCRS - Prof. Isabel Hab Mansour -
Paradigmas de Linguagens:
http://www.inf.pucrs.br/~gustavo/disciplinas/pl
i/material/paradigmas-aula01
● Java Coding Style Guide - Achut Reddy - Sun
Microsystems, Inc
● OCA: Oracle Certified Associate Java SE 8
Programmer I Study Guide - Sybex - Jeanne
Boyarsky e Scott Selikoff

Mais conteúdo relacionado

Mais procurados

Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java BasicoJoel Lobo
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Java Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em JavaJava Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em JavaFábio Antonelli
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao SwingArthur Emanuel
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoMarconi Rodrigues
 
Curso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NETCurso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NETLeonardo Melo Santos
 
Unidade iii aula 02 - introdução ao java
Unidade iii   aula 02 - introdução ao javaUnidade iii   aula 02 - introdução ao java
Unidade iii aula 02 - introdução ao javaNécio de Lima Veras
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceArthur Emanuel
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 

Mais procurados (20)

Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Java2
Java2Java2
Java2
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Java11
Java11Java11
Java11
 
Java Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em JavaJava Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em Java
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Java13
Java13Java13
Java13
 
Curso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NETCurso de OO com C# - Parte 03 - Plataforma .NET
Curso de OO com C# - Parte 03 - Plataforma .NET
 
Unidade iii aula 02 - introdução ao java
Unidade iii   aula 02 - introdução ao javaUnidade iii   aula 02 - introdução ao java
Unidade iii aula 02 - introdução ao java
 
Aula4
Aula4Aula4
Aula4
 
Java5
Java5Java5
Java5
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 

Semelhante a Java e orientação a objetos - aula 01

Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 
Linguagem Java OO | Curso 3WAY Networks
Linguagem Java OO | Curso 3WAY NetworksLinguagem Java OO | Curso 3WAY Networks
Linguagem Java OO | Curso 3WAY Networks3Way Networks
 
F I C+ + L P 05
F I C+ + L P 05F I C+ + L P 05
F I C+ + L P 05t34m0nana
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova Rogério Cardoso
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência JavaMario Jorge Pereira
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesOziel Moreira Neto
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixCris Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixCris Fidelix
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaRegis Magalhães
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 

Semelhante a Java e orientação a objetos - aula 01 (20)

Linguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação JavaLinguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação Java
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
Linguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem JavaLinguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem Java
 
Linguagem Java OO | Curso 3WAY Networks
Linguagem Java OO | Curso 3WAY NetworksLinguagem Java OO | Curso 3WAY Networks
Linguagem Java OO | Curso 3WAY Networks
 
modulo1.pdf
modulo1.pdfmodulo1.pdf
modulo1.pdf
 
F I C+ + L P 05
F I C+ + L P 05F I C+ + L P 05
F I C+ + L P 05
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
7194099-Manual-de-Java
7194099-Manual-de-Java7194099-Manual-de-Java
7194099-Manual-de-Java
 
lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova lista de exercícios de estrutura de dados Básico primeira prova
lista de exercícios de estrutura de dados Básico primeira prova
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Aula5
Aula5Aula5
Aula5
 
Java básico
Java básicoJava básico
Java básico
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane Fidelix
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 

Mais de John Godoi

(5) maneiras de motivar a si mesmo
(5) maneiras de motivar a si mesmo(5) maneiras de motivar a si mesmo
(5) maneiras de motivar a si mesmoJohn Godoi
 
The Passionate Programmer (Career tips and learnings)
The Passionate Programmer (Career tips and learnings)The Passionate Programmer (Career tips and learnings)
The Passionate Programmer (Career tips and learnings)John Godoi
 
O jogo mental do poker
O jogo mental do pokerO jogo mental do poker
O jogo mental do pokerJohn Godoi
 
There is no box
There is no boxThere is no box
There is no boxJohn Godoi
 
Comandos do Linux
Comandos do LinuxComandos do Linux
Comandos do LinuxJohn Godoi
 
Intro to java 8
Intro to java 8Intro to java 8
Intro to java 8John Godoi
 
Introduction to apache spark
Introduction to apache sparkIntroduction to apache spark
Introduction to apache sparkJohn Godoi
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanshipJohn Godoi
 

Mais de John Godoi (15)

(5) maneiras de motivar a si mesmo
(5) maneiras de motivar a si mesmo(5) maneiras de motivar a si mesmo
(5) maneiras de motivar a si mesmo
 
The Passionate Programmer (Career tips and learnings)
The Passionate Programmer (Career tips and learnings)The Passionate Programmer (Career tips and learnings)
The Passionate Programmer (Career tips and learnings)
 
Spring boot
Spring bootSpring boot
Spring boot
 
O jogo mental do poker
O jogo mental do pokerO jogo mental do poker
O jogo mental do poker
 
There is no box
There is no boxThere is no box
There is no box
 
Gimplabs2
Gimplabs2 Gimplabs2
Gimplabs2
 
Gimplabs3
Gimplabs3 Gimplabs3
Gimplabs3
 
Gcc
Gcc Gcc
Gcc
 
Git básico
Git básicoGit básico
Git básico
 
Gimplabs1
Gimplabs1 Gimplabs1
Gimplabs1
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Comandos do Linux
Comandos do LinuxComandos do Linux
Comandos do Linux
 
Intro to java 8
Intro to java 8Intro to java 8
Intro to java 8
 
Introduction to apache spark
Introduction to apache sparkIntroduction to apache spark
Introduction to apache spark
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanship
 

Último

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Java e orientação a objetos - aula 01

  • 2. Algoritmo e Código Quando busca-se uma solução para um problema computacional, ela pode ser obtida por meio de duas formas: ● Algoritmo: que representa a abstração da solução, a ideia, normalmente escrita em forma de pseudo-código (que normalmente não pode ser executado) apenas a fim de visualização. Sequência de passos ou instruções. ● Código: a implementação do algoritmo, escrito em alguma linguagem de programação (Java por exemplo) que poderá ser passado para o computador e executado.
  • 3. Lógica de Programação Parte da lógica de programação envolve lógica e racioncínio matemático. É o raciocínio necessário para desenvolver um algoritmo ou código de um programa se utilizando das ferramentas e funcionalidades que a linguagem dispõe. Dentre as funcionalidades básicas de uma linguagem de programação temos as variáveis, os operadores, as estruturas de controle e repetição.
  • 4. Variáveis Variável é funcionalidade que a linguagem dispõe para armazenar informações de forma temporária. Em Java para utilizar variáveis devemos primeiramente declará-las, para declarar uma variável devemos definir o tipo da variável a ser utilizada. Os tipos de variáveis em Java podem ser primitivos (short, int, long, float, double, char, boolean, byte), Classes (como nos Wrappers dos tipos primitivos: Short, Integer, Long, Float, Double, Char, Boolean, Byte).
  • 5. Tipos primitivos short -32.768 a 32.767 char Carácteres como : ‘a’, ‘B’, ... int -2.147.483.648 e 2.147.483.647 byte -128 a 127 long -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 boolean true ou false float valores positivos que podem ser representados são 1.40239846e-46 a 3.40282347e+38 double valores positivos que podem ser representados são 4.94065645841246544e-324 a 1.7976931348623157e+308
  • 6. Tabela asc II A tabela asc ii codifica valores inteiros para caracteres, facilitando assim sua transcrição para código de máquina. https://upload.wikimedia.org/wikipedia/commons/d/dd/ASCII-Table.svg
  • 7. Variáveis Exemplo de declaração de variáveis: int i; Inicialização de variáveis, para inicializar uma variável é atribuído (usando o carácter = ) um valor inicial: char c = ‘a’;
  • 8. Vetores A forma mais simples de representar um conjunto de variáveis de mesmo tipo é por meio de vetores. Declaramos vetores da seguinte forma: int []vetor; E para inicializa um vetor usamos a palavra reservada new, como em int []vetor = new int[10]; em que alocamos um vetor de valores inteiros com 10 posições. Para os vetores mapearem os diversos valores do conjunto são usados indíces indicados entre []. Os indíces que variam de zero ao tamanho do vetor -1. int x = vetor[0];
  • 9. Wrappers Wrappers são classes fornecidas pelo Java que fornecem funcionalidades comuns na manipulações de valores dos tipos primitivos. Um dos principais exemplos de Wrappers é o String que possuem diversas funcionalidades como .concat(String) (que retorna uma nova String com os valores da primeira concatenado com a passada por parâmetro) e .equals (que permite comparar se duas String ou Objetos de outras classes são iguais). A linguagem Java não permite sobreescrever operadores, logo ao se comparar objetos em Java o operador (==) não compara os valores de cada objeto e sim suas posições de memória.
  • 10. Operadores Operadores podem ser aritméticos, como: + soma - subtração / divisão * multiplicação % Módulo (resto da divisão)
  • 11. Operadores Operadores podem ser lógico, como: && AND <= Menor ou igual || OR == igual > Maior != diferente >= Maior ou Igual < Menor
  • 12. Estruturas de Controle de Fluxo São estruturas que definem condições que quais partes do programa que devem executadas. Essas condições são expressões booleanas () Em Java definimos estruturas de controle de fluxo com: if( expressãoBooleana ) { //… } else { //… } if( expressãoBooleana ) { //… else if (expressãoBoolean){ // ... } else { //… }
  • 13. Estruturas de Repetição Com essas estruturas definimos que partes do código serão executadas repetidamente conforme alguma condição baseada em expressões booleanas. Algumas das estruturas de repetição fornecidas pelo Java são: ● do-while: que executa um trecho do código, incondicionalmente, e o repete se a expressão booleana for verdadeira ● while: que executará e repetirá um trecho do código se a expressão booleana se manter verdadeira
  • 14. Estruturas de Repetição ● for: é uma estrutura de repetição que possui três fases de controle: inicialização, avaliação e passo. Na inicialização são colocadas instruções a fim de inicializar o laço de repetição como atribuir valores para variáveis. Na avaliação é inserida uma expressão booleana que determina se o trecho de código deve ser executado ou repetido. No passo é determinado como será o caminhar da repetição. De quanto em quanto ou de qual para qual valor serão atualizadas as variáveis verificadas na fase de avaliação. do{ // instruções a serem // repetidas } while (expressãoBooleana); while(expressãoBooleana) { // instruções a serem // repetidas } for(int i=0; i<10; i++){ //instruções a serem repetidas }
  • 15. O que é Java? Java é toda uma plataforma para desenvolvimento de aplicações multiplataforma (vários sistemas operacionais, desde desktop há sistema móveis). O Java como plataforma é composto da linguagem e da Máquina Virtual Java (JVM). A linguagem Java é originalmente orientada a objetos e estática (exige a definição de tipo e estruturas devem ser feitas no tempo de compilação). A JVM também suporta outras linguagens além do Java, tais como: Groovy e Scala (que foram criadas para serem executadas na JVM), além outras como Ruby, Python e JavaScript.
  • 16. Porquê Java? ● Mercado de Trabalho ○ É a linguagem que possui maior demanda no mercado de trabalho ● Empresas ○ Diversas empresas grande do mercado de tecnologia adotam a linguagem Java no desenvolvimento de suas soluções (Twitter, Linkedin, Google, entre outras). ● Histórias de migração ○ http://www.infoq.com/articles/twitter-java-use ○ http://www.techworm.net/2016/01/why-did-google-choose-java-as-default-application-progra mming-language-for-android.html ● Comunidade
  • 17. Paradigmas de programação Paradigmas de programação são métodos ou estilos de programação, que forçam alguma forma de estruturação ou modularização do código. Os paradigmas suportados pelo Java temos: ● Procedural: estilo de programação em que os códigos focam na elaboração de uma sequência de instruções a fim de dada uma entrada obter uma saída. ● Funcional: nesse estilo de programação a unidade básica das linguagens são as funções, as funções podem ser passadas para outras funções como parâmetros e mesmo mantidas em variáveis. Buscam evitar a alteração de valores e em troca repassam novas instâncias com os novos valores. Tem sido bastante usadas para soluções em que o foco é a concorrência ou paralelismo.
  • 18. Orientação a objetos Os códigos orientados a objetos possuem uma estruturação de código com definição mais explícita de divisão de responsabilidades por meio de classes. Assim como a restrição de acesso a informações e definição de ações específicas que podem ser executadas sobre os objetos das classes. Classe: classe se trata do tipo de um objeto, a abstração. A classe define características e ações que um objeto daquele tipo podem ter. Um classe Pessoa pode ter uma característica nome. Objeto: instância de uma classe, concretização. Objetos de uma mesma classe podem ser ter características e ações iguais mas possuem valores dessas características diferentes. Um objeto da classe Pessoa pode ter o nome John.
  • 19. Orientação a objetos Exemplo de uma classe em Java: //arquivo: Principal.java public class Principal { public static void main(String []args){ System.out.println(“Hello World”); } }
  • 20. Orientação a objetos Na definição de uma classe em Java é importante ressaltar que o arquivo deve ter o mesmo nome da classe. Inclusive considerando as letras maiúsculas e minúsculas. Em Java são adotadas algumas conversões para a escrita de código, dentre elas é determinado o uso de CamelCase para nomes de variáveis, métodos, classes, enumeradores e etc. Sendo que varíaveis e métodos devem começar com a primeira letra do nome como minúscula e classes e enumeradores devem começar com a primeira letra como maiúscula. Exemplos de CamelCase: FluxoDeCaixa, TipoDeJogo, registrarEProcessar(), quantidadeDeItens, ...
  • 21. Orientação a objetos Ainda sobre exemplo anterior temos o uso da palavra reservada static que indica que o método poderá ser acessado a partir da classe como: Principal.main(“Principal 1 2 3”);. Em aulas posteriores isso será melhor apresentado. Ainda temos a definição do parâmetro String [] args, que se trata de um conjunto de valores que chamamos de vetor e que veremos melhor a respeito ainda nessa aula.
  • 22. Exercícios Which of the following Java operators can be used with boolean variables? (Choose all that apply) A. == B. + C. - D. ! E. % F. <=
  • 23. Exercícios What is the output of the following code snippet? 3: int x = 4; 4: long y = x * 4 - x++; 5: if(y<10) System.out.println("Too Low"); 6: else System.out.println("Just right"); 7: else System.out.println("Too High"); A. Too Low B. Just Right C. Too High D. Compiles but throws a NullPointerException. E. The code will not compile because of line 6. F. The code will not compile because of line 7.
  • 24. Exercícios How many times will the following code print "Hello World"? 3 : for(int i=0; i<10 ; ) { 4: i = i++; 5: System.out.println("Hello World"); 6: } A . 9 B. 10 C. 11 D. The code will not compile because of line 3. E. The code will not compile because of line 5. F. The code contains an infinite loop and does not terminate.
  • 25. Exercícios 1. Faça um programa em java que calcule o valor de 20! (Fatorial) 2. Faça um programa que dado um vetor com 15 valores exiba no terminal os valores na ordem inversa da que foram inseridos no vetor 3. Faça um programa que exiba os valores decimais da tabela asc ii dos caracteres de vetor de char 4. Faça um programa que para um dado vetor de caracteres exiba a posição no alfabeto de cada caracter no vetor 5. Declare uma variável e a inicialize com o valor 12345678900 6. Faça um programa que verifique de 1 a 30 quais números são múltiplos de 2 ou 3. Se for múltiplo de 2 exiba a mensagem “FIZZ” e se for múltiplo de 3 exiba a mensagem “BUZZ”. E se for múltiplo de tanto de 2 quanto de 3 exiba as duas mensagens.
  • 26. Referências ● Desbravando Java e Orientação a Objetos - Casa do Código - Rodrigo Turini ● Material da PUCRS - Prof. Isabel Hab Mansour - Paradigmas de Linguagens: http://www.inf.pucrs.br/~gustavo/disciplinas/pl i/material/paradigmas-aula01 ● Java Coding Style Guide - Achut Reddy - Sun Microsystems, Inc ● OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide - Sybex - Jeanne Boyarsky e Scott Selikoff