SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Definições da Linguagem Java
Prof. Daniel Brandão
Metodologia e Linguagem de Programação
Já vimos até aqui:
Histórico e fundamentos da linguagem Java
Etapas: edição, compilação, interpretação e
execução de programas em Java
Princípios de Orientação a Objetos
Hoje: Definições da Linguagem Java
Construtores e sobrecarga 2
Conceito de atributo
O estado de um objeto é dado por valores de
atributos e por ligações que possuem com outros
objetos
Os relacionamentos TEM UM são utilizando os
atributos da classe
Variáveis de instância
Variáveis de classe
Exemplo de declarações de atributos da classe celular
protected Placa placa = new Placa();
private Celular celular;
private int codigo;
private String cor = “branca”;
Tipos primitivos x tipos referência
Tipos primitivos
São nativos da linguagem
São atômicos
Só armazenam um valor declarado por vez
São inicializados com 0 ou false
Por referência
Referenciam objetos
Os objetos podem conter várias variáveis e métodos
São inicializadas com null
Tipos primitivos x tipos referência
Tipos primitivos (atômicos)
Um inteiro ou um caractere,
Um literal booleano (true ou false)
Tipos referência
Uma data: pode ser decomposta em três inteiros,
representando dia, mês e ano
Um vetor de inteiros: pode ser decomposto em suas
partes
Uma seqüência de caracteres: pode ser decomposta me
‘n’ caracteres que a formam
Tipos primitivos x tipos referência
Em Java, tipos referência são armazenados como objetos
Apesar de serem objetos, sequências de caracteres
(strings) em Java podem ser representadas literalmente
Tipos primitivos
Tipos referência
Usamos o tipo referência para guardar a
instância de uma classe;
É possível ter acesso a um objeto criado através
da variável de referência associada
Exercício 1
No projeto FabricaCelular criado na aula anterior,
crie uma nova classe chamada de Bateria
composta pelo atributos
voltagem (int)
duracao (String)
material (String)
Na classe Celular feita na aula anterior, crie um
atributo referencia do tipo Bateria
Operadores
Um operador produz um novo valor a partir de um ou
mais argumentos
Os operadores em Java são praticamente os mesmos
encontrados em outras linguagens
+, -, /, *, =, ==, <, >, >=, &&, etc.
A maior parte dos operadores só trabalha com valores
de tipos primitivos.
Exceções:
• + e += são usados na concatenação de strings
• !=, = e == são usados também com objetos (embora
não funcionem da mesma forma quanto aos valores
armazenados nos objetos)
Precedência
A precedência determina em que ordem as operações em
uma expressão serão realizadas.
Por exemplo, operações de multiplicação são realizadas
antes de operações de soma:
int x = 2 + 2 * 3 – 9 / 3; // 2+6–3 = 5
Parênteses podem ser usados para sobrepor a precedência
int x = (2 + 2) * (3 – 9) / 3; // 4*(– 6)/3 = – 8
A maior parte das expressões de mesma precedência é
calculada da esquerda para a direita
int y = 13 + 2 + 4 + 6; // (((13 + 2) + 4) + 6)
Há exceções. Por exemplo, atribuição.
Operadores aritméticos
 + adição
ƒ - subtração
ƒ * multiplicação
ƒ / divisão
ƒ % módulo (resto)
Operadores aritméticos
Operadores unários
• -n e +n (ex: -23) (em uma expressão: 13 + -12)
• Melhor usar parênteses: 13 + (-12)
Atribuição com operação
• +=, -=, *=, /=, %=
• x = x + 1 equivale a x += 1
Operadores incremento e decremento
Exemplo
int a = 10;
int b = 5;
ƒ Incrementa ou decrementa antes de usar a
variável
int x = ++a; // a contém 11, x contém 11
int y = --b; // b contém 4, y contém 4
A atribuição foi feita DEPOIS!
Operadores incremento e decremento
Exemplo
ƒ Incrementa ou decrementa depois de usar a
variável
int x = a++; // a contém 11, x contém 10
int y = b--; // b contém 4, y contém 5
A atribuição foi feita ANTES!
Operadores relacionais
== igual
ƒ != diferente
ƒ < menor
ƒ <= menor ou igual
ƒ > maior
ƒ >= maior ou igual
ƒ Sempre produzem um resultado booleano
true ou false
ƒ Comparam os valores de duas variáveis ou de
uma variável e uma constante
ƒ Comparam as referências de objetos (apenas
== e !=)
Operadores Lógicos
&& E (and)
ƒ || Ou (or)
ƒ ! Negação (not)
ƒ Produzem sempre um valor booleano
true ou false
ƒ Argumentos precisam ser valores booleanos ou
expressões com resultado booleano
Por exemplo: (3 > x) && !(y <= 10)
ƒ Expressão será realizada até que o resultado possa ser
determinado de forma não ambíguaƒ
Exemplo: (false && <qualquer coisa>)
A expressão <qualquer coisa> não será calculada
Operadores orientados a bit
& and
ƒ | or
ƒ ^ xor (ou exclusivo)
ƒ ~ not
ƒ Para operações em baixo nível (bit por bit)
Operam com inteiros e resultados são números inteiros
Se argumentos forem booleanos, resultado será igual ao
obtido com operadores booleanos, porém:
Exemplo: (false & <qualquer coisa>)
A expressão <qualquer coisa> sempre será calculada
Tabela de Precedência
Operadores Associatividade Tipo
++ -- Direita -> esquerda Unário pós-fixo
++ -- + - ! Direita -> esquerda Unário pré-fixo
* / % Esquerda -> direita Multiplicativo
+ - Esquerda -> direita Aditivo
< <= > >= Esquerda -> direita Relacional
== != Esquerda -> direita Igualdade
& Esquerda -> direita E lógico booleano
^ Esquerda -> direita OU exc. lógico booleano
| Esquerda -> direita OU inc. lógico booleano
&& Esquerda -> direita E condicional
|| Esquerda -> direita Ou condicional
?: Direita -> esquerda condicional
= += -= *= /=
%=
Direita -> esquerda atribuição
Estruturas de decisão
Estruturas de contoleEstruturas de controle
Exercício 2
• A) Imprima todos os números pares entre 1 e 100;
• B) Imprima todos os múltiplos de 3 entre 1 e 100;
Exercício 3
• Escreva um programa que pede o nome e a idade
de uma pessoa e imprime uma mensagem com
tais informações
– Ex: Olá José. Você tem 25 anos!
Os Exercícios 2 e 3 devem ser entregues via
e-mail, até 00h de Segunda (22/02)
professordanielbrandao@gmail.com

Mais conteúdo relacionado

Mais procurados

Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
Marcos Souza
 
Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30
hflandim
 
Poo1 aula 6 - conversão de tipos primitivos
Poo1   aula 6 - conversão de tipos primitivosPoo1   aula 6 - conversão de tipos primitivos
Poo1 aula 6 - conversão de tipos primitivos
Denis Sobrenome
 
Funcaofinal8 m1sidnei
Funcaofinal8 m1sidneiFuncaofinal8 m1sidnei
Funcaofinal8 m1sidnei
carolineborba
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantes
Denis Sobrenome
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
 

Mais procurados (17)

Algoritmos Aula 05
Algoritmos Aula 05Algoritmos Aula 05
Algoritmos Aula 05
 
Php02
Php02Php02
Php02
 
Fundamentos do java
Fundamentos do javaFundamentos do java
Fundamentos do java
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
04 - Operadores lógicos e expressões lógicas - v1.2
04 - Operadores lógicos e expressões lógicas - v1.204 - Operadores lógicos e expressões lógicas - v1.2
04 - Operadores lógicos e expressões lógicas - v1.2
 
Programação C - Aula 3
Programação C - Aula 3Programação C - Aula 3
Programação C - Aula 3
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
 
Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30
 
Poo1 aula 6 - conversão de tipos primitivos
Poo1   aula 6 - conversão de tipos primitivosPoo1   aula 6 - conversão de tipos primitivos
Poo1 aula 6 - conversão de tipos primitivos
 
Apostila c++
Apostila c++Apostila c++
Apostila c++
 
Funcaofinal8 m1sidnei
Funcaofinal8 m1sidneiFuncaofinal8 m1sidnei
Funcaofinal8 m1sidnei
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantes
 
PHP: operadores e variáveis (TGPSI)
PHP: operadores e variáveis (TGPSI)PHP: operadores e variáveis (TGPSI)
PHP: operadores e variáveis (TGPSI)
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 

Destaque

Destaque (20)

Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Fórmulas Condicionais em Excel
Fórmulas Condicionais em ExcelFórmulas Condicionais em Excel
Fórmulas Condicionais em Excel
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
Arrays (vetores) em Java
Arrays (vetores) em JavaArrays (vetores) em Java
Arrays (vetores) em Java
 
Aula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, InformaçãoAula 02 - Sistemas, Dados, Informação
Aula 02 - Sistemas, Dados, Informação
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Introdução à informática
Introdução à informáticaIntrodução à informática
Introdução à informática
 
Excel - Fórmulas Básicas
Excel -  Fórmulas BásicasExcel -  Fórmulas Básicas
Excel - Fórmulas Básicas
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de Informação
 
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de SistemasAula 04 Sistema de Informação - Processo e Requisitos de Sistemas
Aula 04 Sistema de Informação - Processo e Requisitos de Sistemas
 
Incluir para evoluir - Palestra
Incluir para evoluir - PalestraIncluir para evoluir - Palestra
Incluir para evoluir - Palestra
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
PHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e SessoesPHP Aula 05 - E-mails, Cookies e Sessoes
PHP Aula 05 - E-mails, Cookies e Sessoes
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Tipos de dados do MySQL 5
Tipos de dados do MySQL 5Tipos de dados do MySQL 5
Tipos de dados do MySQL 5
 
Apostila xp programação ágil
Apostila xp   programação ágilApostila xp   programação ágil
Apostila xp programação ágil
 
Notas sobre Sistemas Operacionais
Notas sobre Sistemas Operacionais Notas sobre Sistemas Operacionais
Notas sobre Sistemas Operacionais
 

Semelhante a Aula 03 - Definições da linguagem Java

Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
Denis L Presciliano
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Adriano Teixeira de Souza
 
Atributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a LinguagemAtributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a Linguagem
Marcelo Fabiano N. de Oliveira
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
Regis Magalhães
 
Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10
PeslPinguim
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
Paulo Morgado
 

Semelhante a Aula 03 - Definições da linguagem Java (20)

Java - Aula 08
Java - Aula 08Java - Aula 08
Java - Aula 08
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
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
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptx
 
Aula5
Aula5Aula5
Aula5
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Atributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a LinguagemAtributos e Operadores no Python: Aprenda a Dominar a Linguagem
Atributos e Operadores no Python: Aprenda a Dominar a Linguagem
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
modulo1.pdf
modulo1.pdfmodulo1.pdf
modulo1.pdf
 

Mais de Daniel Brandão

Mais de Daniel Brandão (13)

Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Sapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google FormsSapiens - Feedback de Prática Docente com Google Forms
Sapiens - Feedback de Prática Docente com Google Forms
 
{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end{Palestra} Criação Web com Frameworks Front-end
{Palestra} Criação Web com Frameworks Front-end
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
 
Aula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SIAula 3 Sistemas de Informação - Tipos de SI
Aula 3 Sistemas de Informação - Tipos de SI
 
Criação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material DesignCriação Web com Bootstrap e Material Design
Criação Web com Bootstrap e Material Design
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Banco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - RelacionalBanco de dados - Mapeamento MER - Relacional
Banco de dados - Mapeamento MER - Relacional
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010
 
Heurística, Principios e Usabilidade na web
Heurística, Principios e Usabilidade na webHeurística, Principios e Usabilidade na web
Heurística, Principios e Usabilidade na web
 

Último

Último (9)

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 - 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 - 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 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_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
 
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
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
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
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Aula 03 - Definições da linguagem Java

  • 1. Definições da Linguagem Java Prof. Daniel Brandão Metodologia e Linguagem de Programação
  • 2. Já vimos até aqui: Histórico e fundamentos da linguagem Java Etapas: edição, compilação, interpretação e execução de programas em Java Princípios de Orientação a Objetos Hoje: Definições da Linguagem Java Construtores e sobrecarga 2
  • 3. Conceito de atributo O estado de um objeto é dado por valores de atributos e por ligações que possuem com outros objetos Os relacionamentos TEM UM são utilizando os atributos da classe Variáveis de instância Variáveis de classe Exemplo de declarações de atributos da classe celular protected Placa placa = new Placa(); private Celular celular; private int codigo; private String cor = “branca”;
  • 4. Tipos primitivos x tipos referência Tipos primitivos São nativos da linguagem São atômicos Só armazenam um valor declarado por vez São inicializados com 0 ou false Por referência Referenciam objetos Os objetos podem conter várias variáveis e métodos São inicializadas com null
  • 5. Tipos primitivos x tipos referência Tipos primitivos (atômicos) Um inteiro ou um caractere, Um literal booleano (true ou false) Tipos referência Uma data: pode ser decomposta em três inteiros, representando dia, mês e ano Um vetor de inteiros: pode ser decomposto em suas partes Uma seqüência de caracteres: pode ser decomposta me ‘n’ caracteres que a formam
  • 6. Tipos primitivos x tipos referência Em Java, tipos referência são armazenados como objetos Apesar de serem objetos, sequências de caracteres (strings) em Java podem ser representadas literalmente
  • 8. Tipos referência Usamos o tipo referência para guardar a instância de uma classe; É possível ter acesso a um objeto criado através da variável de referência associada
  • 9. Exercício 1 No projeto FabricaCelular criado na aula anterior, crie uma nova classe chamada de Bateria composta pelo atributos voltagem (int) duracao (String) material (String) Na classe Celular feita na aula anterior, crie um atributo referencia do tipo Bateria
  • 10. Operadores Um operador produz um novo valor a partir de um ou mais argumentos Os operadores em Java são praticamente os mesmos encontrados em outras linguagens +, -, /, *, =, ==, <, >, >=, &&, etc. A maior parte dos operadores só trabalha com valores de tipos primitivos. Exceções: • + e += são usados na concatenação de strings • !=, = e == são usados também com objetos (embora não funcionem da mesma forma quanto aos valores armazenados nos objetos)
  • 11. Precedência A precedência determina em que ordem as operações em uma expressão serão realizadas. Por exemplo, operações de multiplicação são realizadas antes de operações de soma: int x = 2 + 2 * 3 – 9 / 3; // 2+6–3 = 5 Parênteses podem ser usados para sobrepor a precedência int x = (2 + 2) * (3 – 9) / 3; // 4*(– 6)/3 = – 8 A maior parte das expressões de mesma precedência é calculada da esquerda para a direita int y = 13 + 2 + 4 + 6; // (((13 + 2) + 4) + 6) Há exceções. Por exemplo, atribuição.
  • 12. Operadores aritméticos  + adição ƒ - subtração ƒ * multiplicação ƒ / divisão ƒ % módulo (resto)
  • 13. Operadores aritméticos Operadores unários • -n e +n (ex: -23) (em uma expressão: 13 + -12) • Melhor usar parênteses: 13 + (-12) Atribuição com operação • +=, -=, *=, /=, %= • x = x + 1 equivale a x += 1
  • 14. Operadores incremento e decremento Exemplo int a = 10; int b = 5; ƒ Incrementa ou decrementa antes de usar a variável int x = ++a; // a contém 11, x contém 11 int y = --b; // b contém 4, y contém 4 A atribuição foi feita DEPOIS!
  • 15. Operadores incremento e decremento Exemplo ƒ Incrementa ou decrementa depois de usar a variável int x = a++; // a contém 11, x contém 10 int y = b--; // b contém 4, y contém 5 A atribuição foi feita ANTES!
  • 16. Operadores relacionais == igual ƒ != diferente ƒ < menor ƒ <= menor ou igual ƒ > maior ƒ >= maior ou igual ƒ Sempre produzem um resultado booleano true ou false ƒ Comparam os valores de duas variáveis ou de uma variável e uma constante ƒ Comparam as referências de objetos (apenas == e !=)
  • 17. Operadores Lógicos && E (and) ƒ || Ou (or) ƒ ! Negação (not) ƒ Produzem sempre um valor booleano true ou false ƒ Argumentos precisam ser valores booleanos ou expressões com resultado booleano Por exemplo: (3 > x) && !(y <= 10) ƒ Expressão será realizada até que o resultado possa ser determinado de forma não ambíguaƒ Exemplo: (false && <qualquer coisa>) A expressão <qualquer coisa> não será calculada
  • 18. Operadores orientados a bit & and ƒ | or ƒ ^ xor (ou exclusivo) ƒ ~ not ƒ Para operações em baixo nível (bit por bit) Operam com inteiros e resultados são números inteiros Se argumentos forem booleanos, resultado será igual ao obtido com operadores booleanos, porém: Exemplo: (false & <qualquer coisa>) A expressão <qualquer coisa> sempre será calculada
  • 19. Tabela de Precedência Operadores Associatividade Tipo ++ -- Direita -> esquerda Unário pós-fixo ++ -- + - ! Direita -> esquerda Unário pré-fixo * / % Esquerda -> direita Multiplicativo + - Esquerda -> direita Aditivo < <= > >= Esquerda -> direita Relacional == != Esquerda -> direita Igualdade & Esquerda -> direita E lógico booleano ^ Esquerda -> direita OU exc. lógico booleano | Esquerda -> direita OU inc. lógico booleano && Esquerda -> direita E condicional || Esquerda -> direita Ou condicional ?: Direita -> esquerda condicional = += -= *= /= %= Direita -> esquerda atribuição
  • 22. Exercício 2 • A) Imprima todos os números pares entre 1 e 100; • B) Imprima todos os múltiplos de 3 entre 1 e 100;
  • 23. Exercício 3 • Escreva um programa que pede o nome e a idade de uma pessoa e imprime uma mensagem com tais informações – Ex: Olá José. Você tem 25 anos!
  • 24. Os Exercícios 2 e 3 devem ser entregues via e-mail, até 00h de Segunda (22/02) professordanielbrandao@gmail.com