Skip to content

Instantly share code, notes, and snippets.

@weberc2
Created May 3, 2015 22:11
Show Gist options
  • Save weberc2/7b7646b43d28973d6d52 to your computer and use it in GitHub Desktop.
Save weberc2/7b7646b43d28973d6d52 to your computer and use it in GitHub Desktop.

Revisions

  1. weberc2 created this gist May 3, 2015.
    42 changes: 42 additions & 0 deletions construction_from_composite.vala
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,42 @@
    public class Person {
    private string _name;
    private int _age;

    public Person(string name, int age) {
    _name = name;
    _age = age;
    }

    public Person.from_gendered_person(GenderedPerson gp) {
    _name = gp.person().name();
    _age = gp.person().age();
    }

    public string name() {
    return _name;
    }

    public int age() {
    return _age;
    }
    }

    public class GenderedPerson {
    private string _gender;
    private Person _person;

    public GenderedPerson(string name, int age, string gender) {
    _person = new Person(name, age);
    _gender = gender;
    }

    public Person person() {
    return _person;
    }
    }

    public void main() {
    GenderedPerson stephanie = new GenderedPerson("Stephanie", 33, "female");
    Person person = new Person.from_gendered_person(stephanie);
    print(person.name());
    }