Capa para posts com Tabelas

Orientação a Objetos no C# vs Java

Tabela que mostra uma comparação entre os comandos (referentes à Orientação a Objetos) do C# e do Java de forma a ajudar o aluno na transição entre uma linguagem e outra.

ComandoC#Java
Classepublic class Classe {
    ...
}
public class Classe {
    ...
}
Modificadores de Acessoprivate
protected
public
private
protected
public
Atributos de Instânciapublic class Classe {
    acesso tipo Atributo;
}
public class Classe {
    acesso tipo atributo;
}
Métodos de Instânciapublic class Classe {
    acesso tipo Método(tipo parâmetro, ...) {
        ...
        return valor;
    }

}
public class Classe {
    acesso tipo método(tipo parâmetro, ...) {
        ...
        return valor;
    }

}
Construtorpublic class Classe {
    public Classe(tipo parâmetro, ...) {
        ...
    }

}
public class Classe {
    public Classe(tipo parâmetro, ...) {
        ...
    }

}
Referência ao Próprio Objetothisthis
Instanciação (Criação de Objetos)Classe obj = new Classe(valor, ...);Classe obj = new Classe(valor, ...);
Chamada de Métodoobj.Método(valor, ...);obj.método(valor, ...);
Sobrecarga de Construtorpublic class Classe {
    public Classe(tipo parâmetro, ...) : this(valor, ...) {
        ...
    }
}
public class Classe {
    public Classe(tipo parâmetro, ...) {
        this(valor, ...);
        ...
    }
}
Herançapublic class Classe : ClasseBase {
    ...
}
public class Classe extends ClasseBase {
    ...
}
Chamada do Construtor da Classe Basepublic class Classe : ClasseBase {
    public Classe(tipo parâmetro, ...) : base(valor, ...) {
        ...
    }
}
public class Classe extends ClasseBase {
    public Classe(tipo parâmetro, ...) {
        super(valor, ...);
        ...
    }
}
Chamada de Método da Classe Basepublic class Classe : ClasseBase {
    acesso tipo Método(tipo parâmetro, ...) {
        ...
        base.Método(valor, ...);
        ...
        return valor;
    }
}
public class Classe extends ClasseBase {
    acesso tipo método(tipo parâmetro, ...) {
        ...
        super.método(valor, ...);
        ...
        return valor;
    }
}
Polimorfismopublic class ClasseBase {
    acesso virtual tipo Método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}

public class Classe : ClasseBase {
    acesso override tipo Método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}

ClasseBase obj = new Classe(valor, ...);
obj.Método(valor, ...); // vai chamar o método da Classe
public class ClasseBase {
    acesso tipo método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}

public class Classe extends ClasseBase {
    acesso tipo método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}

ClasseBase obj = new Classe(valor, ...);
obj.método(valor, ...); // vai chamar o método da Classe
Classes e Métodos Abstratospublic class abstract ClasseBase {
    acesso abstract tipo Método(tipo parâmetro, ...);
}

public class Classe : ClasseBase {
    acesso override tipo Método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}
public class abstract ClasseBase {
    acesso abstract tipo método(tipo parâmetro, ...);
}

public class Classe extends ClasseBase {
    acesso tipo Método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}
Interfacepublic interface Interface {
    tipo Método(tipo parâmetro, ...);
}
public interface Interface {
    tipo método(tipo parâmetro, ...);
}
Implementar Interfacepublic class Classe : Interface, ..., InterfaceN {
    public tipo Método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}
public class Classe implements Interface, ..., InterfaceN {
    public tipo método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}
Herança + Interfacepublic class Classe : ClasseBase, Interface, ..., InterfaceN {
    ...
}
public class Classe extends ClasseBase implements Interface, ..., InterfaceN {
    ...
}
Atributos de Classepublic class Classe {
    acesso static tipo Atributo;
}
public class Classe {
    acesso static tipo atributo;
}
Métodos de Classepublic class Classe {
    acesso static tipo Método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}
public class Classe {
    acesso static tipo método(tipo parâmetro, ...) {
        ...
        return valor;
    }
}
Usar Atributos de ClasseClasse.Atributo;Classe.atributo;
Chamada de Método de ClasseClasse.Método(valor, ...);Classe.método(valor, ...);

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *