Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos do mundo real. A OO permite criar programas “componentizados”, separando as partes do sistema por responsabilidades, fazendo com que essas partes se comuniquem entre si por meio de mensagens. Essas partes do sistemas são chamadas de Objetos. Objeto Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real: Quais dados importantes de um carro? - Modelo. - Ano. - Cor. - Número de lugares. Quais ações um carro pode fazer? - Ligar. - Desligar - Ir para frente. - Ir para Trás. - Virar a direita. - Virar a esqueda. Ilustração 1: Exemplo de Objeto Na Orientação a Objetos, os Objetos do mundo real são modelados e representados dentro de um sistema. Classe É um modelo que define um objeto. Será utilizada para criar vários objetos de características semelhantes. Possui variáveis e métodos. As variáveis definem os dados que nosso objeto possui, já os métodos são ações que nosso objeto pode executar. public class Carro { String modelo; int ano; String cor; int numero_de_lugares; void ligar() { System.out.println("Vrum Vrum"); } void desligar() { System.out.println("Desligando..."); } void ir_para_frente() { System.out.println("indo para frente"); } void ir_para_tras() { System.out.println("indo para traz"); } void virar_direita() { System.out.println("virando para direita"); } void virar_esquerda() { System.out.println("virando para esquerda"); } } Código_Java 1: Classe Carro Exercícios 1. Crie uma classe no Java para representar uma pessoa, que deve conter no mínimo 4 atributos e 3 métodos. 2. Crie uma classe no Java para representar um cachorro, que deve conter no mínimo 3 atributos e 1 método. Como utilizar um objeto no Java Vimos até agora como criar a classe. Agora veremos como utilizar ela no nosso programa em Java. Como exemplo utilizaremos a classe “Carro” que criamos anteriormente. Vamos montar um programa em Java para testar a nossa classe: public class Testar_Carro { public static void main(String[] args) { Criamos Carro carro; uma variável para armazenar o acesso ao objeto carro. carro = new Carro(); carro.modelo = "Onix"; carro.ano = 2013; carro.numero_de_lugares = 5; carro.cor = "preto"; O 'new' faz o papel de instanciar a classe carro, em outras palavras ele cria o objeto Carro na memória. O Utilizamos o operador '.' para acessar o nosso objeto. carro.ligar(); carro.ir_para_frente(); carro.ir_para_tras(); carro.desligar(); } } Código_Java 2: Teste da Classe Carro Exercício 1. Crie um programa para testar a classe “Pessoa” e a classe “Cachorro” que criamos anteriormente. Como o Java trata os Objetos em Variáveis O Java trata todas variáveis que tem o tipo igual a uma classe como Variáveis de Referência, a diferença entre as variáveis primitivas e variáveis de referência são: 1. Variáveis primitivas armazenam o conteúdo dentro do contêiner delas. int var = 10; char letra = 'b'; 10 b var letra Ilustração 2: Variáveis primitivas boolean passouEmJava = true; true passouEmJava 2. As Variáveis de Referência armazenam a forma de acesso a um objeto e não o objeto propriamente dito. Carro carro = new Carro(); Objeto carro carro Carro carro2 = new Carro(); Objeto carro carro2 Memória da JVM Ilustração 3: Variáveis de Referência Atribuições As diferenças entre atribuições de variáveis primárias e variáveis de referência: 1. Nas primárias copiamos o conteúdo (valor) de uma para outra; int var1; var1 int var2; var2 var1 = 10; var2 = var1; 10 10 var1 var2 Ilustração 4: Atribuições em variáveis primitivas 2. Nas de referência copiamos a “forma de acesso” (referência) de uma para outra. Carro carro = new Carro(); carro.modelo = "Gol"; Gol carro Objeto carro Carro carro2 = new Carro(); carro2.modelo = "Onix"; Onix Objeto carro carro2 Memória da JVM carro = carro2; Gol carro Objeto carro Onix Objeto carro carro2 Memória da JVM Ilustração 5: Atribuições em variáveis de referência Métodos Vimos que dentro da Classe podemos definir as ações que o nosso objeto pode executar, essas ações chamamos de métodos, os métodos em Java possuem: • Nome. • Tipo de retorno. • Parâmetros (podemos ter métodos sem parâmetros). tipo do retorno do método nome da método. int { somar ( parâmetros do método, não são obrigatórios int num1, int num2 ) int resultado; resultado = num1+num2; return resultado; } retorno do método. Código_Java 3: Exemplo de Método Exemplo Vamos criar 2 classes, uma chamada “Calculadora” e outra “Teste_Calculadora”. public class Calculadora { int somar (int num1, int num2) { int resultado; resultado = num1+num2; return resultado; } } Código_Java 4: Classe Calculadora public class Teste_Calculadora { public static void main(String[] args) { Calculadora calculadora = new Calculadora(); int num1; int num2; int resultado; num1 = 20; num2 = 50; resultado = calculadora.somar(num1, num2); System.out.println(resultado); } } Código_Java 5: Classe Teste_Calculadora Exercícios 1. Adicionar na Classe “Calculadora” métodos para fazer as seguintes operações: ◦ Subtração. ◦ Divisão. ◦ Multiplicação. ◦ Indicar o maior número. Todas as operações devem receber 2 parâmetros de tipo inteiro e retornar um valor inteiro. Fontes Livro: Use a Cabeça! Java. Sites: www.guj.com.br