SlideShare uma empresa Scribd logo
1 de 43
UNIJUÍ – DETEC – Ciência da Computação

Prof. Msc. Juliano Gomes Weber
(jgw@unijui.edu.br)

Linguagem de programação III
Notas de Aula – Aula 01
1º Semestre - 2010
jgw@unijui.edu.br
•

Objetivo da aula de hoje
•

•
•

Apresentações:
• Tópicos que serão abordados na disciplina;
• Alunos;
• Professor;
Sistemática de avaliação;
Revisão de conteúdo base para esta disciplina;

jgw@unijui.edu.br


Tópicos que serão abordados na disciplina


Persistência de Objetos - Banco de dados e Java



Programação em Rede - Sockets



Programação para Internet



Principal ferramenta NETBEANS IDE

Tecnologias Web

jgw@unijui.edu.br
Sobre vocês ?


Apresentação individual





Semestre letivo individual?
Trabalha na área?
Experiência com programação?
Experiência com Java?


Formação





Sobre o Professor

Bacharel em informática UNIJUI – 2001
Mestre em Computação - UFSM - 2009

Histórico Profissional






Unijuí - Programador Sênior;
Unicruz - Professor do curso de Ciência da computação;
Escola técnicas, Sistemas comercias, sistemas para
internet;
Desenvolvimento de sistemas complexos;


Análise e desenvolvimento de sistemas;
Sistemática de avaliação





Avaliação contínua e individual;
Trabalho para a disciplina (será definido em breve);
Provas;
Trabalhos individuais;
Início da revisão - Orientação à
objetos
Utiliza uma perspectiva mais humana de
observação da realidade, incluindo objetos,
classificação e compreensão hierárquica
Contexto Histórico
A





crise do desenvolvimento do software:
Demanda muito superior à capacidade de
desenvolvimento;
Qualidade insuficiente dos produtos;
Estimativas de custo e tempo raramente
cumpridas nos projetos.

 Surge

a Engenharia de Software
Engenharia de Software
Busca organizar esforços no desenvolvimento
de ferramentas, metodologias e ambientes de
suporte ao desenvolvimento de software
Programação Orientada a
Objetos
 Foco

nos dados (objetos) do sistema, não
nas funções
 Estruturação do programa é baseada nos
dados, não nas funções
 As funções mudam mais do que os dados
Paradigma
Orientado a Objetos
 Pressupõe

que o mundo é composto por

objetos
 Objeto é uma entidade que combina
estrutura de dados e comportamento
funcional
 Os sistemas são modelados como um
número de objetos que se interagem
Procedimental vs OO
Paradigma
Orientado a Objetos
A

orientação a objetos surgiu nos primórdios da
década de 70, com as linguagens ADA,
SIMULA e Small Talk.
 Ficou bastante difundida nos anos 80, com
linguagens como o C++, e teve uma recente
explosão em difusão nos anos 90, através da
linguagem Java.
 Hoje é um padrão de fato!
Benefícios da OO
 Reutilização
 Extensibilidade
 Manutenção
 Redução

na quantidade de erros
Encapsulamento








Usado para esconder detalhes de
implementação
Não é necessário saber como a classe está
implementada para chamar o método
necessário.
Basta saber a interface do método
Os atributos de um objeto só devem ser
manipulados pelos métodos do próprio objeto
(orientação a objeto pura).
Variáveis da Instância X da Classe
Variáveis da classe




Só existe uma cópia de cada variável
Todos as instâncias acessam a mesma cópia das variáveis
São criadas apenas uma vez assim que o sistema
reconhece a classe

Variáveis da Instância




Existe uma cópia para cada instância criada
Cada instância acessa a sua cópia
São criadas sempre quando uma nova instância é gerada
Identificando Objetos
 Em

uma sala existe um conjunto de
objetos físicos que podem ser facilmente
identificados, modelados e classificados
como objetos OO.

 Mas

em um problema onde o espaço é
uma aplicação de software, os objetos
podem não ser facilmente encontrados.
Identificando Objetos

Os objetos podem ser identificados
analisando-se o problema ou fazendo um
“parser gramatical” do texto contendo a
descrição do problema
 Objetos

são determinados sublinhando-se
cada substantivo;
Objetos, classes, métodos e
atributos

Detalhando...
Objetos
 Mundo

real formado por elementos: Objetos
 Objetos podem ser coisas concretas ou
abstratas
 Ex: Carro, Pessoa, Emissão de Nota, etc
Estado do Objeto
 Conjunto

de suas propriedades associadas a
seus valores correntes
 Propriedades geralmente referenciadas
como Atributos
 Ex:
Propriedades:
 Cor = Vermelha
 Ano = 2001
 Velocidade = 0 Km/h
 Combustível = Gasolina
Comportamento do Objeto
 Conjunto

de serviços ou operações que
outros objetos podem requisitar
 Operações geralmente referenciadas
como Métodos
 Representa como o objeto reage às
Mensagens a ele enviadas
Operações
 Ex





Acelerar ( )
Frear ( )
Acender Faróis ( )
Virar a Direita ( )
Identidade Única
 Objetos

têm existência própria
 São distintos mesmo se seus estados e
comportamento forem iguais
 Identificador que permite referência
inequívoca
 Ex
Ferrari do Luciano
Classes
 No

mundo real, diferentes objetos
desempenham o mesmo papel

Automóveis

A

estrutura e o comportamento comuns
dos objetos podem ser agrupados
Classes
 Modelo

que descreve a estrutura e o
comportamento de objetos comuns = Classe
 Objetos que se comportam da maneira
especificada pela classe são ditos Instâncias
dessa classe
 Ex
Ferrari do Luciano

é um Instância da Classe Automóvel
Classe abstrata


Pelo menos um de seus métodos está declarado mas não têm
implementação associada.


Método abstrato: método sem implementação



Não gera instância



Só pode ser usada como base para outras classes




herança

Cada subclasse deverá implementar o método abstrato da superclasse
(classe abstrata)
Exemplo

Pessoa
abstratos

telefone
alterarTelefone(tel.)

Professor

Aluno

telefone

telefone

alterarTelefone(tel.)

alterarTelefone(tel.)
Polimorfismo


Polimorfismo é a habilidade de diferentes instâncias, de classes
diferentes, responderem a mesma mensagem de diferentes maneiras.




executar métodos com a mesma assinatura mas implementados
de maneira diferente

Classe polimórfica:


quando instâncias suas ou instâncias de classes derivadas suas
possuem mensagens que nem sempre são respondidas da
mesma maneira - a resposta irá depender do contexto da
execução.
Restrição de acesso
(métodos e atributos)


Public: sem restrição. Qualquer objeto pode acessar tal método/atributo



Private: apenas o objeto que possui o método/atributo pode acessa-lo



Protect: apenas os objetos das classes do mesmo pacote podem
acessar o método/atributo



Default:



atributo -> C++: private / JAVA: private
método -> C++: private / JAVA: public
OO e JAVA
 Como

java?

implementar o paradigma OO em
Definindo Classes em Java
public class NomeDaClasse {
CorpoDaClasse
}

O corpo de uma classe pode conter
• atributos
• métodos
• construtores (inicializadores)
• outras classes...
Exemplo
public class LeImprime {
/** Lê e imprime um string */
public static void main(String[] args) {
String nome;
nome = Util.readStr();
System.out.println(nome);
}
}
Definindo Atributos em Java
public class Livro {
private int anoDePublicacao;
private int numeroDePaginas;
private String titulo;
...
}
 cada

atributo tem um tipo específico que
caracteriza as propriedades dos objetos da
classe
 int e String denotam os tipos cujos elementos
são inteiros e strings
Tipos em Java


Primitivos






char
int
boolean
double
...



Referência





classes (String,
Object, Livro, Conta,
etc.)
interfaces
arrays

Os elementos de um tipo primitivo são valores,
enquanto os elementos de um tipo referência
são (referências para) objetos!
Definindo Atributos em Java
public class Pessoa {
private int anoDeNascimento;
private String nome, sobrenome;
private boolean casado = false;
...
}
 vários

atributos de um mesmo tipo podem
ser declarados conjuntamente
 podemos especificar que um atributo deve
ser inicializado com um valor específico
Definindo Métodos em Java
public class Conta {
private String
numero;
private double
saldo;

}

public void creditar(double valor) {
saldo = saldo + valor;
}
...

Um método é uma operação que realiza ações
e modifica os valores dos atributos do objeto
responsável pela sua execução
Definindo Métodos em Java
public class Conta {
...

}

parâmetros
do método

public void debitar(double valor) {
saldo = saldo - valor;
}

tipo de
retorno

corpo do
método

Por quê o debitar não tem como parâmetro
o número da conta?
Outro exemplo...
public class <nome> {
public static void main (<parametros>) {
<declarações>
<comandos>
}
}

Onde, main: método por onde se inicia a execução
public: parâmetro de acesso
static: indica que main se aplica à classe
void: indica que main não retorna um valor
Definindo Métodos em Java
O

tipo do valor a ser retornado pelo método
 Nome do método
 Lista, possivelmente vazia, indicando o tipo e
o nome dos argumentos a serem recebidos
pelo método
Usa-se void para indicar que o método não retorna
nenhum valor, apenas altera os valores dos atributos
de um objeto
Definindo Métodos em Java
public class Conta {
private String numero;
private double saldo;

}

public String getNumero() {
return numero;
}
public double getSaldo() {
return saldo;
}
...

Os métodos que retornam valores como
resultado usam o comando return
O Corpo do Método
 Comandos

que determinam as ações do

método
 Estes comandos podem





realizar simples atualizações dos atributos de um
objeto
retornar valores
executar ações mais complexas como se
comunicar com outros objetos
Comunicação entre objetos
 Os

objetos se comunicam para realizar
tarefas
 A comunicação é feita através da troca de
mensagens ou chamada de métodos
 Cada mensagem é uma requisição para que
um objeto execute uma operação específica
conta.creditar(45.30)
variável contendo
referência para
objeto

nome do
método a ser
executado
Exercício
 Crie

 Crie

uma classe Pessoa com 2 atributos

uma classe Aluno que seja uma classe
filha da classe Pessoa

Mais conteúdo relacionado

Mais procurados

Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
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çaDaniel Brandão
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaCristiano Almeida
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - ConceitosMayron Cachina
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetosdanielrpgj30
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Professor Samuel Ribeiro
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1Filipo Mór
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 

Mais procurados (20)

Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
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
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
SCJA
SCJASCJA
SCJA
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 

Destaque

VersióN Definitiva Corregida
VersióN Definitiva CorregidaVersióN Definitiva Corregida
VersióN Definitiva CorregidaFESABID
 
1ºZaragoza 2009
1ºZaragoza 20091ºZaragoza 2009
1ºZaragoza 2009FESABID
 
SIDERA CIDADE SIMPATIA
SIDERA CIDADE SIMPATIASIDERA CIDADE SIMPATIA
SIDERA CIDADE SIMPATIAsidera sidera
 
Informe Conjuntural 2º trim 2010
Informe Conjuntural 2º trim 2010Informe Conjuntural 2º trim 2010
Informe Conjuntural 2º trim 2010Kleber Pinto
 
Antibiotico rpm bueno
Antibiotico rpm buenoAntibiotico rpm bueno
Antibiotico rpm buenoEly Garcés
 
Fpnc edição especial
Fpnc edição especialFpnc edição especial
Fpnc edição especialJunior Campos
 
1.Antonio Carpallo Experiencias3 Carpallo
1.Antonio Carpallo  Experiencias3 Carpallo1.Antonio Carpallo  Experiencias3 Carpallo
1.Antonio Carpallo Experiencias3 CarpalloFESABID
 
Ejemplo Presentacion
Ejemplo PresentacionEjemplo Presentacion
Ejemplo Presentacionajldva
 

Destaque (9)

VersióN Definitiva Corregida
VersióN Definitiva CorregidaVersióN Definitiva Corregida
VersióN Definitiva Corregida
 
1ºZaragoza 2009
1ºZaragoza 20091ºZaragoza 2009
1ºZaragoza 2009
 
Los valores Humanos
Los valores HumanosLos valores Humanos
Los valores Humanos
 
SIDERA CIDADE SIMPATIA
SIDERA CIDADE SIMPATIASIDERA CIDADE SIMPATIA
SIDERA CIDADE SIMPATIA
 
Informe Conjuntural 2º trim 2010
Informe Conjuntural 2º trim 2010Informe Conjuntural 2º trim 2010
Informe Conjuntural 2º trim 2010
 
Antibiotico rpm bueno
Antibiotico rpm buenoAntibiotico rpm bueno
Antibiotico rpm bueno
 
Fpnc edição especial
Fpnc edição especialFpnc edição especial
Fpnc edição especial
 
1.Antonio Carpallo Experiencias3 Carpallo
1.Antonio Carpallo  Experiencias3 Carpallo1.Antonio Carpallo  Experiencias3 Carpallo
1.Antonio Carpallo Experiencias3 Carpallo
 
Ejemplo Presentacion
Ejemplo PresentacionEjemplo Presentacion
Ejemplo Presentacion
 

Semelhante a Aula 1 - Linguagem III

Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#biandamakengo08
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Marcelo Zeferino
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
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íciosArthur Emanuel
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacaotaniamaciel
 
Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfssuser6e99cd
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidIury Teixeira
 

Semelhante a Aula 1 - Linguagem III (20)

Java7
Java7Java7
Java7
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Poo
PooPoo
Poo
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Aula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptxAula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptx
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
v
vv
v
 
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
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacao
 
POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdf
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 

Aula 1 - Linguagem III

  • 1. UNIJUÍ – DETEC – Ciência da Computação Prof. Msc. Juliano Gomes Weber (jgw@unijui.edu.br) Linguagem de programação III Notas de Aula – Aula 01 1º Semestre - 2010 jgw@unijui.edu.br
  • 2. • Objetivo da aula de hoje • • • Apresentações: • Tópicos que serão abordados na disciplina; • Alunos; • Professor; Sistemática de avaliação; Revisão de conteúdo base para esta disciplina; jgw@unijui.edu.br
  • 3.  Tópicos que serão abordados na disciplina  Persistência de Objetos - Banco de dados e Java  Programação em Rede - Sockets  Programação para Internet  Principal ferramenta NETBEANS IDE Tecnologias Web jgw@unijui.edu.br
  • 4. Sobre vocês ?  Apresentação individual     Semestre letivo individual? Trabalha na área? Experiência com programação? Experiência com Java?
  • 5.  Formação    Sobre o Professor Bacharel em informática UNIJUI – 2001 Mestre em Computação - UFSM - 2009 Histórico Profissional     Unijuí - Programador Sênior; Unicruz - Professor do curso de Ciência da computação; Escola técnicas, Sistemas comercias, sistemas para internet; Desenvolvimento de sistemas complexos;  Análise e desenvolvimento de sistemas;
  • 6. Sistemática de avaliação     Avaliação contínua e individual; Trabalho para a disciplina (será definido em breve); Provas; Trabalhos individuais;
  • 7. Início da revisão - Orientação à objetos Utiliza uma perspectiva mais humana de observação da realidade, incluindo objetos, classificação e compreensão hierárquica
  • 8. Contexto Histórico A    crise do desenvolvimento do software: Demanda muito superior à capacidade de desenvolvimento; Qualidade insuficiente dos produtos; Estimativas de custo e tempo raramente cumpridas nos projetos.  Surge a Engenharia de Software
  • 9. Engenharia de Software Busca organizar esforços no desenvolvimento de ferramentas, metodologias e ambientes de suporte ao desenvolvimento de software
  • 10. Programação Orientada a Objetos  Foco nos dados (objetos) do sistema, não nas funções  Estruturação do programa é baseada nos dados, não nas funções  As funções mudam mais do que os dados
  • 11. Paradigma Orientado a Objetos  Pressupõe que o mundo é composto por objetos  Objeto é uma entidade que combina estrutura de dados e comportamento funcional  Os sistemas são modelados como um número de objetos que se interagem
  • 13. Paradigma Orientado a Objetos A orientação a objetos surgiu nos primórdios da década de 70, com as linguagens ADA, SIMULA e Small Talk.  Ficou bastante difundida nos anos 80, com linguagens como o C++, e teve uma recente explosão em difusão nos anos 90, através da linguagem Java.  Hoje é um padrão de fato!
  • 14. Benefícios da OO  Reutilização  Extensibilidade  Manutenção  Redução na quantidade de erros
  • 15. Encapsulamento     Usado para esconder detalhes de implementação Não é necessário saber como a classe está implementada para chamar o método necessário. Basta saber a interface do método Os atributos de um objeto só devem ser manipulados pelos métodos do próprio objeto (orientação a objeto pura).
  • 16. Variáveis da Instância X da Classe Variáveis da classe    Só existe uma cópia de cada variável Todos as instâncias acessam a mesma cópia das variáveis São criadas apenas uma vez assim que o sistema reconhece a classe Variáveis da Instância    Existe uma cópia para cada instância criada Cada instância acessa a sua cópia São criadas sempre quando uma nova instância é gerada
  • 17. Identificando Objetos  Em uma sala existe um conjunto de objetos físicos que podem ser facilmente identificados, modelados e classificados como objetos OO.  Mas em um problema onde o espaço é uma aplicação de software, os objetos podem não ser facilmente encontrados.
  • 18. Identificando Objetos Os objetos podem ser identificados analisando-se o problema ou fazendo um “parser gramatical” do texto contendo a descrição do problema  Objetos são determinados sublinhando-se cada substantivo;
  • 19. Objetos, classes, métodos e atributos Detalhando...
  • 20. Objetos  Mundo real formado por elementos: Objetos  Objetos podem ser coisas concretas ou abstratas  Ex: Carro, Pessoa, Emissão de Nota, etc
  • 21. Estado do Objeto  Conjunto de suas propriedades associadas a seus valores correntes  Propriedades geralmente referenciadas como Atributos  Ex: Propriedades:  Cor = Vermelha  Ano = 2001  Velocidade = 0 Km/h  Combustível = Gasolina
  • 22. Comportamento do Objeto  Conjunto de serviços ou operações que outros objetos podem requisitar  Operações geralmente referenciadas como Métodos  Representa como o objeto reage às Mensagens a ele enviadas Operações  Ex     Acelerar ( ) Frear ( ) Acender Faróis ( ) Virar a Direita ( )
  • 23. Identidade Única  Objetos têm existência própria  São distintos mesmo se seus estados e comportamento forem iguais  Identificador que permite referência inequívoca  Ex Ferrari do Luciano
  • 24. Classes  No mundo real, diferentes objetos desempenham o mesmo papel Automóveis A estrutura e o comportamento comuns dos objetos podem ser agrupados
  • 25. Classes  Modelo que descreve a estrutura e o comportamento de objetos comuns = Classe  Objetos que se comportam da maneira especificada pela classe são ditos Instâncias dessa classe  Ex Ferrari do Luciano é um Instância da Classe Automóvel
  • 26. Classe abstrata  Pelo menos um de seus métodos está declarado mas não têm implementação associada.  Método abstrato: método sem implementação  Não gera instância  Só pode ser usada como base para outras classes   herança Cada subclasse deverá implementar o método abstrato da superclasse (classe abstrata)
  • 28. Polimorfismo  Polimorfismo é a habilidade de diferentes instâncias, de classes diferentes, responderem a mesma mensagem de diferentes maneiras.   executar métodos com a mesma assinatura mas implementados de maneira diferente Classe polimórfica:  quando instâncias suas ou instâncias de classes derivadas suas possuem mensagens que nem sempre são respondidas da mesma maneira - a resposta irá depender do contexto da execução.
  • 29. Restrição de acesso (métodos e atributos)  Public: sem restrição. Qualquer objeto pode acessar tal método/atributo  Private: apenas o objeto que possui o método/atributo pode acessa-lo  Protect: apenas os objetos das classes do mesmo pacote podem acessar o método/atributo  Default:   atributo -> C++: private / JAVA: private método -> C++: private / JAVA: public
  • 30. OO e JAVA  Como java? implementar o paradigma OO em
  • 31. Definindo Classes em Java public class NomeDaClasse { CorpoDaClasse } O corpo de uma classe pode conter • atributos • métodos • construtores (inicializadores) • outras classes...
  • 32. Exemplo public class LeImprime { /** Lê e imprime um string */ public static void main(String[] args) { String nome; nome = Util.readStr(); System.out.println(nome); } }
  • 33. Definindo Atributos em Java public class Livro { private int anoDePublicacao; private int numeroDePaginas; private String titulo; ... }  cada atributo tem um tipo específico que caracteriza as propriedades dos objetos da classe  int e String denotam os tipos cujos elementos são inteiros e strings
  • 34. Tipos em Java  Primitivos      char int boolean double ...  Referência    classes (String, Object, Livro, Conta, etc.) interfaces arrays Os elementos de um tipo primitivo são valores, enquanto os elementos de um tipo referência são (referências para) objetos!
  • 35. Definindo Atributos em Java public class Pessoa { private int anoDeNascimento; private String nome, sobrenome; private boolean casado = false; ... }  vários atributos de um mesmo tipo podem ser declarados conjuntamente  podemos especificar que um atributo deve ser inicializado com um valor específico
  • 36. Definindo Métodos em Java public class Conta { private String numero; private double saldo; } public void creditar(double valor) { saldo = saldo + valor; } ... Um método é uma operação que realiza ações e modifica os valores dos atributos do objeto responsável pela sua execução
  • 37. Definindo Métodos em Java public class Conta { ... } parâmetros do método public void debitar(double valor) { saldo = saldo - valor; } tipo de retorno corpo do método Por quê o debitar não tem como parâmetro o número da conta?
  • 38. Outro exemplo... public class <nome> { public static void main (<parametros>) { <declarações> <comandos> } } Onde, main: método por onde se inicia a execução public: parâmetro de acesso static: indica que main se aplica à classe void: indica que main não retorna um valor
  • 39. Definindo Métodos em Java O tipo do valor a ser retornado pelo método  Nome do método  Lista, possivelmente vazia, indicando o tipo e o nome dos argumentos a serem recebidos pelo método Usa-se void para indicar que o método não retorna nenhum valor, apenas altera os valores dos atributos de um objeto
  • 40. Definindo Métodos em Java public class Conta { private String numero; private double saldo; } public String getNumero() { return numero; } public double getSaldo() { return saldo; } ... Os métodos que retornam valores como resultado usam o comando return
  • 41. O Corpo do Método  Comandos que determinam as ações do método  Estes comandos podem    realizar simples atualizações dos atributos de um objeto retornar valores executar ações mais complexas como se comunicar com outros objetos
  • 42. Comunicação entre objetos  Os objetos se comunicam para realizar tarefas  A comunicação é feita através da troca de mensagens ou chamada de métodos  Cada mensagem é uma requisição para que um objeto execute uma operação específica conta.creditar(45.30) variável contendo referência para objeto nome do método a ser executado
  • 43. Exercício  Crie  Crie uma classe Pessoa com 2 atributos uma classe Aluno que seja uma classe filha da classe Pessoa