Implementação Orientada a
Objetos – Aula 05
Construtores e sobrecarga de métodos
Prof. Danielle Martin
Universidade de Mogi das Cruzes
2013-02
Método Construtor
Método construtor é o bloco de instruções executados
no momento da criação da instância.
Acionados pela cláusula new.
Toda classe possui um construtor. Se o programador
não declarar um construtor explícito, o compilador cria
um construtor padrão (em branco e sem parâmetros).
Método Construtor
Métodos construtores têm o nome idêntico ao da classe.
Construtores não retornam valor. Não deve ser
declarado tipo de retorno algum, nem mesmo void.
Não pode ser chamado isoladamente, apenas na
criação de objetos.
Também não podem ser chamados recursivamente.
Porém, construtores da mesma classe podem chamar
uns aos outros, usando a cláusula this (deve ser a
primeira instrução do método).
Exemplo de método construtor
public class Carro {
private String placa;
public Carro(){
System.out.println(“O objeto foi
criado!“);
}
public String getPlaca(){
return placa;
}
public void setPlaca(String placa){
this.placa = placa;
}
}
public class Aplicacao {
public static void main(String[] args) {
Carro meuCarro;
System.out.println(“O objeto ainda não
existe“);
meuCarro = new Carro();
System.out.println(“Depois da criação
do objeto“);
}
}
Imprime:
O objeto ainda não foi existe
O objeto foi criado!
Depois da criação do objeto
Exemplo de método construtor
public class Carro {
private String placa;
public Carro(String placa){
this.placa = placa;
}
public String getPlaca(){
return placa;
}
public void setPlaca(String placa){
this.placa = placa;
}
}
public class Aplicacao {
public static void main(String[] args) {
Carro meuCarro;
meuCarro = new Carro(“ABC-123”);
System.out.println(“A placa do carro é
“ + meuCarro.getPlaca());
}
}
Imprime:
A placa do carro é ABC-123
Construtores podem ser personalizados para iniciar valores do
objeto ou executar sub rotinas de inicialização
Sobrecarga de métodos
Em java, é possível ter mais de um método com o
mesmo nome na mesma classe?
Sobrecarga de métodos
Em java, é possível ter mais de um método com o
mesmo nome na mesma classe?
Resposta: SIM
Contanto que os parâmetros dos métodos sejam
DIFERENTES
A isto, damos o nome de sobrecarga de métodos
Exemplos de sobrecarga
public class Conta {
private int numero;
private double saldo;
public Conta(){
}
public Conta(int numero){
this.numero = numero;
this.saldo = 0;
}
public Conta(int numero, double saldo){
this.numero = numero;
this.saldo = saldo;
}
public void saque(double valorSaque){
saldo -= valorSaque;
}
public void saque(double valorSaque, double taxa){
saldo -= valorSaque - taxa;
}
}
Sobrecarga de construtores
Sobrecarga de métodos
Exemplos de sobrecarga
public class Conta {
private int numero;
private double saldo;
public Conta(){
}
public Conta(int numero){
this.numero = numero;
this.saldo = 0;
}
public Conta(int numero, double saldo){
this.numero = numero;
this.saldo = saldo;
}
public void saque(double valorSaque){
saldo -= valorSaque;
}
public void saque(double valorSaque, double
taxa){
saldo -= valorSaque - taxa;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public double getSaldo() {
return saldo;
}
}
public class AplicacaoBancaria {
public static void main(String[] args) {
Conta minhaConta;
minhaConta = new Conta(123);
Conta outraConta;
outraConta = new Conta(123, 500);
minhaConta.setSaldo(100);
minhaConta.saque(50);
outraConta.saque(90,10);
System.out.println(minhaConta.getSaldo());
System.out.println(outraConta.getSaldo());
}
}
Exemplos de sobrecarga
public class Conta {
private int numero;
private double saldo;
public Conta(){
}
public Conta(int numero){
this.numero = numero;
this.saldo = 0;
}
public Conta(int numero, double saldo){
this.numero = numero;
this.saldo = saldo;
}
public void saque(double valorSaque){
saldo -= valorSaque;
}
public void saque(double valorSaque, double
taxa){
saldo -= valorSaque - taxa;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public double getSaldo() {
return saldo;
}
}
public class AplicacaoBancaria {
public static void main(String[] args) {
Conta minhaConta;
minhaConta = new Conta(123);
Conta outraConta;
outraConta = new Conta(123, 500);
minhaConta.setSaldo(100);
minhaConta.saque(50);
outraConta.saque(90,10);
System.out.println(minhaConta.getSaldo());
System.out.println(outraConta.getSaldo());
}
}
Exemplos de sobrecarga
public class Conta {
private int numero;
private double saldo;
public Conta(){
}
public Conta(int numero){
this(numero, 0);
}
public Conta(int numero, double saldo){
this.numero = numero;
this.saldo = saldo;
}
public void saque(double valorSaque){
saldo -= valorSaque;
}
public void saque(double valorSaque, double
taxa){
saldo -= valorSaque + taxa;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public double getSaldo() {
return saldo;
}
}
public class AplicacaoBancaria {
public static void main(String[] args) {
Conta minhaConta;
minhaConta = new Conta(123);
Conta outraConta;
outraConta = new Conta(123, 500);
minhaConta.setSaldo(100);
minhaConta.saque(50);
outraConta.saque(90,10);
System.out.println(minhaConta.getSaldo());
System.out.println(outraConta.getSaldo());
}
}

Construtores_Sobrecarga.pptx

  • 1.
    Implementação Orientada a Objetos– Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes 2013-02
  • 2.
    Método Construtor Método construtoré o bloco de instruções executados no momento da criação da instância. Acionados pela cláusula new. Toda classe possui um construtor. Se o programador não declarar um construtor explícito, o compilador cria um construtor padrão (em branco e sem parâmetros).
  • 3.
    Método Construtor Métodos construtorestêm o nome idêntico ao da classe. Construtores não retornam valor. Não deve ser declarado tipo de retorno algum, nem mesmo void. Não pode ser chamado isoladamente, apenas na criação de objetos. Também não podem ser chamados recursivamente. Porém, construtores da mesma classe podem chamar uns aos outros, usando a cláusula this (deve ser a primeira instrução do método).
  • 4.
    Exemplo de métodoconstrutor public class Carro { private String placa; public Carro(){ System.out.println(“O objeto foi criado!“); } public String getPlaca(){ return placa; } public void setPlaca(String placa){ this.placa = placa; } } public class Aplicacao { public static void main(String[] args) { Carro meuCarro; System.out.println(“O objeto ainda não existe“); meuCarro = new Carro(); System.out.println(“Depois da criação do objeto“); } } Imprime: O objeto ainda não foi existe O objeto foi criado! Depois da criação do objeto
  • 5.
    Exemplo de métodoconstrutor public class Carro { private String placa; public Carro(String placa){ this.placa = placa; } public String getPlaca(){ return placa; } public void setPlaca(String placa){ this.placa = placa; } } public class Aplicacao { public static void main(String[] args) { Carro meuCarro; meuCarro = new Carro(“ABC-123”); System.out.println(“A placa do carro é “ + meuCarro.getPlaca()); } } Imprime: A placa do carro é ABC-123 Construtores podem ser personalizados para iniciar valores do objeto ou executar sub rotinas de inicialização
  • 6.
    Sobrecarga de métodos Emjava, é possível ter mais de um método com o mesmo nome na mesma classe?
  • 7.
    Sobrecarga de métodos Emjava, é possível ter mais de um método com o mesmo nome na mesma classe? Resposta: SIM Contanto que os parâmetros dos métodos sejam DIFERENTES A isto, damos o nome de sobrecarga de métodos
  • 8.
    Exemplos de sobrecarga publicclass Conta { private int numero; private double saldo; public Conta(){ } public Conta(int numero){ this.numero = numero; this.saldo = 0; } public Conta(int numero, double saldo){ this.numero = numero; this.saldo = saldo; } public void saque(double valorSaque){ saldo -= valorSaque; } public void saque(double valorSaque, double taxa){ saldo -= valorSaque - taxa; } } Sobrecarga de construtores Sobrecarga de métodos
  • 9.
    Exemplos de sobrecarga publicclass Conta { private int numero; private double saldo; public Conta(){ } public Conta(int numero){ this.numero = numero; this.saldo = 0; } public Conta(int numero, double saldo){ this.numero = numero; this.saldo = saldo; } public void saque(double valorSaque){ saldo -= valorSaque; } public void saque(double valorSaque, double taxa){ saldo -= valorSaque - taxa; } public void setSaldo(double saldo) { this.saldo = saldo; } public double getSaldo() { return saldo; } } public class AplicacaoBancaria { public static void main(String[] args) { Conta minhaConta; minhaConta = new Conta(123); Conta outraConta; outraConta = new Conta(123, 500); minhaConta.setSaldo(100); minhaConta.saque(50); outraConta.saque(90,10); System.out.println(minhaConta.getSaldo()); System.out.println(outraConta.getSaldo()); } }
  • 10.
    Exemplos de sobrecarga publicclass Conta { private int numero; private double saldo; public Conta(){ } public Conta(int numero){ this.numero = numero; this.saldo = 0; } public Conta(int numero, double saldo){ this.numero = numero; this.saldo = saldo; } public void saque(double valorSaque){ saldo -= valorSaque; } public void saque(double valorSaque, double taxa){ saldo -= valorSaque - taxa; } public void setSaldo(double saldo) { this.saldo = saldo; } public double getSaldo() { return saldo; } } public class AplicacaoBancaria { public static void main(String[] args) { Conta minhaConta; minhaConta = new Conta(123); Conta outraConta; outraConta = new Conta(123, 500); minhaConta.setSaldo(100); minhaConta.saque(50); outraConta.saque(90,10); System.out.println(minhaConta.getSaldo()); System.out.println(outraConta.getSaldo()); } }
  • 11.
    Exemplos de sobrecarga publicclass Conta { private int numero; private double saldo; public Conta(){ } public Conta(int numero){ this(numero, 0); } public Conta(int numero, double saldo){ this.numero = numero; this.saldo = saldo; } public void saque(double valorSaque){ saldo -= valorSaque; } public void saque(double valorSaque, double taxa){ saldo -= valorSaque + taxa; } public void setSaldo(double saldo) { this.saldo = saldo; } public double getSaldo() { return saldo; } } public class AplicacaoBancaria { public static void main(String[] args) { Conta minhaConta; minhaConta = new Conta(123); Conta outraConta; outraConta = new Conta(123, 500); minhaConta.setSaldo(100); minhaConta.saque(50); outraConta.saque(90,10); System.out.println(minhaConta.getSaldo()); System.out.println(outraConta.getSaldo()); } }