實驗5——類和物件

iamzxf發表於2015-04-21

一、實驗目標

1、掌握類的定義及類中的各個成員的使用

2、掌握建構函式的使用

3、掌握類成員的訪問許可權

4、掌握例項成員和靜態成員的定義和訪問,注意二者的區別

二、實驗內容

1、實現一個矩形類,建立其例項並使用。要求如下:

(1)編寫一個矩形類Rectangle

(2)欄位成員為:length,width;且可供例項訪問。

(3)靜態成員count欄位,矩形物件的個數(即矩形類的例項化次數)

(4)三個建構函式,其中第一個無參建構函式將長、寬欄位成員賦值為0,第二個有參建構函式根據使用者例項化傳入的引數給長、寬賦值;第三個建構函式傳入面積值。使用者採用第三個建構函式時,根據傳入的面積引數,分解出一組長、寬最接近的值。

(4)三個方法:分別為A判斷該矩形是否為正方形;B計算周長;C計算面積。

(5)以上值都為整數。


參考程式碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Rectangle
    {
        public int length, width;
        public static int count;

        public Rectangle()
        {
            this.length = 0;
            this.width = 0;
            count++;
        }

        public Rectangle(int x, int y)
        {
            this.length = x;
            this.width = y;
            count++;
        }

        public Rectangle(int area)
        {
            this.length = (int)Math.Ceiling(Math.Sqrt(area));
            this.width = area / this.length;
            count++;
        }

        public bool A()
        {
            return length == width;
        }

        public int B()
        {
            return 2 * (length + width);
        }

        public int C()
        {
            return (length * width);
        }


    }
    
    class Program
    {
        static void Main(string[] args)
        {
            Rectangle rec=new Rectangle();
            if (rec.A())
                Console.WriteLine("yes");
            else
                Console.WriteLine("no");

            Rectangle rec2 = new Rectangle(10, 20);
            Console.WriteLine(rec2.B());

            Rectangle rec3 = new Rectangle(20);
            Console.WriteLine(rec3.C());


            Console.WriteLine(Rectangle.count);

            Console.ReadLine();


        }
    }
}

2、 編寫控制檯應用程式,定義一個類A:

(1)具有一個int型私有靜態變數staticNumber和一個int型私有例項變數number;

(2)提供一個靜態建構函式,設定靜態變數staticNumber的初值為50;

(3)提供一個例項方法Input,從鍵盤接收一個int值,若轉換成功,則同時為staticNumber和number賦值,否則,將staticNumber和number的值置為100;

(4)提供一個靜態方法Print和一個例項方法Printn,分別輸出顯示staticNumber和number的值;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class A
    {
        private static int staticNumber;
        private int number;

        static A()
        {
            staticNumber = 50;
        }

        public void input()
        {
            string str = Console.ReadLine();
            int temp;
            if (int.TryParse(str, out temp))
            {
                staticNumber = temp;
                number = temp;
            }
            else
            { 
                staticNumber=100;
                number = 100;
            }
        }

        public static void Print()
        {
            Console.WriteLine(staticNumber);
        }

        public void Printn()
        {
            Console.WriteLine(number);
        }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            A aa = new A();
            aa.Printn();
            A.Print();
            Console.ReadLine();
        }
    }
}


3、設計程式實現不同訪問修飾符的使用。

相關文章