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

Classes Objetos Aspectos Basicos

O documento introduz os conceitos fundamentais de programação orientada a objetos de classe e objeto. Ele explica que uma classe define um conjunto de objetos com atributos e comportamentos comuns e que um objeto é uma instância de uma classe.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
21 visualizações37 páginas

Classes Objetos Aspectos Basicos

O documento introduz os conceitos fundamentais de programação orientada a objetos de classe e objeto. Ele explica que uma classe define um conjunto de objetos com atributos e comportamentos comuns e que um objeto é uma instância de uma classe.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 37

Introdução a Classes,

Objetos e Métodos

Programação Orientada a Objeto (1COP009)


Prof. Bruno Bogaz Zarpelão
Objetivo
• Entender dois conceitos fundamentais de OO:
– Classe.
– Objeto.

2
Finalmente, orientação a objetos!
• Orientação a objetos é um paradigma de análise,
projeto e programação de software baseado na
composição e na interação de objetos... Objetos do mundo real: pessoa,
cachorro, carro, avião, mesa,
• O que são objetos? fórmula matemática,
pensamento...não precisa ser algo
– São abstrações do mundo real; concreto...
– São estruturas que contém as informações e
comportamentos que retratam a abstração de um objeto
do mundo real;
Orientação a objetos: formalizando...
• Uma definição mais formal de orientação a objetos:
– “Programação Orientada a Objetos é um método de
implementação no qual programas são organizados como
uma coleção de objetos cooperativos, onde cada um deles
representa um instância de alguma classe, e cujas classes
são membros de uma hierarquia de classes unificada por
suas relações de herança.” (Booch, 1994).

Qual é a diferença entre classes


e objetos??????? Alguém
sabe????
Orientação a objetos: primeiros passos
• Programação orientada a objetos utiliza conceitos que
aprendemos na infância:
– Objetos, atributos de um objeto, comportamento de um
objeto, classificação, como definir se algo faz parte de uma
determinada classificação...
• Nas últimas aulas, tínhamos falado que os
desenvolvedores ainda tem dificuldade de lidar com
OO...se é tão natural, por que existe a dificuldade?
Orientação a objetos: primeiros passos
• Orientação a objetos é uma mudança de paradigma!
• Paradigma: modelo, padrão, protótipo...
• Mudança de paradigma neste caso é mudança de
padrão de comportamento;
• Toda quebra de paradigma é difícil, mesmo que a
alternativa a ser assumida seja mais natural;
Padrão de comportamento era
pensar orientado a
ações...agora temos que pensar
orientado a objetos
Orientação a objetos: 4 recursos chave
• As linguagens orientadas a objetos suportam quatro
recursos chave:
– Abstração
– Herança;
– Polimorfismo;
– Vinculação dinâmica;
Abstração
• O que á abstração?
• Especificação das características relevantes dos
elementos que o sistema manipulará;
• A especificação envolve:
– Atributos (variáveis de instância);
– Operações (métodos);
– Relacionamentos com outros elementos;
Classes
• Como já dissemos anteriormente, a orientação a
objetos tem relação com o raciocínio das crianças;
• A criança representa o seu conhecimento por meio de
classificações e abstrações:
– Carro: 4 rodas, um volante e capacidade de andar;
– Cachorro: pelos e capacidade de latir;
Classes
• Ok, mas e as classes?
• A classe é um grupo de objetos com as mesmas
características:
– Cada carro é um objeto diferente, mas todos eles tem rodas,
buzina e andam “sozinhos”;
– Temos então a classe “carro”;
– Classe -> classificar -> classificação...
• A criança analisa as características do objeto para
classificá-lo;
Classes
• Este processo que descrevemos envolve forte
abstração:
– Carros também tem cores, modelos, opcionais, etc...tudo
isso deve ser ignorado para que um Fusca e um Porsche
sejam classificados como carros. Isto faz parte do processo
de abstração!
Classes
• Em resumo, a classe “carro” agrupa todos os objetos
que compartilham:
– Os atributos rodas, portas, luzes, vidros...
– As operações andar, buzinar, etc.
Classes: formalizando...
• Classe:
– Definição de um conjunto de objetos que compartilham os
mesmo atributos e comportamento;
– Representação de um conjunto de coisas reais ou abstratas
que são reconhecidas como sendo do mesmo tipo por
compartilhar as mesmas características, atributos, relações e
semântica (significação).
Objetos
• Um objeto é uma instância de uma classe;
• Objeto é uma entidade capaz de reter um estado
(informação) e que oferece uma série de operações
(comportamentos) ou para examinar ou para afetar este
estado.
• Objeto:
– Apresenta características (Estado).
– Executa e sofre ações (Comportamento).
– Podem ser classificados por categorias ou classes.
Objetos
Valores dos atributos de um objeto em um
determinado momento. O carro tem o atributo
• Um objeto é uma instância de uma classe;
cor, cujo valor pode ser vermelho, por exemplo.

• Objeto é uma entidade capaz de reter um estado


(informação) e que oferece uma série de operações
(comportamentos) ou para examinar ou para afetar este
estado.
• Objeto:
– Apresenta características (Estado).
As operações consultam ou alteram o estado do
objeto.
– Executa e sofre ações (Comportamento).
– Podem ser classificados por categorias ou classes.
Componentes de uma classe...
• Uma classe tem três componentes:
– Nome;
– Atributos (variáveis de instância);
– Operações (métodos);
Componentes de uma classe...
• Atributos:
– São o conjunto de características que descrevem os objetos
– Atributos de uma pessoa: cor dos olhos, altura, peso, idade,
sexo..
– Quais são os atributos de uma conta corrente?
• Vamos levantar os atributos de uma conta corrente...
• Como seria a classe conta corrente?
• E os objetos desta classe?
Atributos e objetos
• Nos objetos (instâncias de uma classe), os atributos
recebem valores que definem o estado de um objeto;

• Vamos conferir um exemplo simples em Java!


public class Account {
private String name; // instance variable

// method to set the name in the object


public void setName(String name) {
this.name = name; // store the name
}

// method to retrieve the name from the object


public String getName() {
return name; // return value of name to caller
}
}
19
Modificadores de acesso: public x private
• Atributo public: pode ser acessado (lido e modificado)
por qualquer outro método em qualquer outro objeto.
• Atributo private: só pode ser acessado (lido e
modificado) por outros métodos presentes na mesma
classe.
• Quando usamos private, podemos evitar que sejam
atribuídos valores inadequados a atributos. Por
exemplo: uma nota 12 em um atributo que deve receber
notas de 0 a 10.
20
Métodos e objetos
• Quando começamos a tratar de classes e objetos,
mencionamos dois pontos importantes: informação e
comportamento;
• Os atributos atendem a questão da informação;
• E o comportamento?
– O comportamento é representado pelos métodos!
– Métodos também são chamados algumas vezes de
operações ou serviços;
Métodos e objetos
• Métodos são as tarefas que os objetos podem realizar;
• Estas tarefas podem:
– Acessar o conteúdo de um atributo;
– Modificar o conteúdo de um atributo;
– Interagir com outros objetos;
Métodos e Java
• Assinatura do método:
– public void mostrarMensagem(String mensagem)

Modificador Tipo de Nome parâmetro


de acesso retorno do
método
public class Account {
private String name; // instance variable

// method to set the name in the object


public void setName(String name) {
this.name = name; // store the name
}

// method to retrieve the name from the object


public String getName() {
return name; // return value of name to caller
}
}
24
Métodos e Java
• Podemos ter métodos:
– Sem parâmetros e sem retorno:
• public void mostrarConteudoObjeto();
– Sem parâmetros e com retorno:
• public int getIdade();
– Com parâmetros e sem retorno:
• public void atribuirIdade(int idade);
– Com parâmetros e com retorno:
• public int converterTemperatura(int tempCelsius);
Métodos e Java
• Convenções para nomeação:
– Nomes de métodos começam por verbos, já que envolvem
ação/tarefa;
– Nomes de métodos começam por letra minúscula:
converterTemperatura, coletarMensagem, desligarAlarme,
etc.
import java.util.Scanner;

public class AccountTest {


public static void main(String[] args) {
// create a Scanner object to obtain input from the command window
Scanner input = new Scanner(System.in);

// create an Account object and assign it to myAccount


Account myAccount = new Account();

// display initial value of name (null)


System.out.printf("Initial name is: %s%n%n", myAccount.getName());

// prompt for and read name


System.out.println("Please enter the name:");
String theName = input.nextLine(); // read a line of text
myAccount.setName(theName); // put theName in myAccount
System.out.println(); // outputs a blank line

// display the name stored in object myAccount


System.out.printf("Name in object myAccount is:%n%s%n",
myAccount.getName());
}
}

27
Exercício
• Construa um programa com os seguintes requisitos:
– O programa deve ter uma classe “Carro” com os seguintes
atributos: marca e modelo;
– A classe Carro deve ter um método que recebe como
parâmetro a velocidade atual do carro e retorna qual deve
ser a marcha utilizada;
– o programa deve conter uma classe main na qual o usuário
vai informar os dados do carro (marca e modelo) e a
velocidade. O programa vai imprimir na tela os dados do
carro e a marcha adequada.

28
Tipos primitivos x Tipos por referência
• Tipos primitivos: int, boolean, float, etc. Variáveis de
tipos primitivos armazenam um valor de acordo com o
seu tipo.
• Tipos por referência: armazenam o local do objeto na
memória.
– Variáveis deste tipo que não são inicializadas guardam um
valor null.

29
Variáveis de Referência
public class Principal { Variáveis
de
Referência

objA capacidade 350


public void método ( ) { quantidade 0

Recipiente objA = new Recipiente (350);


Recipiente objB = new Recipiente (500); objB
...
sucess = objA.adicionar (50);
capacidade 500
quantidade 0
} }

Espaço de memória
administrado pela JVM,
denominado HEAP
30
Variáveis de Referência
public class Cliente { Variáveis
de
Referência

objA capacidade 350


public void método ( ) { quantidade 0

Recipiente objA = new Recipiente (350);


Recipiente objB = objA ;

...
sucess = objA.adicionar (50); objB

} }

Espaço de memória
administrado pela JVM,
denominado HEAP

31
Mudança de Estado na memória
1
public class Cliente {
objA capacidade 350
quantidade 0

public void método ( ) {


2
1 Recipiente objA = new Recipiente (350);
... objA
2 sucess = objA.adicionar (50); capacidade 350
...
quantidade 50
3 objA= null ;
...
}
3
}
objA
null
capacidade 350
quantidade 50

32
Construtor
• É o método utilizado pelo Java para construir um objeto;
• Características:
– Tem o mesmo nome da classe;
– Não tem nem tipo de retorno e nem “void”;
– É executado toda vez que o comando “new” é usado;
Construtor
• Podemos passar também parâmetros para o construtor:
– esse parâmetro pode, por exemplo, inicializar o valor de um
atributo.
• Construtor padrão não tem parâmetros.
• Uma classe que tem um construtor declarado, não tem
mais o construtor padrão.

34
public class Account {
private String name; // instance variable

// constructor initializes name with parameter name


public Account(String name) { // constructor name is class name
this.name = name;
}

// method to set the name


public void setName(String name) {
this.name = name;
}

// method to retrieve the name


public String getName() {
return name;
}
}

35
public class AccountTest {
public static void main(String[] args) {
// create two Account objects
Account account1 = new Account("Jane Green");
Account account2 = new Account("John Blue");

// display initial value of name for each Account


System.out.printf("account1 name is: %s%n", account1.getName());
System.out.printf("account2 name is: %s%n", account2.getName());
}
}

36
Aumentando um pouco o nosso código…
• Vamos adicionar um atributo do tipo double, que irá
armazenar o saldo da conta.

37

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy