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

Popular posts from this blog

Contents