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 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).
4. 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
5. 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
6. Sobrecarga de métodos
Em java, é possível ter mais de um método com o
mesmo nome na mesma classe?
7. 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
8. 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
9. 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());
}
}
10. 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());
}
}
11. 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());
}
}