1using GLib; 2 3[Compact] 4class CompactClass { 5 public int field; 6} 7 8[Compact] 9class CompactClassWithDestructor { 10 ~CompactClassWithDestructor () { 11 stdout.printf ("~CompactClassWithDestructor\n"); 12 } 13} 14 15class DerivedClass : CompactClass { 16} 17 18[Compact] 19public class PublicClass { 20 public int field; 21} 22 23[Compact] 24abstract class AbstractClass { 25 public int field; 26} 27 28[Compact] 29class ClassWithCreationMethod { 30 public ClassWithCreationMethod () { 31 stdout.printf ("ClassWithCreationMethod\n"); 32 } 33 34 public int field; 35} 36 37[Compact] 38class ClassWithNamedCreationMethod { 39 public ClassWithNamedCreationMethod.named () { 40 stdout.printf ("ClassWithNamedCreationMethod\n"); 41 } 42 43 public int field; 44} 45 46class SimpleGTypeInstanceClass { 47} 48 49class DerivedGTypeInstanceClass : SimpleGTypeInstanceClass { 50} 51 52public class PublicGTypeInstanceClass { 53} 54 55class GTypeInstanceClassWithCreationMethod { 56 public GTypeInstanceClassWithCreationMethod () { 57 stdout.printf ("GTypeInstanceClassWithCreationMethod\n"); 58 } 59} 60 61class GTypeInstanceClassWithNamedCreationMethod { 62 public GTypeInstanceClassWithNamedCreationMethod.named () { 63 stdout.printf ("GTypeInstanceClassWithNamedCreationMethod\n"); 64 } 65} 66 67class SimpleGObjectClass : Object { 68} 69 70class DerivedGObjectClass : SimpleGObjectClass { 71} 72 73public class PublicGObjectClass : Object { 74} 75 76abstract class AbstractGObjectClass : Object { 77} 78 79class GObjectClassWithCreationMethod : Object { 80 public GObjectClassWithCreationMethod () { 81 } 82} 83 84class GObjectClassWithNamedCreationMethod : Object { 85 public GObjectClassWithNamedCreationMethod.named () { 86 } 87} 88 89void main () { 90 stdout.printf ("Classes Test:\n"); 91 92 stdout.printf ("new CompactClass ()\n"); 93 var compact_class = new CompactClass (); 94 stdout.printf ("new DerivedClass ()\n"); 95 var derived_class = new DerivedClass (); 96 stdout.printf ("new PublicClass ()\n"); 97 var public_class = new PublicClass (); 98 stdout.printf ("new ClassWithCreationMethod ()\n"); 99 var class_with_creation_method = new ClassWithCreationMethod (); 100 stdout.printf ("new ClassWithNamedCreationMethod ()\n"); 101 var class_with_named_creation_method = new ClassWithNamedCreationMethod.named (); 102 stdout.printf ("new CompactClassWithDestructor ()\n"); 103 var compact_class_with_destructor = new CompactClassWithDestructor (); 104 compact_class_with_destructor = null; 105 106 stdout.printf ("new SimpleGTypeInstanceClass ()\n"); 107 var simple_gtypeinstance_class = new SimpleGTypeInstanceClass (); 108 stdout.printf ("new DerivedGTypeInstanceClass ()\n"); 109 var derived_gtypeinstance_class = new DerivedGTypeInstanceClass (); 110 stdout.printf ("new PublicGTypeInstanceClass ()\n"); 111 var public_gtypeinstance_class = new PublicGTypeInstanceClass (); 112 stdout.printf ("new GTypeInstanceClassWithCreationMethod ()\n"); 113 var gtypeinstance_class_with_creation_method = new GTypeInstanceClassWithCreationMethod (); 114 stdout.printf ("new GTypeInstanceClassWithNamedCreationMethod ()\n"); 115 var gtypeinstance_class_with_named_creation_method = new GTypeInstanceClassWithNamedCreationMethod.named (); 116 117 stdout.printf ("new SimpleGObjectClass ()\n"); 118 var simple_gobject_class = new SimpleGObjectClass (); 119 stdout.printf ("new DerivedGObjectClass ()\n"); 120 var derived_gobject_class = new DerivedGObjectClass (); 121 stdout.printf ("new PublicGObjectClass ()\n"); 122 var public_gobject_class = new PublicGObjectClass (); 123 stdout.printf ("new GObjectClassWithCreationMethod ()\n"); 124 var gobject_class_with_creation_method = new GObjectClassWithCreationMethod (); 125 stdout.printf ("new GObjectClassWithNamedCreationMethod ()\n"); 126 var gobject_class_with_named_creation_method = new GObjectClassWithNamedCreationMethod.named (); 127 128 stdout.printf ("new CompactClass () { field = 1 }\n"); 129 compact_class = new CompactClass () { field = 1 }; 130 stdout.printf ("compact_class.field = %d\n", compact_class.field); 131 132 stdout.printf (".\n"); 133} 134 135