Você está na página 1de 26

Linguagem de programao I

MSc. Yoenny Perez Romero


Isutic, 2013
Sobrecarga do Mtodos,
Modificador Static, this, Java API.
Objetivos da aula de hoje


Criar sobrecarga de mtodos e
construtores.

Uso corretamente a declarao static, e
uso this.
A personalidade de hoje
Konrad Zuse

22 /06/1910 - 18/12/1995
Berlin
Criador da Z3 (1941)
primeira mquina programvel y
completamente automtica
Linguagem Plankalkl (1945)
(compilador s em 2000)

Tecnologia Java
Static
Um mtodo de instncia aquele que
sempre chamado em uma instncia
(objeto) de uma classe.

Ex: p1.getNombre ()

Um mtodo de classe s aquele que
pode ser invocado sim existir una
instancia.

Static
< modificador > static <tipo de dado>
NomeMtodo(){.}

Definio:
public static String getNombre () { }

Invocao:
String Nombre = Pessoa.getNombre () ;


Mtodos Static
Os mtodos de classe (estticos) tem as
seguintes limitaes:

No podem aceder a campos de instancia
(lgico, pois os campos esto associados a
objetos).
No podem invocar um mtodo de instancia de
a mesma classe (lgico pois os mtodos de
instancia esto associados a objetos).

Mtodo main refleco

public static void main (String[ ] Args){}

Sempre publico, s o mtodo iniciador.

Static, ao inicio s h classes no objetos.

Sua funo deve limitar-se s a criar objetos
que controlam a lgica do programa.

Uso do API de Java
import java.lang.Math;
public class ExponenciadorApiJava
{
public ExponenciadorApiJava () {}
public int potenciaApiJava (int m, int n) {
double a = new Math(); //Error
return a.pow (m, n);
} }

Uso do API de Java
import java.lang.Math;
public class ExponenciadorApiJava
{
public ExponenciadorApiJava () {}
public int potenciaApiJava (int m, int n) {
return Math.pow (m, n);
}
}

Qu ocurre si una variable local tiene el
mismo nombre que un campo?

Se temos uma varivel local em um mtodo
ou construtor, ou parmetro, com um nome
idntico ao de um atributo de classe.
Uso do This
public class Mensaje {
private String remitente;
private String para;
private String texto;
public Mensaje (String remitente, String para, String
texto) {
remitente = remitente;
para = para;
texto = texto;
}

Uso do This
O cdigo compila.

Java tm mecanismos para resolver os
conflitos de nome.

"Um nome refere-se a varivel mais local
das disponveis "

varivel Local > parmetro Formal >
Atributo
Soluo

Usando a palavra clave this se pode
evitar que os parmetros ou variveis
locares ocultem as variveis global

this faz referencia al objeto atual num
momento especifico
Uso do This
public class Mensaje {
private String remitente;
private String para;
private String texto;
public Mensaje (String remitente, String para, String
texto) {
this.remitente = remitente;
this.para = para;
this.texto = texto;
}


Uso do This
public void setRemitente (String remitente) {
this.remitente = remitente;
}

public void extraerFraccionTexto () {
String texto = Texto";
this.texto = texto.substring (0, 2);
}
}

Proposta AEIsutic (Brincadeira)
Sobrecarga do Construtores
public class Pessoa {
private String name;
private int idade;
private String endereco;
private int numeroCasa;

public Pessoa (String name) {
name = nombrePersona;
idade = 0; }

Sobrecarga do Construtores
public Pessoa(String name, String endereco,
int numeroCasa){
this.name = name;
this.endereco = endereco;
this.numeroCasa = numeroCasa;
}
Public Pessoa(String name, String endereco){
this.name = name;
this.endereco = endereco;
}}

Sobrecarga do Construtores

public static void main(String array[ ])
{
Pessoa jose = new Pessoa("Jose",So Joo",50);

Pessoa maria = new Pessoa("Maria",das flores");
}
Sobrecarga do Mtodos

Java nos permite criar vrios mtodos com o
mesmo nome desde que tenham parmetros
diferentes. Isso o que chamamos de
sobrecarga de mtodos.

A sobrecarga de mtodos consiste em criarmos o
mesmo mtodo com possibilidades de entradas
diferentes. Essas entradas, caracterizadas como
parmetros, devem sempre ser de tipos
diferentes, quantidades de parmetros diferentes
ou posies dos tipos diferentes.
Sobrecarga do Mtodos
public class TV {
int canal;
int volume;
boolean ligada;
int tamanho;

void ligar() {
this.ligar(3, 25, true);
}

Sobrecarga do Mtodos
void ligar(boolean ligada) {
this.ligar(3, 25, ligada);
}

void ligar(int canal, int volume, boolean ligada) {
this.canal = canal;
this.volume = volume;
this.ligada = ligada;
}
Sobrecarga do Mtodos

void ligar(int canal, int volume)
{
this.ligar(canal, volume, true);
} }
Brincadeira
Linguagem de programao I
MSc. Yoenny Perez Romero
Isutic, 2013
Sobrecarga do Mtodos,
Modificador Static, this, Java API.