C#实验解答(4)

1、编写一个控制台应用程序,完成下列功能。

1创建一个类,用无参数的构造函数输出该类的类名

2增加一个重载构造函数带有一个string类型的参数在此构造函数中将传递的字符串打印出来。

3)在Main方法中创建属于这个类的一个对象,不传递参数

4)在Main方法中创建属于这个类的一个对象,传递一个字符串This is a string.

5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里对象。

6)写出运行程序应该输出的结果

【解答】

using System;

class Test1

{

    public Test1()

    {

        Console.WriteLine(this);

    }

    public Test1(string str)

    {

        Console.WriteLine(str);

    }

    public static void Main()

    {

        Test1 t1 = new Test1();

        Test1 t2 = new Test1("This is a string.");

        Test1[] t3 = new Test1[5];

    }

}

输出结果:

Test1

This is a string.

2、编写一个控制台应用程序,定义一个类MyClass,类中包含有publicprivate以及protected数据成员及方法。然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。要求注明在试图访问所有类成员时哪些语句会产生编译错误。

【解答】

using System;

class MyClass

{

    public int i;

    private int j;

    protected int k;

    public void method1()

    {

        Console.WriteLine("public method.");

    }

    private void method2()

    {

        Console.WriteLine("private method.");

    }

    protected void method3()

    {

        Console.WriteLine("protected method.");

    }

}

class MyMain : MyClass

{

    public static void Main()

    {

        MyClass t = new MyClass();

        Console.WriteLine("i={0}", t.i);

        Console.WriteLine("j={0}", t.j);//会出现编译错误,私有成员不允许在其它类中访问

        Console.WriteLine("k={0}", t.k);//会出现编译错误,应该创建MyMain的对象,然

        //后通过MyMain的对象访问

        t.method1();

        t.method2();  //会出现编译错误,私有的方法不允许在其它类中调用

        t.method3();  //会出现编译错误,应该创建MyMain的对象,然后通过MyMain

        //对象调用该方法

    }

}

3创建一个类包含有protected数据。在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据。

【解答】

using System;

class Class1

{

    protected int i = 5;

    protected void MyMethod()

    {

        Console.WriteLine("protected method.");

    }

}

class Class2 : Class1

{

    private void NewMethod()

    {

        Console.WriteLine(this.i);

        this.i += 10;

        Console.WriteLine(this.i);

    }

    public static void Main()

    {

        Class2 t = new Class2();

        t.NewMethod();

    }

}

4结构和类的区别是什么?

【解答】

1)结构是一个值类型,保存在栈上,而类是一个引用类型,保存受管制的堆上。

2)对结构中的数据进行操作比对类或对象中的数据进行操作速度要快。

3)一般用结构存储多种类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值