0% acharam este documento útil (0 voto)
23 visualizações108 páginas

Aula 1 - Introdução Ao Java e POO

Enviado por

Palavra Viva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
23 visualizações108 páginas

Aula 1 - Introdução Ao Java e POO

Enviado por

Palavra Viva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 108

Introdução ao Java

Sobre o Java

• Java é uma linguagem de programação e plataforma


computacional lançada pela Sun Microsystems em 1995.
Sobre o Java

• James Gosling, considerado o pai do Java.


Sobre o Java

• O Java foi projetado para permitir o desenvolvimento de


aplicações portáteis de alto desempenho para a mais
ampla variedade possível de plataformas de computação.

“escreva uma vez, execute em qualquer lugar”


Sobre o Java

• Isso é possível graças a Java Virtual Machine (JVM) que


executa as aplicações Java no dispositivo.
Sobre o Java

• Pra isso, é necessário instalar o pacote do java (JRE –


Java Runtime Environment) na máquina que vai rodar a
aplicação Java.

JVM Biblioteca
Sobre o Java

• Pra desenvolver uma aplicação Java precisaremos do


JDK (Java Development Kit). Ele é formado pela JRE
somado a ferramentas, como o compilador.
Criando e Executando uma Aplicação Java

Processo de Criação
1) Ambiente de Desenvolvimento Integrado (IDE)

• Fornecem ferramentas que suportam o processo de


desenvolvimento de software, como editores e
depuradores para localizar erros lógicos (que fazem
programas serem executados incorretamente) e outros.
1) Ambiente de Desenvolvimento Integrado (IDE)

.
2) Compilação

• O compilador Java
converte o código-fonte
Java em bytecodes.
• O compilador faz parte da
JDK (Java Development
Kit) e está presente no IDE
NetBeans.
• O Java Virtual Machine
(JVM) executa bytecodes.
3) Carregamento na Memória

• A JVM armazena o programa


na memória para executá-lo.
• Esse processo é chamado de
carregamento.
• O carregador de classe da JVM
pega os arquivos .class
(bytecode) e joga na memória
primária.
4) Verificação de Bytecodes

• O verificador de bytecode Verificação


De Bytecodes
examina seus bytecodes para
assegurar que eles são válidos
e não violam restrições de
segurança do Java.
5) Execução

• A JVM executa os bytecodes do


programa conforme foram
especificados.
Coleta de Lixo

• A JVM executa coleta de lixo automática para


recuperar a memória ocupada por objetos que não
são mais usados.
• Esses objetos são marcados para coleta de lixo. E
são apagados quando:
• A JVM executa o coletor de lixo;
• Obrigatoriamente, antes de um programa terminar;
Hierarquia dos Dados
Bit

• É o menor item de dados num computador e pode


assumir o valor 0 ou 1.
Caracteres

• São dígitos, letras e símbolos especiais.


• Dígitos (0-9);
• Letras (A-Z e a-z); e
• Símbolos ($, @, %, *, (,), –, +, ", :, ? , /).
Campo

• É um grupo de caracteres ou bytes que transmitem


um significado.

Erinaldo
1984
27
81 9999-9812
Registro

• É um grupo de campos relacionados.

Nome CPF RG Telefone


Erinaldo 000.000.000-00 0.000.000 81 99999-9999
Arquivo

• É um grupo de registros relacionados. Em alguns


Sistemas Operacionais, um arquivo é visto
simplesmente como uma sequência de bytes.

Nome CPF RG Telefone


Erinaldo 000.000.000-00 0.000.000 81 99999-9999

Pedro 010.010.010.01 0.111.222 81 90909-0909


Banco de Dados

• É uma coleção de dados organizados para fácil acesso e


manipulação.
• O modelo mais popular é o banco de dados relacional,
em que os dados são armazenados em tabelas simples.

Nome CPF RG Telefone


Erinaldo 000.000.000-00 0.000.000 81 99999-9999

Pedro 010.010.010.01 0.111.222 81 90909-0909


Introdução a POO
Programação Orientada a Objetos
Definição

• Programação Orientada a Objetos (POO) é uma


metodologia que transforma em objeto tudo aquilo que
é abstraído do mundo real com a finalidade de
desenvolver sistemas computacionais.

Abstrair - observar (um ou mais elementos de um todo), avaliando características e propriedades em separado.
Exemplo

Veículo

Funcionário Cliente
Classe, Atributo e Método
Classe

• É um modelo para a criação de objetos que possuem


características e comportamentos semelhantes.
Veículo

Características Comportamentos
- Cor: Amarelo; - Acelerar
- Fabricante: Jeep; - Frear
- Ano de fabricação: 2020
Classe

• Geralmente representam um substantivo.


Diagrama UML de uma classe
Identificador da Nome da classe
criação da classe (identificador)

public class Aluno {


// Código da classe
}
Corpo da Classe – É delimitado pela chave esquerda e direita ({ })
Atributo

• São as características de um objeto. Também conhecido


como variáveis.
Tipo Nome Valor Regras de nomes de variáveis
O java diferencia maiúsculo de minúsculo.
Ex.: int nome é diferente de int
int idade = 35; Nome
ou Não pode iniciar com número.
Ex.: int 1somatorio;
int idade; Não pode haver espaço. Somente com “_”.
Variável criada sem atribuir valor
Ex.: double media aluno;
Variável

• É uma posição na memória do computador na qual um


valor pode ser armazenado para utilização posterior em
um programa.
• Cada variável tem um tipo, um nome, um tamanho e um
valor.
Tipos de Variáveis
Variáveis Primitivas
Variáveis Primitivas

• Armazenam exatamente um valor de seu tipo declarado


por vez.
• Caso seja atribuído outro valor a essa variável ele substitui
o anterior, que é perdido.

int idade = 25;


idade = 26;
System.out.println(idade); // Imprime 26
Tipos de Variáveis Primitivas

• Inteiro • Real • Caractere • Lógico


• byte; • float; • char; • boolean;
• short; • double;
• int;
• long;
Tipo Inteiro

• byte • int
• Tamanho: 8 bits • Tamanho: 32 bits
• De -128 a 127. • De -2.147.483.648 a 2.147.483.647
• short • long
Ex.: long num = 25L;
• Tamanho: 16 bits • Tamanho: 64 bits
• De -32768 a 32767. • De -9.223.372.036.854.775.808L a
9.223.372.036.854.775.807L
Obs.: O “L” no final é obrigatório para este tipo de variável.
Ele indica que o valor atribuído à variável deve ser tratado
como long.
Tipo Real

• float Ex.: float num = 25.57F;

• Tamanho: 32 bits
• Representam números de ponto flutuante de precisão simples.
• Podem ter até 7 dígitos significativos.
• double
• Tamanho: 64 bits
• Representam números de ponto flutuante de dupla precisão.
• Podem ter até 15 dígitos significativos.
Obs.: O “F” no final é obrigatório para este tipo de variável. Ele indica que o valor atribuído à variável deve ser tratado
como float.
Tipo Caractere

• char
• Tamanho: 16 bit
• Suporta caracteres da tabela UNICODE.
• Pode ser usado da seguinte forma:
• Um caractere entre aspas simples (‘ ’). Ex.: char a = ‘M’;
• Número inteiro de 0 a 65535, sem aspas, que será substituído por um
caractere da tabela UNICODE. Ex.: char a = 66; // Representa o B
• Representar um caractere da tabela UNICODE, entre aspas simples, pelo
seu valor em hexadecimal. Ex.: char a = ‘\u0042’; // Representa o B
Obs.: Para utilizar a representação em hexadecimal é obrigatório utilizar o prefixo u (minúsculo) antes do valor em
hexadecimal. Em java, para acrescentar este prefixo deve utilizar o caractere de escape \.
Exemplo

Obs.: Literal de caractere é um valor inteiro – não necessariamente um número – representado como caractere entre aspas
simples.
Tipo Lógico

• boolean
• Tamanho: 1 bit
• Possui valores true ou false

Ex.: boolean valida = true;


Variáveis de Instância
Variáveis de Instância

• Armazenam dados para cada


objeto, ou seja, para cada
instância da classe.

a1 e a2 são instâncias da classe Aluno


e cada uma delas têm os seus dados.

Obs.: Objetos que são referenciados podem conter muitas


variáveis de instância.
Variáveis de Instância

• As Variáveis de Instância de tipo primitivo são inicializadas


por padrão.
• Como 0 (zero): byte, char, short, int, long, float e double.
• Como false: boolean.
package publica;
package publica; public class Teste{
public class Funcionario{ public static void main (String[]
public int matricula; args){
public boolean experiencia; Funcionario f1 = new
Funcionario();
Variáveis Locais
Variáveis Locais

• São as variáveis declaradas dentro dos métodos, como


parâmetros de métodos, instruções de seleção e de
repetição.
• As Variáveis locais de tipo primitivo não são inicializadas
por padrão.
Variável local (parâmetro)
public void setName(String name) {
Variável local (dentro do método)
int idade;
}
Obs.: As variáveis locais só são reconhecidas dentro do bloco onde foram criadas (escopo).
Variáveis de Classe
Variáveis de Classe

• São as variáveis declaradas como static.


• Todos os objetos de uma classe compartilham uma cópia
dos campos static da classe.
public static String nome;
a1 = a2
a1.nome = “Everaldo”;
a2.nome = “José”;
System.out.println(a1.nome);
// Imprime José
Variáveis de Classe

• Campos static permite que eles sejam acessados pelo


nome quando estão na mesma classe.
Variáveis de Classe

• Em classes diferentes os campos static permite que eles


sejam acessados pelo nome da classe e um ponto (.)
separador. Ou seja, não precisam instanciar um objeto.
Constantes
Constantes

• Qualquer campo declarado com a palavra-chave final é


constante (também chamadas constantes nomeadas) —
seu valor não pode ser alterado depois que o campo é
inicializado.
public class Conectar {
final String URL =
“https://www.java.com.br”;
}
Obs.: O nome das variáveis constantes são todos em maiúsculo (CAIXA ALTA).
Obs.: Constantes formadas por mais de uma palavra devem ser separadas por _. Ex.: JUROS_CARTAO
Tipos enum

• Define um conjunto de constantes representadas como


identificadores únicos. São chamados de declaração enum.

Modificador de Palavra Nome da Valores (em


acesso reservada constante maiúsculos e
separadas por
vírgula)
Tipos enum

• Constantes enum são implicitamente final.


• Constantes enum são implicitamente static.
• Qualquer tentativa de criar um objeto de um tipo enum
com um operador new resulta em um erro de compilação.
Método
Método

• Conjunto de instruções que define o(s) comportamento(s)


de uma classe.

public void nomeMetodo() {

// Instrução
}
Alguns Conceitos - Métodos

• Parâmetros – São variáveis locais definidas para uso


exclusivo dentro do método. São definidas no momento
da criação do método dentro dos ( ).
• Chamada de Método – É o termo utilizado quando um
método é acionado para implementar uma tarefa
predefinida.
• Argumentos – São os valores passados para o método
quando este é chamado. Isso quando o método for
criado com parâmetros.
Método sem Retorno

• São semelhantes aos procedimentos em Lógica de


Programação. Executam alguma tarefa sem a necessidade
de apresentar um resultado.
Parâmetros
public double media;
public void calculaMedia(double n1, double n2) {
media = (n1 +
n2) / 2;
Obs.: Parâmetro é }
uma variável local criada na definição do método.
Obs.: Argumento é o valor passado quando o método é chamado.
Obs.: Os tipos primitivos compatíveis para parâmetros são int, long, float, double e booblean.
Obs.: É possível passar como parâmetro um array de tipo primitivo ou de objeto.
Método com Retorno

• São semelhantes às funções em Lógica de Programação.


Executam alguma tarefa e obrigatoriamente necessitam
de uma variável de retorno.
private double media;
public double getMedia(){
return media;
}

Obs.: O return retorna a variável de instância media quando é chamado. Como o método getMedia não possui
parâmetro não precisa passar nenhum argumento no momento quando ele é chamado.
O método main

• É o ponto de partida de cada aplicativo Java. Sem ele a


JVM não executará o aplicativo.

Não precisa ser instanciado


(método de classe) Indica que o método executará uma tarefa, mas não retornará nenhuma informação
Pode ser acessado por outras classes Nome do método

public static void main (String[] args) {


// conteúdo do método
Vetor de String
}

Obs.: Declarar main como static permite que a JVM invoque main sem criar uma instância da classe.
Método de Classe

• São métodos que possuem a palavra-chave static.


• Eles podem ser acessados apenas digitando o nome da
classe (.) nome do método. Isso elimina a necessidade de
instanciar um objeto da classe para acessar o método.
public class Calculadora {
public class TesteCalculadora {
public static int somar(int p, int
public static void main (String[] args){
q) {
int result = a + b;
System.out.println(Calculadora.somar(2, 3);
return result;
}
}
}
} Métodos não static são chamados de métodos de instância.
Obs.:
Chamada de Método

• 1) Na mesma classe – Pelo nome do método.


Chamada de Método

• 2) Em classes diferente – Instanciando um objeto.


Chamada de Método

• 3) Método static – Informa o Nomeclasse.nomeMetodo.


Sobrecarga de Métodos
Sobrecarga de Métodos

• Quando uma classe possui vários métodos com o mesmo


nome, porém com um conjunto de parâmetros
(assinatura) diferentes em número, tipo e ordem.
• Quando um método sobrecarregado é chamado, o
compilador Java seleciona o método adequado
examinando o número, os tipos e a ordem dos
argumentos na chamada.

Obs.: O tipo de retorno é ignorado pelo compilador na verificação de sobrecarga do método desde que a assinatura
deles seja idêntica. Neste caso o compilador identificará dois métodos distintos.
Sobrecarga de Métodos

No exemplo ao lado temos dois métodos com o


mesmo nome sueldo pra calcular o saldo semanal
e saldo por hora. Um não possui parâmetro e o
outro um parâmetro do tipo int.
Sobrecarga de Métodos

void method1(int a, float b) void method1(float b, int a)

Obs.: Este exemplo mostra que a assinatura dos métodos são distintas mesmo tendo o mesmo número de
parâmetros e tipo, mas a ordem é diferente.
Objeto
Objeto

• É uma instância de uma classe Java.


• O processo de criação de um objeto é chamado de
instanciação.
• Possui atributos e métodos semelhantes aos da classe
que os origina. Nome da
Nome da classe instanciação Construtor

Aluno a1 = new Aluno();


Identificador da
instanciação
Construtor
Construtor

• Determina se as variáveis de um objeto serão inicializadas


com valor padrão ou personalizado.

Modificador de Nome da
acesso classe

public Aluno() {
}
Construtor Padrão

• Toda classe java deve ter um construtor ainda que vazio


(padrão).
• Caso não seja declarado explicitamente, o compilador cria
um construtor vazio (implícito) quando é invocado.
public class Funcionario {
String nome;
public nomeDaClasse () { String cpf;
// vazio public Funcionario() {
} // Construtor
padrão
Obs.: Depois de você declarar quaisquer construtores em uma classe, o compilador}}
não fornecerá um construtor padrão.
Construtor Personalizado

• Às vezes há a necessidade de atribuir um valor a uma


variável de um objeto no momento da instanciação.
public class Conta {
String cpf;
double saldo;
public Conta () {
saldo = 0.00; Predefinindo um valor de
} uma variável para todos
os objetos criados

Obs.: Não é possível criar mais de um construtor padrão (sem parâmetros) na mesma classe.
Construtor Personalizado

• No caso de construtores com parâmetros deve-se ter o


cuidado para os tipos de variáveis primitivas suportadas:
int, long, float, double e boolean.
public class Conta {
String cpf; Utilizando parâmetros para
personalizar a criação de
double saldo; cada objeto criado
public Conta (double s) {
this.saldo = s;
}
Obs.: Erro apresentado na instanciação por causa do construtor com parâmetro não suportado (byte, short e char).
Ex.:

public class Cliente {


String nome;Parâmetro
String email;
public Cliente (String name) {
this.nome = name;
}
public class TesteCliente {
public static void main (String[]
args) {
Cliente c1 = new
Cliente(“Erinaldo”);
Construtor

• Deve ter o mesmo nome da classe.


• O Java requer uma chamada de construtor para cada objeto
que é criado.
• Não pode retornar valores. Portanto, não podem especificar
tipo de retorno (nem void).
• A classe pode ter mais de um construtor.
Promoção de Argumentos e Coerção

Cast
Promoção de Argumento

• É o processo que converte um valor do argumento, se


possível, no tipo que o método espera receber no seu
parâmetro correspondente.
No exemplo ao lado o método dividir possui dois
parâmetros. Consequentemente, na chamada do
método, devemos passa dois argumentos do
mesmo tipo. Utilizando o cast foi possível
promover as variáveis a e b que eram do tipo int
para o tipo double, impedindo que houvesse
algum erro de compilação do código.

cast cast
Promoção de Argumento

• Essa conversão deve respeitar a regra de promoção, que


permite que um argumento de um tipo primitivo seja
convertido em outro sem que haja perda de dados.
Coerção

• Forçar explicitamente uma conversão para impedir que


ocorra um erro de compilação do programa.
• A coerção é utilizada nos casos em que as informações
podem ser perdidas por causa da conversão.
Escopo das Declarações
Escopo das Declarações

• As entidades Java (classes, métodos, variáveis, parâmetros)


possuem nomes que podem ser utilizados para referencia-
las em diversas parte do programa.
Escopo das Declarações

• O escopo de uma declaração é a parte do programa


onde essas entidades podem ser referenciadas pelo seu
nome.
Regras Básicas de Escopo das Declarações

• O escopo de uma declaração de parâmetro é o corpo do


método em que a declaração aparece.

O corpo do método
compreende o que
está entre { e }.
Regras Básicas de Escopo das Declarações

• O escopo de uma declaração de variável local é do


ponto em que a declaração aparece até o final desse
bloco.

O bloco compreende o
que está entre { e }.
Neste exemplo a e b
são variáveis locais.

Obs.: Qualquer bloco pode conter declaração de variável.


Regras Básicas de Escopo das Declarações

• O escopo de uma declaração de variável local de uma


instrução for é o corpo da instrução for e as outras
expressões no cabeçalho.

for (int i = 0; i <= 10; i++) { O bloco compreende o


System.out.println (“O valor de i é: ” + i); que está entre { e }.
Neste exemplo i é
} uma variável local.
Regras Básicas de Escopo das Declarações

• O escopo de um método ou campo é o corpo inteiro da


classe. Isso permite que os métodos de instância de uma
classe usem os campos e outros métodos da classe.
Sombreamento
Sombreamento

• É processo de ocultação de
uma variável da classe
quando, dentro de um método
ou bloco, uma variável local
ou um parâmetro tiver o
mesmo nome da variável da
classe.
O exemplo ao lado mostra o sombreamento das variáveis
nome e idade já que o parâmetro do método exibe tem o
mesmo nome dos campos da classe.
Sombreamento

• Para acessar um campo sombreado dentro do método/bloco:


• 1) Se o campo é uma variável de instância, preceda o nome
com a palavra-chave this e um ponto (.),

Como os parâmetros possuem o mesmo nome das


variáveis da classe é necessário usar o this para
acessar a variável da classe sombreada.
Como os parâmetros possuem nomes diferentes
dos das variáveis da classe não precisa utilizar o
this antes do nome da variável da classe, pois
não há sombreamento.
Sombreamento

• Para acessar um campo


sombreado dentro do
método/bloco:
• 2) Se o campo é uma variável
de classe, preceda o nome
com o nome da classe e um
ponto (.),
Pacote
Pacote

• É um agrupamento de tipos relacionados que serve


para organizar a estrutura do projeto java.

O projeto Aula-2DS possui dois pacotes (aulas e exercícios). E cada pacote tem uma classe.
Pacote

• Caso uma classe queira acessar os atributos e


métodos de outra classe que está em outro pacote
basta utilizar o import.

A classe Pessoa está


no pacote exemplos

Obs.: Por convenção de código os nomes dos pacotes devem ser o nome do domínio da empresa invertido.
Modificadores de Acesso
Modificadores de Acesso

• Os modificadores de acesso controlam o acesso a


variáveis e métodos de uma classe num projeto java.
• Essas classes podem estar no mesmo pacote ou em
pacotes diferentes.
• O java possui quatro modificadores de acesso:
• public
• private
• protected
• default
Modificador public

• Os atributos e métodos de uma classe são acessíveis


por outra classe do mesmo pacote ou de pacotes
diferentes.
Modificador default

Os atributos e métodos de uma classe são acessíveis na


mesma classe ou por outra classe do mesmo pacote.

Obs.: O modificador default não são declarados explicitamente.


Obs¹.: Classes no mesmo pacote são importadas implicitamente para os arquivos de código-fonte de outras classes nesse pacote.
Modificador private

• Só são visíveis dentro da própria classe. Para acessá-los


fora da classe é necessário utilizar os métodos get e set.
Modificador private

• Método get – São utilizados para acessar/consultar os


dados de uma variável. Também são chamados de
métodos de acesso ou métodos de consulta.
• Método set – São utilizados para modificar os dados de
uma variável. Também são comumente chamados
métodos modificadores.
A classe Aluno tem três variáveis: matricula, nome
e email. Como o modificador é private devemos
declarar os métodos get e set para cada variável.
Modificador private

• Podem ser acessadas por classes do mesmo pacote ou de


pacotes diferentes utilizando o import.
Modificador protected

• Os atributos e métodos de uma classe são acessíveis por


outra classe do mesmo pacote.
Modificador protected

• Para acesso a classes de pacotes diferentes somente se a


classe herdar da classe que se deseja acessar. Neste caso
somente pelos métodos get e set.
Palavras Reservadas
Obs.: Palavras reservadas são palavras que não podem ser utilizadas para nomear atributos, métodos, classes etc.

Você também pode gostar