SlideShare uma empresa Scribd logo
Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000
3a. Aula Programação Java Básica
Vimos na aula passada Comandos de Decisão Comandos de Repetição Exercícios
Nesta aula veremos: Programação Orientada a Objetos Classes  Objetos Atributos Métodos Variáveis locais e globais Exercícios
Programação Orientada a Objetos Em Java tudo é um objeto. Características da POO: Abstração Modularidade Encapsulamento  Reutilização de Componentes
Objetos e Classes de Objetos
Objetos e Classes de Objetos  Objetos são entidades em um sistema de software que representam instâncias de entidades do mundo real e de algum sistema. Classes são  templates  (formas) de objetos. Elas são usadas para criar objetos.  Classes podem herdar atributos e serviços de outras classes.
Objetos Um  objeto  é uma entidade que possui um estado e define um conjunto de operações que modificam este estado. O estado é representado por um conjunto de atributos.  As operações associadas com o objeto provêm serviços para outros objetos (clientes), os quais requisitam serviço quando alguma computação é necessária.
Classes de objetos Objetos são criados de acordo com uma definição feita por uma  classe de objetos .  Uma definição de classe serve como forma ( template ) para os objetos. Ela inclui declarações para todos os atributos e serviços que devem estar associados a um objeto daquela classe. Classes são Fábricas de objetos
Classe Empregado (UML)
Classes Todo objeto pertence a uma classe. Quando definimos uma classe de objetos, estamos na verdade definindo que propriedades e métodos o objeto possui, ou seja, que informações ele deve armazenar e que ações ele poderá executar. Uma classe contém: atributos e métodos
Classes - Exemplo moveForward() moveBackward() turnLeft() turnRight() stop() positionX : float positionY : float direction: short Robot
Declarando uma Classe public class Robot { public float positionX = 0;  public float positionY = 0; public short direction = 0;  void moveForward() { // Comandos } void moveBackward() { // Comandos } ... } Atributos Métodos
Atributos (ou  Fields ) Atributos são variáveis em que o objeto armazena informações Lembram: os campos de dados de um banco de dados os campos de uma estrutura ( struct  em C ou  record  em Pascal).
Métodos Um  método  é uma seqüência de declarações e comandos executáveis encapsulados como se fossem um mini-programa. Em outras linguagens, são chamados de: sub-rotinas procedimentos funções
Métodos (II) Em Java, todo comando deve estar dentro de um método. Métodos definem o que os objetos são capazes de fazer. Características: Podem receber uma lista de parâmetros Podem retornar um valor.
Métodos - Exemplo Sem retorno de valor, sem parâmetros void limpaTela() { } Retorna um valor inteiro, com um parâmetro int quadrado (int x) { return ( x * x); }
Usando um método: invocação de dentro da classe Sem retorno de valor, sem parâmetros ... limpaTela(); ... Retorna um valor inteiro, com um parâmetro ...  z = quadrado (10); ...
Usando um método: invocação de fora da classe Retorna um valor inteiro, com um parâmetro ...  z = objeto.quadrado (10); ...
Objetos = Instância de uma Classe Ao definirmos uma classe, estamos apenas criando uma  descrição  do que objetos daquela classe são capazes de fazer. A partir desta definição podemos criar objetos que serão capazes de realizar o que foi definido O ato de criar objetos a partir de uma classe é chamado instanciação.
Exemplo de Objeto public class RoboticTeam { Robot C3-PELE =  new Robot(); Robot R2D-DUNGA = new Robot(); Robot ROBOMÁRIO = new Robot(); void ataque() { } void defesa() { } } Objetos
Comunicação entre Objetos (I) Conceitualmente, objetos se comunicam através da troca de mensagens. Mensagens definem: O nome do serviço requisitado A informação necessária para a execução do serviço O nome do requisitante.
Comunicação entre Objetos (II) Na prática, mensagens são implementadas como chamadas de função.  Nome = o nome do procedimento. Informação = a lista de parâmetros. Requisitante = o procedimento que realizou a chamada.
Exemplos de mensagens. // Call a method associated with a buffer  // object that returns the next value  //  in the buffer v = circularBuffer.Get () ; // Call the method associated with a // thermostat object that sets the  // temperature to be maintained thermostat.setTemp (20) ;
Exercício Crie uma classe Termômetro, que possui um método que transforme graus Farenheigh em graus Celcius. Um número complexo possui duas partes: a parte real e a imaginária: A + B i Crie uma classe de números complexos, com métodos de adição, subtração, encontrar o conjugado, ... http://albert.math.uiuc.edu/complx1/complx1.htm
Variáveis Locais x Globais Variável Local: Definida dentro de um método. Não pode ser usada por outros métodos. Variável Global: Definida como atributo de uma classe. Pode ser usada dentro de qualquer método da classe e sub-classes. Regra: Sempre que possível use variáveis locais!
Modificadores de Acesso Palavras, que são colocadas na frente da definição de qualquer membro de uma classe (atributos ou métodos). Especificam o acesso a uma definição em particular. “ friend ”  public private protected
Tipos de modificadores “ friend ”: é o  default , portanto, não precisa ser declarado. Permite acesso a partir das classes do mesmo arquivo. public : Permite acesso irrestrito a partir de qualquer classe (mesmo que estejam em outros arquivos).
Tipos de modificadores protected : Permite acesso a partir de uma classe que é herdeira de outra Igual a “friendly” para classes da mesma “família”. private : Somente os membros da classe específica possuem acesso.  Acesso negado a todos os outros!
Modificadores de Classes Palavras, que são colocadas na frente da definição das classes. Especificam o acesso a uma classe (como foi feito aos métodos) Classes podem ser apenas: public abstract: não pode ser instanciada final: não pode ter herdeiras
Observação Em Java, pode haver apenas uma   classe  public  por arquivo! O nome do arquivo deve ser exatamente igual   ao nome da classe  public .
Inicialização e Finalização de objetos Construtores: Métodos usados para inicializar os atributos de um objeto recém criado Finalizadores (Destrutores): Métodos usados para “limpeza” ao final do uso do objeto.
Características dos Construtores Possuem o mesmo nome da classe. São chamados automaticamente quando declara-se um novo objeto. Podem executar comandos. Não retornam valores. É um método “ public ”. Pode haver mais de um construtor para uma mesma classe.
Exemplo - Construtores public Robot(int posX, int posY) { street = posX; avenue = posY; } public Robot() { street = avenue = 0; } Se instanciarmos o objeto desta forma: Robot karel = new Robot(2,3); o primeiro construtor é executado.
Exemplo de construtor Ver programa Construtor.java Exercício: use o  ”for”  para criar 10 pedras.
Finalizando um programa Para finalizar um programa, podemos criar uma função especial: finalize(); É executada quando o sistema realiza a “garbage collection” É um método  protected void Usada para qualquer tipo de “limpeza” ao final da existência de um objeto (fechar arquivos, portas comm, ...)
Exercícios Crie um objeto círculo. Quais os seus atributos e métodos? Implemente todos os métodos. Crie um objeto polígono. Quais os seus atributos e métodos? Implemente todos os métodos. Implemente um objeto calculadora.
Exercícios para entregar na próxima aula: Exercícios de Programação do livro “Programming with Java” de John Hubbard: Capítulo 5 (Métodos - página 98-100): 5.1, 5.3, 5.7,  Capítulo 6 (Classes páginas 84 - 85): 6.1, 6.2, 6.20, 6.21, 6.22, 6.23, 6.24

Mais conteúdo relacionado

Mais procurados

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
Charles Jungbeck
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
Natanael Fonseca
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
Natanael Fonseca
 
Conhecendo A Linguagem de Programação Java
Conhecendo A Linguagem de Programação JavaConhecendo A Linguagem de Programação Java
Conhecendo A Linguagem de Programação Java
Micael Coutinho
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
Gabriel Faustino
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
Leonardo Melo Santos
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
Gabriel Faustino
 
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
danielrpgj30
 
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
Leonardo Melo Santos
 
Java 02
Java 02Java 02
Java 02
samuelthiago
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
Pedro De Almeida
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
Arthur Emanuel
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Poo
PooPoo
3- POO
3- POO3- POO
3- POO
Frank Coelho
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
Nécio de Lima Veras
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
Arthur Emanuel
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
Jamildo Feitosa
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Moises Omena
 

Mais procurados (20)

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
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Conhecendo A Linguagem de Programação Java
Conhecendo A Linguagem de Programação JavaConhecendo A Linguagem de Programação Java
Conhecendo A Linguagem de Programação Java
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
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
 
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 02
Java 02Java 02
Java 02
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Poo
PooPoo
Poo
 
3- POO
3- POO3- POO
3- POO
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
 

Destaque

1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br
1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br
1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br
Thiago Richter
 
Bob, o explorador
Bob, o explorador Bob, o explorador
Bob, o explorador
DJM Projecto
 
Implementação de um robot móvel
Implementação de um robot móvelImplementação de um robot móvel
Implementação de um robot móvel
pjclima
 
APRESENTACAO FUTURE ROBOT
APRESENTACAO FUTURE ROBOTAPRESENTACAO FUTURE ROBOT
APRESENTACAO FUTURE ROBOT
Future Robot
 
Robot Shoter Bot. Mindstorm. El Pital
Robot Shoter Bot. Mindstorm. El Pital Robot Shoter Bot. Mindstorm. El Pital
Robot Shoter Bot. Mindstorm. El Pital
yuliana2003
 
Mr robot
Mr robotMr robot
Mr robot
Meio & Mensagem
 
Coaprendizagem robot humanos
Coaprendizagem robot humanosCoaprendizagem robot humanos
Coaprendizagem robot humanos
Golem Company
 
Armando Un Brazo Robot
Armando Un Brazo RobotArmando Un Brazo Robot
Armando Un Brazo Robot
marinarr
 
Morfología del robot
Morfología del robotMorfología del robot
Morfología del robot
Felix Rivas
 
Intro RobóTica
Intro RobóTicaIntro RobóTica
Intro RobóTica
mogudestecnologiques
 
ROBOTS DE PISCINAS
ROBOTS DE PISCINASROBOTS DE PISCINAS
BRAÇO ROBÓTICO - TCC ARM ROBOT
BRAÇO ROBÓTICO - TCC ARM ROBOT BRAÇO ROBÓTICO - TCC ARM ROBOT
BRAÇO ROBÓTICO - TCC ARM ROBOT
Márcio Claudino
 
5 reflexiones sobre Robots
5 reflexiones sobre Robots5 reflexiones sobre Robots
5 reflexiones sobre Robots
Cero23
 
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Alvaro Angel Romero Gandul
 
Robotica ppt
Robotica pptRobotica ppt
Robotica ppt
doloresmartinez202202
 
Robot submarinos
Robot submarinosRobot submarinos
Robot submarinos
Juan Markz
 
How to create Forex Robot for Fix Api Trading
How to create Forex Robot for Fix Api Trading How to create Forex Robot for Fix Api Trading
How to create Forex Robot for Fix Api Trading
Edwin12Gentner
 
Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.
Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.
Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.
Joii Halford
 
Autonomous maze solving robot (1/2)
Autonomous maze solving robot (1/2)Autonomous maze solving robot (1/2)
Autonomous maze solving robot (1/2)
Musfiqur Rahman
 
Receitas Robot De Cozinha N 17
Receitas Robot De Cozinha N  17Receitas Robot De Cozinha N  17
Receitas Robot De Cozinha N 17
penacozinha
 

Destaque (20)

1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br
1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br
1G1 Futebol de Robôs - Thiago Richter & Ivan Santos - Graduação 2005 Pt Br
 
Bob, o explorador
Bob, o explorador Bob, o explorador
Bob, o explorador
 
Implementação de um robot móvel
Implementação de um robot móvelImplementação de um robot móvel
Implementação de um robot móvel
 
APRESENTACAO FUTURE ROBOT
APRESENTACAO FUTURE ROBOTAPRESENTACAO FUTURE ROBOT
APRESENTACAO FUTURE ROBOT
 
Robot Shoter Bot. Mindstorm. El Pital
Robot Shoter Bot. Mindstorm. El Pital Robot Shoter Bot. Mindstorm. El Pital
Robot Shoter Bot. Mindstorm. El Pital
 
Mr robot
Mr robotMr robot
Mr robot
 
Coaprendizagem robot humanos
Coaprendizagem robot humanosCoaprendizagem robot humanos
Coaprendizagem robot humanos
 
Armando Un Brazo Robot
Armando Un Brazo RobotArmando Un Brazo Robot
Armando Un Brazo Robot
 
Morfología del robot
Morfología del robotMorfología del robot
Morfología del robot
 
Intro RobóTica
Intro RobóTicaIntro RobóTica
Intro RobóTica
 
ROBOTS DE PISCINAS
ROBOTS DE PISCINASROBOTS DE PISCINAS
ROBOTS DE PISCINAS
 
BRAÇO ROBÓTICO - TCC ARM ROBOT
BRAÇO ROBÓTICO - TCC ARM ROBOT BRAÇO ROBÓTICO - TCC ARM ROBOT
BRAÇO ROBÓTICO - TCC ARM ROBOT
 
5 reflexiones sobre Robots
5 reflexiones sobre Robots5 reflexiones sobre Robots
5 reflexiones sobre Robots
 
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
 
Robotica ppt
Robotica pptRobotica ppt
Robotica ppt
 
Robot submarinos
Robot submarinosRobot submarinos
Robot submarinos
 
How to create Forex Robot for Fix Api Trading
How to create Forex Robot for Fix Api Trading How to create Forex Robot for Fix Api Trading
How to create Forex Robot for Fix Api Trading
 
Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.
Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.
Robótica y Tecnología: Breve análisis de Wall-E y Yo, Robot.
 
Autonomous maze solving robot (1/2)
Autonomous maze solving robot (1/2)Autonomous maze solving robot (1/2)
Autonomous maze solving robot (1/2)
 
Receitas Robot De Cozinha N 17
Receitas Robot De Cozinha N  17Receitas Robot De Cozinha N  17
Receitas Robot De Cozinha N 17
 

Semelhante a v

Java7
Java7Java7
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
José Cléber dos Santos Ferreira
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
antonio sérgio nogueira
 
Classes objetos
Classes objetosClasses objetos
Classes objetos
nikson123
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
Juliano Weber
 
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
Iury Teixeira
 
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptxAULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AurelcioOliveira
 
03 poo
03 poo03 poo
03 poo
eduardohabib
 
Guia Rápido Java
Guia Rápido JavaGuia Rápido Java
Guia Rápido Java
Matheus Pinto
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Wanderlei Silva do Carmo
 
Aula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aooAula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aoo
Portal_do_estudante_ADS
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
Ryan Padilha
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
GersonZavala2
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classes
Carlos Melo
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
Saulo Arruda
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
JoseHenrique Joanoni
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
Infogenius
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
PeslPinguim
 
Aula02
Aula02Aula02
Aula02
Lucas Lellis
 
Java11
Java11Java11

Semelhante a v (20)

Java7
Java7Java7
Java7
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Classes objetos
Classes objetosClasses objetos
Classes objetos
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
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
 
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptxAULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
 
03 poo
03 poo03 poo
03 poo
 
Guia Rápido Java
Guia Rápido JavaGuia Rápido Java
Guia Rápido Java
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Aula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aooAula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aoo
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classes
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
 
Aula02
Aula02Aula02
Aula02
 
Java11
Java11Java11
Java11
 

Mais de Rodrigo Vieira

Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
Rodrigo Vieira
 
Seja idiota Jabor
Seja idiota JaborSeja idiota Jabor
Seja idiota Jabor
Rodrigo Vieira
 
Pessoas Especiais
Pessoas EspeciaisPessoas Especiais
Pessoas Especiais
Rodrigo Vieira
 
Sorria Sempre
Sorria SempreSorria Sempre
Sorria Sempre
Rodrigo Vieira
 
Temperamentos _Sathler
Temperamentos _SathlerTemperamentos _Sathler
Temperamentos _Sathler
Rodrigo Vieira
 
Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
Rodrigo Vieira
 
Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
Rodrigo Vieira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
Rodrigo Vieira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
Rodrigo Vieira
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
Rodrigo Vieira
 
ptt
pttptt
ptt
pttptt
So no orkut
So no orkutSo no orkut
So no orkut
Rodrigo Vieira
 
Eramos Felizes e não sabiamos
Eramos Felizes e não sabiamosEramos Felizes e não sabiamos
Eramos Felizes e não sabiamos
Rodrigo Vieira
 
Tortas Padaria Pampulha
Tortas Padaria PampulhaTortas Padaria Pampulha
Tortas Padaria Pampulha
Rodrigo Vieira
 
Bebida
BebidaBebida

Mais de Rodrigo Vieira (17)

Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
 
Seja idiota Jabor
Seja idiota JaborSeja idiota Jabor
Seja idiota Jabor
 
Pessoas Especiais
Pessoas EspeciaisPessoas Especiais
Pessoas Especiais
 
Sorria Sempre
Sorria SempreSorria Sempre
Sorria Sempre
 
Temperamentos _Sathler
Temperamentos _SathlerTemperamentos _Sathler
Temperamentos _Sathler
 
Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
 
Padariapampulha
PadariapampulhaPadariapampulha
Padariapampulha
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
ptt
pttptt
ptt
 
ptt
pttptt
ptt
 
Rodrigo
RodrigoRodrigo
Rodrigo
 
So no orkut
So no orkutSo no orkut
So no orkut
 
Eramos Felizes e não sabiamos
Eramos Felizes e não sabiamosEramos Felizes e não sabiamos
Eramos Felizes e não sabiamos
 
Tortas Padaria Pampulha
Tortas Padaria PampulhaTortas Padaria Pampulha
Tortas Padaria Pampulha
 
Bebida
BebidaBebida
Bebida
 

v

  • 1. Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000
  • 2. 3a. Aula Programação Java Básica
  • 3. Vimos na aula passada Comandos de Decisão Comandos de Repetição Exercícios
  • 4. Nesta aula veremos: Programação Orientada a Objetos Classes Objetos Atributos Métodos Variáveis locais e globais Exercícios
  • 5. Programação Orientada a Objetos Em Java tudo é um objeto. Características da POO: Abstração Modularidade Encapsulamento Reutilização de Componentes
  • 6. Objetos e Classes de Objetos
  • 7. Objetos e Classes de Objetos Objetos são entidades em um sistema de software que representam instâncias de entidades do mundo real e de algum sistema. Classes são templates (formas) de objetos. Elas são usadas para criar objetos. Classes podem herdar atributos e serviços de outras classes.
  • 8. Objetos Um objeto é uma entidade que possui um estado e define um conjunto de operações que modificam este estado. O estado é representado por um conjunto de atributos. As operações associadas com o objeto provêm serviços para outros objetos (clientes), os quais requisitam serviço quando alguma computação é necessária.
  • 9. Classes de objetos Objetos são criados de acordo com uma definição feita por uma classe de objetos . Uma definição de classe serve como forma ( template ) para os objetos. Ela inclui declarações para todos os atributos e serviços que devem estar associados a um objeto daquela classe. Classes são Fábricas de objetos
  • 11. Classes Todo objeto pertence a uma classe. Quando definimos uma classe de objetos, estamos na verdade definindo que propriedades e métodos o objeto possui, ou seja, que informações ele deve armazenar e que ações ele poderá executar. Uma classe contém: atributos e métodos
  • 12. Classes - Exemplo moveForward() moveBackward() turnLeft() turnRight() stop() positionX : float positionY : float direction: short Robot
  • 13. Declarando uma Classe public class Robot { public float positionX = 0; public float positionY = 0; public short direction = 0; void moveForward() { // Comandos } void moveBackward() { // Comandos } ... } Atributos Métodos
  • 14. Atributos (ou Fields ) Atributos são variáveis em que o objeto armazena informações Lembram: os campos de dados de um banco de dados os campos de uma estrutura ( struct em C ou record em Pascal).
  • 15. Métodos Um método é uma seqüência de declarações e comandos executáveis encapsulados como se fossem um mini-programa. Em outras linguagens, são chamados de: sub-rotinas procedimentos funções
  • 16. Métodos (II) Em Java, todo comando deve estar dentro de um método. Métodos definem o que os objetos são capazes de fazer. Características: Podem receber uma lista de parâmetros Podem retornar um valor.
  • 17. Métodos - Exemplo Sem retorno de valor, sem parâmetros void limpaTela() { } Retorna um valor inteiro, com um parâmetro int quadrado (int x) { return ( x * x); }
  • 18. Usando um método: invocação de dentro da classe Sem retorno de valor, sem parâmetros ... limpaTela(); ... Retorna um valor inteiro, com um parâmetro ... z = quadrado (10); ...
  • 19. Usando um método: invocação de fora da classe Retorna um valor inteiro, com um parâmetro ... z = objeto.quadrado (10); ...
  • 20. Objetos = Instância de uma Classe Ao definirmos uma classe, estamos apenas criando uma descrição do que objetos daquela classe são capazes de fazer. A partir desta definição podemos criar objetos que serão capazes de realizar o que foi definido O ato de criar objetos a partir de uma classe é chamado instanciação.
  • 21. Exemplo de Objeto public class RoboticTeam { Robot C3-PELE = new Robot(); Robot R2D-DUNGA = new Robot(); Robot ROBOMÁRIO = new Robot(); void ataque() { } void defesa() { } } Objetos
  • 22. Comunicação entre Objetos (I) Conceitualmente, objetos se comunicam através da troca de mensagens. Mensagens definem: O nome do serviço requisitado A informação necessária para a execução do serviço O nome do requisitante.
  • 23. Comunicação entre Objetos (II) Na prática, mensagens são implementadas como chamadas de função. Nome = o nome do procedimento. Informação = a lista de parâmetros. Requisitante = o procedimento que realizou a chamada.
  • 24. Exemplos de mensagens. // Call a method associated with a buffer // object that returns the next value // in the buffer v = circularBuffer.Get () ; // Call the method associated with a // thermostat object that sets the // temperature to be maintained thermostat.setTemp (20) ;
  • 25. Exercício Crie uma classe Termômetro, que possui um método que transforme graus Farenheigh em graus Celcius. Um número complexo possui duas partes: a parte real e a imaginária: A + B i Crie uma classe de números complexos, com métodos de adição, subtração, encontrar o conjugado, ... http://albert.math.uiuc.edu/complx1/complx1.htm
  • 26. Variáveis Locais x Globais Variável Local: Definida dentro de um método. Não pode ser usada por outros métodos. Variável Global: Definida como atributo de uma classe. Pode ser usada dentro de qualquer método da classe e sub-classes. Regra: Sempre que possível use variáveis locais!
  • 27. Modificadores de Acesso Palavras, que são colocadas na frente da definição de qualquer membro de uma classe (atributos ou métodos). Especificam o acesso a uma definição em particular. “ friend ” public private protected
  • 28. Tipos de modificadores “ friend ”: é o default , portanto, não precisa ser declarado. Permite acesso a partir das classes do mesmo arquivo. public : Permite acesso irrestrito a partir de qualquer classe (mesmo que estejam em outros arquivos).
  • 29. Tipos de modificadores protected : Permite acesso a partir de uma classe que é herdeira de outra Igual a “friendly” para classes da mesma “família”. private : Somente os membros da classe específica possuem acesso. Acesso negado a todos os outros!
  • 30. Modificadores de Classes Palavras, que são colocadas na frente da definição das classes. Especificam o acesso a uma classe (como foi feito aos métodos) Classes podem ser apenas: public abstract: não pode ser instanciada final: não pode ter herdeiras
  • 31. Observação Em Java, pode haver apenas uma classe public por arquivo! O nome do arquivo deve ser exatamente igual ao nome da classe public .
  • 32. Inicialização e Finalização de objetos Construtores: Métodos usados para inicializar os atributos de um objeto recém criado Finalizadores (Destrutores): Métodos usados para “limpeza” ao final do uso do objeto.
  • 33. Características dos Construtores Possuem o mesmo nome da classe. São chamados automaticamente quando declara-se um novo objeto. Podem executar comandos. Não retornam valores. É um método “ public ”. Pode haver mais de um construtor para uma mesma classe.
  • 34. Exemplo - Construtores public Robot(int posX, int posY) { street = posX; avenue = posY; } public Robot() { street = avenue = 0; } Se instanciarmos o objeto desta forma: Robot karel = new Robot(2,3); o primeiro construtor é executado.
  • 35. Exemplo de construtor Ver programa Construtor.java Exercício: use o ”for” para criar 10 pedras.
  • 36. Finalizando um programa Para finalizar um programa, podemos criar uma função especial: finalize(); É executada quando o sistema realiza a “garbage collection” É um método protected void Usada para qualquer tipo de “limpeza” ao final da existência de um objeto (fechar arquivos, portas comm, ...)
  • 37. Exercícios Crie um objeto círculo. Quais os seus atributos e métodos? Implemente todos os métodos. Crie um objeto polígono. Quais os seus atributos e métodos? Implemente todos os métodos. Implemente um objeto calculadora.
  • 38. Exercícios para entregar na próxima aula: Exercícios de Programação do livro “Programming with Java” de John Hubbard: Capítulo 5 (Métodos - página 98-100): 5.1, 5.3, 5.7, Capítulo 6 (Classes páginas 84 - 85): 6.1, 6.2, 6.20, 6.21, 6.22, 6.23, 6.24