Exercises 3-3, 3-4 (DataOnly)
Chapter_3 Exercise_3-2 | Autoboxing Exercise_3-5 |
Exercises 3-3, 3-4 TCS, p. 85
Exercise 3-3. Turn the DataOnly code fragments into a program that compiles and runs.
Exercise 3-4. Modify Exercise 3-3 so that the values of the data in DataOnly are assigned to and printed in Main().
CONTENTS: DataOnly.cs TestDataOnly.cs
DataOnly.cs TCS, p. 56
public class DataOnly
{
public int i;
public float f;
public bool b;
private string s;
public static void Main()
{
DataOnly data = new DataOnly();
System.Console.WriteLine("uninitialized int: " + data.i);
System.Console.WriteLine("uninitialized float: " + data.f);
System.Console.WriteLine("uninitialized boolean: " + data.b);
System.Console.WriteLine("uninitialized string: " + data.s);
// Main() is part of DataOnly, so it has access to its private fields:
data.i = 47;
data.f = 1.1f; // 1.1 is implicitly double (compile error)
data.b = false; // true
data.s = "classified";
System.Console.WriteLine("int field: " + data.i);
System.Console.WriteLine("float field: " + data.f);
System.Console.WriteLine("boolean field: " + data.b);
System.Console.WriteLine("string field: " + data.s);
}
}
/*
mcs DataOnly.cs
mono DataOnly.exe
uninitialized int: 0
uninitialized float: 0
uninitialized boolean: False
uninitialized string:
int field: 47
float field: 1.1
boolean field: False
string field: classified
*/
TestDataOnly.cs
public class TestDataOnly
{
class DataOnly // inner class
{
public int i;
public float f;
public bool b;
private string s;
}
public static void Main()
{
DataOnly data = new DataOnly();
System.Console.WriteLine("uninitialized int: " + data.i);
System.Console.WriteLine("uninitialized float: " + data.f);
System.Console.WriteLine("uninitialized boolean: " + data.b);
// Main() is not part of DataOnly, so it cannot access its private field:
// System.Console.WriteLine("uninitialized string: " + data.s); // compile error
data.i = 47;
data.f = 1.1f; // 1.1 is implicitly double (compile error)
data.b = false; // true
// data.s = "classified"; // compile error
System.Console.WriteLine("int field: " + data.i);
System.Console.WriteLine("float field: " + data.f);
System.Console.WriteLine("boolean field: " + data.b);
// System.Console.WriteLine("string field: " + data.s); // compile error
}
}
/*
mcs TestDataOnly.cs
// 1 warning: The private field `TestDataOnly.DataOnly.s' is never used
mono TestDataOnly.exe
uninitialized int: 0
uninitialized float: 0
uninitialized boolean: False
int field: 47
float field: 1.1
boolean field: False
*/
Chapter_3 Exercise_3-2 | BACK_TO_TOP | Autoboxing Exercise_3-5 |
Comments
Post a Comment