Java e orientação a objetos - aula 01

26
Java e Orientação a Objetos - Aula 01 John Godoi

Transcript of Java e orientação a objetos - aula 01

Page 1: Java e orientação a objetos - aula 01

Java e Orientação a

Objetos-

Aula 01John Godoi

Page 2: Java e orientação a objetos - aula 01

Algoritmo e CódigoQuando 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.

Page 3: Java e orientação a objetos - aula 01

Lógica de ProgramaçãoParte 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.

Page 4: Java e orientação a objetos - aula 01

VariáveisVariá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).

Page 5: Java e orientação a objetos - aula 01

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

Page 6: Java e orientação a objetos - aula 01

Tabela asc IIA 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

Page 7: Java e orientação a objetos - aula 01

VariáveisExemplo 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’;

Page 8: Java e orientação a objetos - aula 01

VetoresA 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];

Page 9: Java e orientação a objetos - aula 01

WrappersWrappers 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.

Page 10: Java e orientação a objetos - aula 01

OperadoresOperadores podem ser aritméticos, como:

+ soma

- subtração

/ divisão

* multiplicação

% Módulo (resto da divisão)

Page 11: Java e orientação a objetos - aula 01

OperadoresOperadores podem ser lógico, como:

&& AND <= Menor ou igual

|| OR == igual

> Maior != diferente

>= Maior ou Igual

< Menor

Page 12: Java e orientação a objetos - aula 01

Estruturas de Controle de FluxoSã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 {

//…

}

Page 13: Java e orientação a objetos - aula 01

Estruturas de RepetiçãoCom 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

Page 14: Java e orientação a objetos - aula 01

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}

Page 15: Java e orientação a objetos - aula 01

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.

Page 16: Java e orientação a objetos - aula 01

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○ http://www.oracle.com/technetwork/java/community/index.html

Page 17: Java e orientação a objetos - aula 01

Paradigmas de programaçãoParadigmas 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.

Page 18: Java e orientação a objetos - aula 01

Orientação a objetosOs 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.

Page 19: Java e orientação a objetos - aula 01

Orientação a objetosExemplo de uma classe em Java:

//arquivo: Principal.java

public class Principal {

public static void main(String []args){

System.out.println(“Hello World”);

}

}

Page 20: Java e orientação a objetos - aula 01

Orientação a objetosNa 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, ...

Page 21: Java e orientação a objetos - aula 01

Orientação a objetosAinda 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.

Page 22: Java e orientação a objetos - aula 01

Exercícios

Which of the following Java operators can be used with boolean variables? (Choose all that apply)

A. ==

B. +

C. -

D. !

E. %

F. <=

Page 23: Java e orientação a objetos - aula 01

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.

Page 24: Java e orientação a objetos - aula 01

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.

Page 25: Java e orientação a objetos - aula 01

Exercícios1. 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.

Page 26: Java e orientação a objetos - aula 01

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/pli/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