大家讨论一下这两个程序如何编写?如何实现?
? 1.编写一个控制台应用程序,完成以下功能:
? 1)创建一个类,用无参数的构造函数输出该类的类名;
? 2)增加一个重载的构造函数,带有一个String类型的参数,在此构造函数中将传送的字符串打印出来;
? 3)在Main方法中创建属于这个类的一个对象,不传递参数;
? 4)在Main方法中创建属于这个类的另一个对象,传递一个字符串“This is a string”;
? 5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象;
? 6)写出运行程序应该输出的结果。
? class MyClass
? {
? public MyClass()
? {
? Console.WriteLine(this);
? }
? public MyClass(string str)
? {
? Console.WriteLine(str);
? }
? static void Main(string[] args)
? {
? MyClass cl1 = new MyClass();
? MyClass cl2 = new MyClass("This is a string");
? MyClass[] cla = new MyClass[5];
? }
? }
? MyClass
? This is a string
2.编写一个控制台应用程序,定义一个类MyClass,类中包含有public,private以及protected数据成员及方法。然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法,要求注明在试图访问所有类成员时哪些语句会编译出错。
? using System;
? using System.Collections.Generic;
? using System.Text;
? namespace Exam2
? {
? class MyClass
? {
? public int v1;
? protected int v2;
? private string s1;
? public MyClass()
? {
? v1 = 1;
? v2 = 2;
? s1 = "a private string.";
? }
?
? public void Method1()
? {
? Console.WriteLine("public method");
? }
? private void Method2()
? {
? Console.WriteLine("private method");
? }
? protected void Method3()
? {
? Console.WriteLine("protected method");
? }
? }
?
? class Program:MyClass
{
? static void Main(string[] args)
? {
? MyClass m = new MyClass();
? Console.WriteLine("v1={0}", m.v1);
? // Console.WriteLine("v2={0}", m.v2);
? //会出现编译错误,私有成员不允许在其他类中访问
? // Console.WriteLine("s1={0}", m.s1);
? //会出现编译错误,应该创建Program对象,然后通过Program对象访问
? m.Method1();
? // m.Method2();
? //会出现编译错误,私有方法不允许在其他类中调用
? // m.Method3();
? //会出现编译错误,应该创建Program对象,然后通过Program对象调用//该方法
? }
? }
? }