curso java básico - aula02

28
Java Básico Aula 02 Natanael Fonseca - Arquiteto de Software

Upload: natanael-fonseca

Post on 19-Jul-2015

76 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Curso Java Básico - Aula02

Java BásicoAula 02

Natanael Fonseca - Arquiteto de Software

Page 2: Curso Java Básico - Aula02

Ementa

• Controle de Fluxo e Arrays;

• Introdução a criação de classes;

Page 3: Curso Java Básico - Aula02

Arrays

São estruturas de dados capazes de representar uma coleção de variáveis de um mesmo tipo.

Sintaxe:<tipoElemento>[] <nomeVariavel>;ou <tipoElemento> <nomeVariavel>[];

Exemplo:

int[] umArray;Int umArray[];

Arrays 3

Page 4: Curso Java Básico - Aula02

Caracteristicas

• Todo array é uma variável do tipo Reference;• Quando declarado em escopo local deve ser inicializado

antes de seu uso;• Quando declarado fora de um método será inicializado

como null;• Todo Array é indexado a partir do 0;• A forma mais utilizada de inicialização é usando a palavra

reservada new.Exemplo: int[] umArray = new int[5];

Arrays 4

Page 5: Curso Java Básico - Aula02

Valores de Inicialização

• Ao declarar um array e inicializa-lo utilizando a palavrareservada new, todos os elementos do array são inicializadosseguindo a seguinte tabela de valores padrão:

Arrays 5

Tipo Valor de inicialização

byte 0

short 0

int 0

long 0

float 0

double 0

char ‘\u0000’

boolean false

reference null

Page 6: Curso Java Básico - Aula02

Inicializando um array

Segue alguns exemplos:

• Int[] umArray = new[5];umArray[0] = 1;umArray[1] = 0;umArray[2] = -1;umArray[3] = 19;umArray[4] = 2;

• int[] umArray = {1,0,-1,19,2};

Arrays 6

Page 7: Curso Java Básico - Aula02

Iterando por um Array

Utilizando um loop for:

class Principal{public static void main(String[] args){

float[] teste = { 1F, 2.5F, 3F, 4.12F, 5.6F};for( int i = 0; i< teste.length;i++ ){

System.out.println( “[ ” + teste[i] + “ ]” );}

}}

Arrays 7

Page 8: Curso Java Básico - Aula02

Arrays Bidimensionais

[0] *

[1] *

[2] *

Arrays 8

Java não tem um estrutura especial para representar arrays deduas dimensões, no entanto, podemos representar um arraybidimensional declarando um array composto por outros arrays.

Exemplo:

Int[][] array1 = new int[3][2]; [0] *

[1] *

[0] *

[1] *

[0] *

[1] *

Page 9: Curso Java Básico - Aula02

Arrays Multidimensionais

Arrays 9

Mesmo conceito visto anteriormente, portanto, fica fácil criararrays das mais diversas dimensões.

Alguns exemplos:

//Declaração de um array de três dimensões

char[][][] array3 = new char[2][2][2];

//Declaração de inicialização em um único comando de um arrayde três dimensões

char[][][] array4 = { {{1,1},{1,2}}, {{2,1},{2,2}}, {{3,1},{3,2}} };

Page 10: Curso Java Básico - Aula02

Pontos Negativos dos Arrays

Arrays 10

De um modo geral, a utilização de arrays em um programa éessencial, contudo, ainda vale mencionar alguns pontosnegativos:

• Não permite redimensionamento;

• Em se tratando de tipos primitivos, são estruturas de um tiposó, o que dificulta sua utilização em cenários mais complexos;

• Índice 0 para o primeiro elemento pode gerar confusão;

Page 11: Curso Java Básico - Aula02

Enhanced ForRecurso incluído na versão 1.5 do JavaSE. Considerada uma melhoria, pois melhora a navegação dos elementos de uma coleção de objetos (Arrays, Coleções, Mapas, etc.).

Sintaxe:for( <Object<Tipo dos dados do Array> oObjeto : array ){}

Exemplo:

class Principal{public static void main(String[] args){

int arr[] = {1,2,3,4};for(int valor: arr){

System.out.println(valor);}

}}

Arrays 11

Page 12: Curso Java Básico - Aula02

Método mainO método main recebe como parâmetro um array de Strings que representa os argumentos que podem ser passados via linha de comando. Ou seja, cada valor passado (separado por espaço) depois do nome da classe na execução da classe e considerado um elemento do array recebido pelo método main.

Declaração :public static void main(String[] args){}

Exemplo:

class Principal{public static void main(String[] args){

for( String valor : args ){System.out.println( valor );

}}

}

Ao Rodar este programa com o comando:java Principal param1 param2 param3Irá imprimirparam1 param2 param3

Arrays 12

Page 13: Curso Java Básico - Aula02

Exercício

Escreva um programa que exiba a soma dos valores do tipo double vindos do console.

Ex: java MeuPrograma 2.3 5.4 6.5 7.8

Arrays 13

Page 14: Curso Java Básico - Aula02

ExercícioUtilize um array bidimensional para resolver o seguinteproblema: Uma empresa tem 3 equipes de venda, sendoque uma vez por dia cada vendedor informa ao programaas seguintes informações:• O número do vendedor;• O número do produto;• O valor total em reais desse produto vendido nesse dia;Escreva um aplicativo que utilize a classe Scanner para lerdos três vendedores as informações necessárias e emseguida armazene-as no array criado. Ao final da coletados dados exibe um resumo dessas informações.

Arrays 14

Page 15: Curso Java Básico - Aula02

O que é uma Classe ?Uma classe é definida pelo usuário pelas especificações que a identificam.

Classe = Características + comportamentos

Como exercício, vamos pensar em possíveis classes, mas não vamos ficar presos no básico !

Classes malucas :

Classe Eletricidade ? Classe Travesseiro ? Classe de uma Classe ? Classe Deus ?

Introdução a criação de classes 15

Page 16: Curso Java Básico - Aula02

O que é um Objeto ?

Uma vez definida a classe, podemos imaginarocorrências especificas desta, basta pensarmosna relação modelo x instancia.

A classe Carro pode carregar característicascomuns a diversos veículos existentes, mas oque seriam os objetos/instancias ?

Ex: Golf, Vectra, Mercedez, Astra, Gol e etc.....

Introdução a criação de classes 16

Page 17: Curso Java Básico - Aula02

Conceitos ImportantesNo dia a dia é comum encontrarmos softwares que não seguem a risca os conceitos abaixo:

• Granularidade;

• Coesão;

• Acoplamento;

Vocês conhecem algum exemplo ?

Isso se aplica apenas ao mundo Java e orientação a objeto ?

Introdução a criação de classes 17

Page 18: Curso Java Básico - Aula02

Estrutura de uma Classe.Como dito anteriormente, um programa em javanormalmente é composto por várias classes,portanto, o bom entendimento deste tópico éfundamental para o restante do curso.

Observe o exemplo abaixo que declara a classe Pessoa :

****************************************public class Pessoa{

//Variaveis//Construtores//Metodos

}****************************************

Introdução a criação de classes 18

Page 19: Curso Java Básico - Aula02

Criando um métodoUma classe pode ter N métodos, cada método deve ser declarado conforme sintaxe a seguir:

Sintaxe :<modificador> <tipoRetorno> <nomemetodo>(<parametros>){

//Corpo do Método}

Exemplo:

public class Pessoa{

public void andar(){ System.out.println(“Andando......”);

}

}

Introdução a criação de classes 19

Page 20: Curso Java Básico - Aula02

Retorno de um métodoOs métodos em Java podem retornar um valor para o código que os chamou, As regras são:

• Utilizar a palavra reservada return seguida pelo valor a ser retornado.

• O valor de retorno deve ser compatível com o tipo declarado na assinatura do método;

• O valor de retorno pode ser um literal;

• O retorno pode ser obtido por meio da avaliação de uma expressão ou até mesmo a chamada de outro método;

• Quando um método não retorna valor algum, indica-se em sua declaração que seu tipo de retorno é void;

Introdução a criação de classes 20

Page 21: Curso Java Básico - Aula02

Chamando um métodoPara chamar um método de uma classe, você primeiramente deve criar uma instancia daquela classe e então chamar o método a partir desta.

public Principal{

public static void main(String[] args){

Pessoa p = new Pessoa(); //Criando uma instancia da classe Pessoa

p.andar(); //Chamando método andar da classe pessoa

}

}

Introdução a criação de classes 21

Page 22: Curso Java Básico - Aula02

Variáveis de instanciaSão variáveis(atributos) declaradas dentro da declaração da classe, mas fora do corpo das declarações de método da classe.

Quando uma classe é instanciada cada objeto mantém uma copia dos atributos declarados na classe.

Caso não forneça um valor para a variável, esta irá receber um valor padrão.

public class Pessoa{

String nome; //variável de instancia

public void andar(){

System.out.println( “Sr.” + nome + “Andando......” );

}

}

Introdução a criação de classes 22

Page 23: Curso Java Básico - Aula02

Modificando uma variável de instancia

Cada objeto possui sua copia da variável, portando, qualquer alteração em um objeto não afeta o outro objeto.

public Principal{

public static void main(String[] args){Pessoa objeto1 = new Pessoa(); objeto1.nome = “Joaozinho”;Pessoa objeto2 = new Pessoa(); objeto2.nome = “Pedrinho”;objeto1.andar(); objeto2.andar();

}

}

Introdução a criação de classes 23

Page 24: Curso Java Básico - Aula02

VarargsIntroduzido no Java 5, apresenta uma maneira bastante prática para passar inúmeros argumentos para um método.

Exemplo:

public int somar(int... x){

int res = 0;

for(int val : x ){

res +=x;

}

return res;

}

Ao chamar o método somar acima, pode-se passar n parâmetros do tipo int, pois o Java irá converte-los em um array.

Introdução a criação de classes 24

Page 25: Curso Java Básico - Aula02

Vale LembrarEm Java sempre ocorre passagem de parâmetro por cópia, issogera bastante confusão, principalmente quando temos variáveisdo tipo Reference.

Exercício :

Para testar este conceito, vamos criar um método que recebeum parâmetro do tipo date e altere-o para um valor qualquer, dométodo main, experimente criar uma variável local que jápossua um valor prévio. Vamos ver o que acontece com avariável antes de depois da chamada do segundo método.

Introdução a criação de classes 25

Page 26: Curso Java Básico - Aula02

Modificadores de AcessoExistem basicamente 4 modificadores de acesso na linguagem Java, podendo ser aplicados em nível de classe, método e variável.

1) Modificador padrão ( Sem modificador )

– Classes, Variáveis ou métodos definidos sem qualquer modificador são acessíveis apenas por outra classe do mesmo pacote.

2) Privado

– Métodos, variáveis e construtores declarados como private são acessíveis somente dentro da própria classe a qual foram declarados;

– Classes e Interfaces não podem ser privadas;

3) Publico

– Uma classe, método, construtor, interface declarado como publico pode ser acessível de qualquer outra classe.

4) Protegido

– uma variavel, metodo e construtor declarado como protected possui um comportamento semelhante ao modificador default, podem com um pouco menos restritivo, uma vez que ainda podem ser acessados por subclasses que estejam externas ao pacote(herança).

Introdução a criação de classes 26

Page 27: Curso Java Básico - Aula02

ExercícioCrie um classe chamada Empregado com três variáveis de instancia: nome,salário mensal e RG. Além disso cria uma segunda classe chamada Principal aqual será responsável por ler via prompt de comando os dados de cadaempregado. Por último, crie um menu para seu software com as seguintesopções:

• Digite 1 para inserir um novo empregado;

• Digite 2 para receber um resumo de todos os empregados cadastrados;

• Digite -1 para sair;

Introdução a criação de classes 27

Page 28: Curso Java Básico - Aula02

Fim da Segunda Aula

Obrigado !