Hoje em dia é raro um desenvolvedor conhecer bem apenas uma linguagem. Em nome da multidisciplinaridade, decidi mostrar algums exemplos do mesmo programa: uma classe HelloWord com um construtor que recebe uma mensagem ("ola mundo") e um método show() que imprime essa mensagem.
Vejamos um exemplo em C++
#include <iostream>
#include <string>
using namespace std;
class HelloWorld{
string mensagem;
public:
HelloWorld(string mensagem) { // construtor!
this->mensagem = mensagem;
}
void show() { // metodo show
cout << "mensagem: " << this->mensagem << endl;
}
};
int main()
{
HelloWorld obj("ola mundo");
obj.show();
return(0);
}
Agora o mesmo código em Java:
package Hello;
public class HelloWorld{
private String mensagem;
public HelloWorld(String mensagem){
this.mensagem = mensagem;
}
public void show() {
System.out.println("mensagem: " + mensagem);
}
public static void main(String [] args){
HelloWorld obj = new HelloWorld("ola mundo");
obj.show();
}
}
Agora, percebam a simplicidade do Ruby:
class HelloWorld
def initialize(mensagem)
@mensagem = mensagem
end
def show
puts "mensagem: #{@mensagem}"
end
end
obj = HelloWorld.new "ola mundo"
obj.show
Agora em Perl (sim, Perl!)
package HelloWorld;
sub new
{
my ($class, $mensagem) = @_;
my $self = { mensagem => $mensagem };
bless $self, $class; # abençoando a variavel!
return $self;
}
sub show
{
my $self = shift; # sim, ela vem como argumento!
print "mensagem: " . $self->{mensagem} . "\n";
}
my $obj = new HelloWorld("ola mundo");
$obj->show(); # parece artificial, não?
1;
PHP também é:
<?php
Class HelloWorld{
var $mensagem = "";
function HelloWorld($mensagem){
$this->mensagem = $mensagem;
}
function show(){
echo "mensagem : " . $this->mensagem . "<br/>";
}
}
$obj = new HelloWorld("ola mundo");
$obj->show();
?>
Por fim, vamos criar um tipo usando JavaScript
function HelloWorld(mensagem){
this.mensagem = mensagem;
this.show = function(){
alert("mensagem: " + this.mensagem);
}
}
var obj = new HelloWorld("ola mundo");
obj.show();
Edit: Python, atendendo a diversos pedidos
class HelloWorld:
def __init__(self, arg):
self.message = arg
def show(self):
print "mensagem: ", self.message
hello = HelloWorld("Ola Mundo")
hello.show()
A diferença entre uma linguagem e outra está (entre outras coisas) na sintaxe: em Perl eu tenho que criar os mecanismos na mão (com bless e receber $self) mas em Java e Ruby é tudo muito natural. Em Javascript eu não tenho uma construtor propriamente dito (muito menos classes) mas uma função (e crio um objeto dando um new nessa função).
Vou abordar o tema "herança" no proximo post, espero que seja útil :)
7 comentários:
Pô Thiago faltou em Shell Script ahahahah, abraços e parabéns pelo post.
Carlos Ferreira
http://carnivorosemdentes.blogspot.com/
Tiago,
Muito bacana seu post.
Colaborando com a proposta do seu texto, fiz um código, em Python, que ficou assim:
class helloWord():
def __init__(self, msg):
self.hello_msg = msg
def show(self):
print self.hello_msg
a = helloWord("Ola Mundo !")
a.show()
Abraços,
Luiz Guilherme
lg.aldabalde em gmail.com
LG, pena que o comentario destruiu a indentação (que é fundamental no Python). Também esqueci do C#, mas é 99% igual ao Java.
Só não consegui fazer um exemplo em SmallTalk :(
Só para complementar o post do amigo,Olhem esse post no meu blog:
http://defopenblog.wordpress.com/2008/05/07/e-eu-que-pensei-que-ja-tinha-visto-de-tudo/
Bah, Perl dói o olho. hehe
Oi cara!
Sou do Rio grande do sul e faço faculdade de Eng.Elétrica na Unipampa de Alegrete e vi um post teu em um site sobre um programa em C++ que precisava usar a biblioteca math.
Tirei uma duvida ali contigo pq não lembrava que tinha que passar o grau pra radianos antes de transformar.
Eu gostaria que se quando eu tiver alguma duvida eu posso te avisar e quem sabe evoluir meus conhecimentos em C++.
Abraço.
Meu msn é : caue_cmm@hotmail.com
Opa cara, que legal o post.
estava procurando hello world em C++.
um abraço.
Postar um comentário