View Subcategory
Define a class
Declare a class named Greeter that takes a string on creation and greets using this string if you call the
"greet" method.
ruby
class Greeter
def initialize(whom) @whom = whom end
def greet() puts "Hello, #{@whom}!" end
end
(Greeter.new("world")).greet()
def initialize(whom) @whom = whom end
def greet() puts "Hello, #{@whom}!" end
end
(Greeter.new("world")).greet()
erlang
Greeter = make_greeter("world!"),
Greeter(greet).
Greeter(greet).
csharp
using System;
class Greeter
{
private string name {get;set;}
public void Greet(){
Console.WriteLine("Hello, {0}",name);
}
public Greeter(string name){
this.name = name;
}
}
class Test
{
static void Main()
{
new Greeter("Dante").Greet();
}
}
class Greeter
{
private string name {get;set;}
public void Greet(){
Console.WriteLine("Hello, {0}",name);
}
public Greeter(string name){
this.name = name;
}
}
class Test
{
static void Main()
{
new Greeter("Dante").Greet();
}
}
fsharp
type Greeter(whom' : string) =
member this.greet() = printfn "Hello, %s!" whom'
(new Greeter("world")).greet()
member this.greet() = printfn "Hello, %s!" whom'
(new Greeter("world")).greet()
type Greeter(whom' : string) =
let whom : string = whom'
member this.greet() = printfn "Hello, %s!" whom
(new Greeter("world")).greet()
let whom : string = whom'
member this.greet() = printfn "Hello, %s!" whom
(new Greeter("world")).greet()
type Greeter =
class
val whom : string
new(whom') = { whom = whom' }
member this.greet() = printfn "Hello, %s!" this.whom
end
(new Greeter("world")).greet()
class
val whom : string
new(whom') = { whom = whom' }
member this.greet() = printfn "Hello, %s!" this.whom
end
(new Greeter("world")).greet()
cpp
class Greeter
{
public:
Greeter(const std::string& whom);
void greet() const;
private:
std::string whom;
};
int main()
{
Greeter* gp = new Greeter("world");
gp->greet();
delete gp;
}
Greeter::Greeter(const std::string& whom) : whom(whom) {}
void Greeter::greet() const
{
std::cout << "Hello, " << whom << std::endl;
}
{
public:
Greeter(const std::string& whom);
void greet() const;
private:
std::string whom;
};
int main()
{
Greeter* gp = new Greeter("world");
gp->greet();
delete gp;
}
Greeter::Greeter(const std::string& whom) : whom(whom) {}
void Greeter::greet() const
{
std::cout << "Hello, " << whom << std::endl;
}
public ref class Greeter
{
public:
Greeter(String^ whom);
void greet();
private:
initonly String^ whom;
};
int main()
{
(gcnew Greeter(L"world"))->greet();
}
Greeter::Greeter(String^ whom) : whom(whom) {}
void Greeter::greet()
{
Console::WriteLine(L"Hello, {0}", whom);
}
{
public:
Greeter(String^ whom);
void greet();
private:
initonly String^ whom;
};
int main()
{
(gcnew Greeter(L"world"))->greet();
}
Greeter::Greeter(String^ whom) : whom(whom) {}
void Greeter::greet()
{
Console::WriteLine(L"Hello, {0}", whom);
}
Instantiate object with mutable state
Reimplement the Greeter class so that the
For example, if the greetee is changed to
Hello, Tommy!
The getter would then be used to display the line:
I have just greeted Tommy.
'whom' property or data member remains private but is mutable, and is provided with getter and setter methods. Invoke the setter to change the greetee, invoke 'greet', then use the getter in displaying the line, "I have just greeted {whom}.".
For example, if the greetee is changed to
'Tommy' using the setter, the 'greet' method would display:
Hello, Tommy!
The getter would then be used to display the line:
I have just greeted Tommy.
ruby
class Greeter
attr_accessor :whom
def initialize(whom) @whom = whom end
def greet() puts "Hello, #{@whom}!" end
end
greeter = Greeter.new("world") ; greeter.greet()
greeter.whom = 'Tommy' ; greeter.greet()
puts "I have just greeted %s" % greeter.whom
attr_accessor :whom
def initialize(whom) @whom = whom end
def greet() puts "Hello, #{@whom}!" end
end
greeter = Greeter.new("world") ; greeter.greet()
greeter.whom = 'Tommy' ; greeter.greet()
puts "I have just greeted %s" % greeter.whom
csharp
class Greeter
{
public string Name {get;set;}
public void Greet(){
Console.WriteLine("Hello, {0}",Name);
}
public Greeter(string name){
this.Name = name;
}
// Driver
public static void Main()
{
var g = new Greeter("Dante");
g.Name = "Tommy";
g.Greet();
Console.Write("I have just greated {0}", g.Name);
}
}
{
public string Name {get;set;}
public void Greet(){
Console.WriteLine("Hello, {0}",Name);
}
public Greeter(string name){
this.Name = name;
}
// Driver
public static void Main()
{
var g = new Greeter("Dante");
g.Name = "Tommy";
g.Greet();
Console.Write("I have just greated {0}", g.Name);
}
}
fsharp
type Greeter(name:string) =
let mutable whom = name
member this.Whom
with get () = whom
and set v = whom <- v
member this.Greet() =
printfn "Hello, %s!" whom
let greeter = Greeter("World")
greeter.Greet()
greeter.Whom <- "Tommy"
greeter.Greet()
printfn "I have just greeted %s." greeter.Whom
let mutable whom = name
member this.Whom
with get () = whom
and set v = whom <- v
member this.Greet() =
printfn "Hello, %s!" whom
let greeter = Greeter("World")
greeter.Greet()
greeter.Whom <- "Tommy"
greeter.Greet()
printfn "I have just greeted %s." greeter.Whom
cpp
#include <iostream>
using namespace std;
class Greeter {
string whom_;
public:
Greeter(const string &whom) : whom_(whom) {}
string get_whom() const {
return whom_;
}
void set_whom(const string &whom) {
whom_ = whom;
}
void greet() const {
cout << "Hello " << whom_ << "!" << endl;
}
};
int main()
{
Greeter greeter("world");
greeter.greet();
greeter.set_whom("Tommy");
greeter.greet();
cout << "I have just greeted " + greeter.get_whom() << "." << endl;
}
using namespace std;
class Greeter {
string whom_;
public:
Greeter(const string &whom) : whom_(whom) {}
string get_whom() const {
return whom_;
}
void set_whom(const string &whom) {
whom_ = whom;
}
void greet() const {
cout << "Hello " << whom_ << "!" << endl;
}
};
int main()
{
Greeter greeter("world");
greeter.greet();
greeter.set_whom("Tommy");
greeter.greet();
cout << "I have just greeted " + greeter.get_whom() << "." << endl;
}
