Java Básico
Aula 02
Natanael Fonseca - Arquiteto de Software
Ementa
• Controle de Fluxo e Arrays;
• Introdução a criação de classes;
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
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
Valores de Inicialização
• Ao declarar um array e inicializa-lo utilizando a palavra
reservada new, todos os elementos do array são inicializados
seguindo 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
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
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
Arrays Bidimensionais
[0] *
[1] *
[2] *
Arrays 8
Java não tem um estrutura especial para representar arrays de
duas dimensões, no entanto, podemos representar um array
bidimensional declarando um array composto por outros arrays.
Exemplo:
Int[][] array1 = new int[3][2]; [0] *
[1] *
[0] *
[1] *
[0] *
[1] *
Arrays Multidimensionais
Arrays 9
Mesmo conceito visto anteriormente, portanto, fica fácil criar
arrays 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 array
de três dimensões
char[][][] array4 = { {{1,1},{1,2}}, {{2,1},{2,2}}, {{3,1},{3,2}} };
Pontos Negativos dos Arrays
Arrays 10
De um modo geral, a utilização de arrays em um programa é
essencial, contudo, ainda vale mencionar alguns pontos
negativos:
• Não permite redimensionamento;
• Em se tratando de tipos primitivos, são estruturas de um tipo
só, o que dificulta sua utilização em cenários mais complexos;
• Índice 0 para o primeiro elemento pode gerar confusão;
Enhanced For
Recurso 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
Método main
O 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 param3
Irá imprimir
param1 param2 param3
Arrays 12
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
Exercício
Utilize um array bidimensional para resolver o seguinte
problema: Uma empresa tem 3 equipes de venda, sendo
que uma vez por dia cada vendedor informa ao programa
as 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 ler
dos três vendedores as informações necessárias e em
seguida armazene-as no array criado. Ao final da coleta
dos dados exibe um resumo dessas informações.
Arrays 14
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
O que é um Objeto ?
Uma vez definida a classe, podemos imaginar
ocorrências especificas desta, basta pensarmos
na relação modelo x instancia.
A classe Carro pode carregar características
comuns a diversos veículos existentes, mas o
que seriam os objetos/instancias ?
Ex: Golf, Vectra, Mercedez, Astra, Gol e etc.....
Introdução a criação de classes 16
Conceitos Importantes
No 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
Estrutura de uma Classe.
Como dito anteriormente, um programa em java
normalmente é 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
Criando um método
Uma 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
Retorno de um método
Os 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
Chamando um método
Para 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
Variáveis de instancia
Sã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
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
Varargs
Introduzido 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
Vale Lembrar
Em Java sempre ocorre passagem de parâmetro por cópia, isso
gera bastante confusão, principalmente quando temos variáveis
do tipo Reference.
Exercício :
Para testar este conceito, vamos criar um método que recebe
um parâmetro do tipo date e altere-o para um valor qualquer, do
método main, experimente criar uma variável local que já
possua um valor prévio. Vamos ver o que acontece com a
variável antes de depois da chamada do segundo método.
Introdução a criação de classes 25
Modificadores de Acesso
Existem 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
Exercício
Crie 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 a
qual será responsável por ler via prompt de comando os dados de cada
empregado. Por último, crie um menu para seu software com as seguintes
opçõ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
Fim da Segunda Aula
Obrigado !

Curso Java Básico - Aula02

  • 1.
    Java Básico Aula 02 NatanaelFonseca - Arquiteto de Software
  • 2.
    Ementa • Controle deFluxo e Arrays; • Introdução a criação de classes;
  • 3.
    Arrays São estruturas dedados 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
  • 4.
    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
  • 5.
    Valores de Inicialização •Ao declarar um array e inicializa-lo utilizando a palavra reservada new, todos os elementos do array são inicializados seguindo 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
  • 6.
    Inicializando um array Seguealguns 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
  • 7.
    Iterando por umArray 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
  • 8.
    Arrays Bidimensionais [0] * [1]* [2] * Arrays 8 Java não tem um estrutura especial para representar arrays de duas dimensões, no entanto, podemos representar um array bidimensional declarando um array composto por outros arrays. Exemplo: Int[][] array1 = new int[3][2]; [0] * [1] * [0] * [1] * [0] * [1] *
  • 9.
    Arrays Multidimensionais Arrays 9 Mesmoconceito visto anteriormente, portanto, fica fácil criar arrays 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 array de três dimensões char[][][] array4 = { {{1,1},{1,2}}, {{2,1},{2,2}}, {{3,1},{3,2}} };
  • 10.
    Pontos Negativos dosArrays Arrays 10 De um modo geral, a utilização de arrays em um programa é essencial, contudo, ainda vale mencionar alguns pontos negativos: • Não permite redimensionamento; • Em se tratando de tipos primitivos, são estruturas de um tipo só, o que dificulta sua utilização em cenários mais complexos; • Índice 0 para o primeiro elemento pode gerar confusão;
  • 11.
    Enhanced For Recurso incluídona 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
  • 12.
    Método main O métodomain 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 param3 Irá imprimir param1 param2 param3 Arrays 12
  • 13.
    Exercício Escreva um programaque exiba a soma dos valores do tipo double vindos do console. Ex: java MeuPrograma 2.3 5.4 6.5 7.8 Arrays 13
  • 14.
    Exercício Utilize um arraybidimensional para resolver o seguinte problema: Uma empresa tem 3 equipes de venda, sendo que uma vez por dia cada vendedor informa ao programa as 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 ler dos três vendedores as informações necessárias e em seguida armazene-as no array criado. Ao final da coleta dos dados exibe um resumo dessas informações. Arrays 14
  • 15.
    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
  • 16.
    O que éum Objeto ? Uma vez definida a classe, podemos imaginar ocorrências especificas desta, basta pensarmos na relação modelo x instancia. A classe Carro pode carregar características comuns a diversos veículos existentes, mas o que seriam os objetos/instancias ? Ex: Golf, Vectra, Mercedez, Astra, Gol e etc..... Introdução a criação de classes 16
  • 17.
    Conceitos Importantes No diaa 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
  • 18.
    Estrutura de umaClasse. Como dito anteriormente, um programa em java normalmente é 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
  • 19.
    Criando um método Umaclasse 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
  • 20.
    Retorno de ummétodo Os 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
  • 21.
    Chamando um método Parachamar 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
  • 22.
    Variáveis de instancia Sãovariá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
  • 23.
    Modificando uma variávelde 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
  • 24.
    Varargs Introduzido no Java5, 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
  • 25.
    Vale Lembrar Em Javasempre ocorre passagem de parâmetro por cópia, isso gera bastante confusão, principalmente quando temos variáveis do tipo Reference. Exercício : Para testar este conceito, vamos criar um método que recebe um parâmetro do tipo date e altere-o para um valor qualquer, do método main, experimente criar uma variável local que já possua um valor prévio. Vamos ver o que acontece com a variável antes de depois da chamada do segundo método. Introdução a criação de classes 25
  • 26.
    Modificadores de Acesso Existembasicamente 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
  • 27.
    Exercício Crie um classechamada Empregado com três variáveis de instancia: nome, salário mensal e RG. Além disso cria uma segunda classe chamada Principal a qual será responsável por ler via prompt de comando os dados de cada empregado. Por último, crie um menu para seu software com as seguintes opçõ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
  • 28.
    Fim da SegundaAula Obrigado !