programação orientada a objetos em java - criação de objetos
DESCRIPTION
Criação de objetosTRANSCRIPT
Programação Orientada a Objetos
Este sou eu :)
http://omadson.wordpress.com
@omadsonDesenvolvedor WEB
++ Soluções em Tecnologia
CENTEC
O que eu preciso Saber?
● Conceitos gerais de programação● Tipos primitivos, entrada e saída de
dados, operadores● Estruturas condicionais e de repetição● Introdução a orientação a objetos(objeto,
classe, atributo e método)● Hoje: Criação de objetos
Criação de objetos
● String é uma classe e as variáveis do tipo string armazenam referências para objetos String.
Como criamos um Como criamos um objetoobjeto??
Antes de criar objetos...
● Precisamos criar um método especial nas classes que será responsável por inicializar os atributos dos objetos que criaremos
● Estes métodos especiais são chamados de construtores
Construtores
● Além de métodos e atributos, o corpo de uma classe pode conter:
ConstrutoresConstrutores● Definindo como os atributos de um
objeto são inicializados
public <nome_da_classe>(<parâmetros>){
<corpo_do_construtor>}
Construtor default
● Um construtor sem parâmetros
● Caso não seja definido um construtor, um construtor implícito dafault é fornecido inicializando seus atributos com seus valores default
public Conta(){
this.saldo = 0;this.cliente = null;
}
Valores default para atributos
● 0 para int, double, float, long, short, etc.● false para boolean● null para tipos referência
null denota uma referência nula, nãonull denota uma referência nula, nãoexistente, para um objeto de qualquer tipoexistente, para um objeto de qualquer tipo
Criação de objetos
● Um objeto é criado através do operador new
Cliente cc = new Cliente(“Madson Dias“,“12345678900“, “Rua A“);
new new <nome_da_classe><nome_da_classe>((<argumentos><argumentos>))
Exercício
● Crie uma classe Curso com código e nome.
● Crie uma classe Aluno, contendo nome, cpf, idade e Curso que o aluno faz.
● Lembre-se de criar um construtor bem como os métodos get e set para as classes.
Métodos (boas práticas)
● Crie métodos para:● Encapsular complexidade e tornar o
código mais legível● Evitar código duplicado. Exemplo: o
que é mais interessante?– Promover reutilização de código– Isolar operações e estruturas de
dados complexos
Métodos (boas práticas)
● Métodos devem ter forte coesão: tudo dentro de um método deve ser relacionado ao seu propósito central. Se há dois propósitos, deve haver dois métodos.● Por exemplo, o método creditar não
deveria imprimir o novo saldo da conta.
Métodos (boas práticas)
● Acoplamento é um termo usado para descrever quão dependente um método é de outro(s).
● O ideal é ter fraco acoplamento.● Existe uma grande disputa sobre qual é o
tamanho ideal para métodos:● Uma única página● Pequenos métodos = menos legibilidade● Métodos longos bons = unicidade lógica
Mútiplos construtores
● Objetos da classe Conta podem ser inicializados de duas formas:public class Conta {
private Cliente cliente;private double saldo;public Conta(Cliente c, double s) {
this.cliente = c;this.saldo = s;
}public Conta(Cliente c) {
this(c, 0.0);}...
}
ChamaChamaoutrooutro
construtorconstrutorda classeda classe
Métodos Overloading
● Métodos com o mesmo nome e diferentes listas de argumentos
● Da mesma forma que os dois construtores de conta.
Variáveis e métodos estáticos
● Até aqui as variáveis e os métodos de instância:● Para acessar o atributo (variável de
instância) ou chamar um método é preciso ter um objeto
● Cada objeto tem seu atributo
Variáveis e métodos estáticos
● Variáveis e métodos estáticos são da classe● Todos os métodos compartilham uma
mesma variável estática● Acesso através do nome da classe que
os contém● Exemplo: classe para conversão de
valores.
Variáveis e métodos estáticos
● O método main é estático● Por onde se inicia a execução● A execução não inicia de um objeto,
mas da classe que contém o main● Métodos estáticos só acessam variáveis e
outros métodos estáticos● Atributos e métodos de instância
apenas através de objetos, como qualquer outro.
Exercício
● Modele um funcionário. Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário (double), a data de entrada no banco (String) e seu RG (String).
● Você deve criar alguns métodos de acordo com sua necessidade. Além deles, crie um método bonifica que aumenta o salario do funcionário de acordo com o parâmetro passado como argumento.
Exercício
● Crie também um método calculaGanhoAnual, que não recebe parâmetro algum, devolvendo o valor do salário multiplicado por 12..
● A ideia aqui é apenas modelar, isto é, só identifique que informações são importantes e o que um funcionário faz. Desenhe no papel tudo o que um Funcionario tem e tudo que ele faz.
Muito a aprender você ainda tem.Muito a aprender você ainda tem.