By GokiSoft.com| 19:51 05/10/2021|
C Sharp

[Share Code] Lập trình OOP C# - Tính đa hình C# & Tính trừu tượng C# - Interface C# - List C#



Nội dung kiến thức:

Tính chất trong lập trình OOP:
- T/c đóng gói: OK
- T/c kế thừa: OK
- T/c đa hình
- T/c trừu tượng

- Interface:

===========================================================
Xây dựng 1 dự án quản chu vi và diện của các khối hình học: Hình tròn, hình cn, hình vuông, hình bình hành,...

	Hinh tròn:
		- Thuộc tính:
			Bán kính -> double
		- Phương thức:
			TinhCHuVI
			TinhDienTich
			Nhap
			HienThi
	HCN:
		- Thuộc tính:
			Chiều dài
			Chiều rộng
		- Phương thức:
			TinhCHuVI
			TinhDienTich
			Nhap
			HienThi
	HV:
		- Thuộc tính:
			Cạnh
		- Phương thức:
			TinhCHuVI
			TinhDienTich
			Nhap
			HienThi

	HinhHoc:
		- Phương thức:
			TinhCHuVI
			TinhDienTich
			Nhap
			HienThi

Triển khai dự án:




#Student.cs


using System;
namespace Lesson03
{
    public class Student : IInput
    {
        public string Fullname { get; set; }

        public Student()
        {
        }

        public void Input()
        {
            Console.WriteLine("Nhap ten: ");
            Fullname = Console.ReadLine();
        }
    }
}


#Program.cs


using System;
using System.Collections.Generic;

namespace Lesson03
{
    class Program
    {
        static void Main(string[] args)
        {
            //Tinh chat da hinh
            //HinhHoc hinhHoc = new HinhHoc();
            //Console.WriteLine("Chu vi: " + hinhHoc.TinhChuVi());

            HinhChuNhat hcn = new HinhChuNhat();
            hcn.Input();
            Console.WriteLine("Chu vi HCN: " + hcn.TinhChuVi());

            HinhHoc hh = new HinhChuNhat();
            hh.Input();
            Console.WriteLine("Chu vi HH: " + hh.TinhChuVi());

            var obj = new HinhChuNhat();
            obj.ShowTest();

            if(hh is HinhChuNhat)
            {
                ((HinhChuNhat)hh).ShowTest();
            } else
            {
                Console.WriteLine("khong goi vao day");
            }

            //Tinh chat truu tuong:

            //Interface
            //Tao 1 mang quan ly dc nhap du lieu HinhCN, HinhTron,HinhVuong, Student
            IInput[] list = new IInput[3];
            list[0] = new Student();
            list[1] = new HinhChuNhat();
            list[2] = new HinhTron();

            foreach(IInput input in list)
            {
                input.Input();
            }

            //Hoc cach su dung mang dong
            List<IInput> list2 = new List<IInput>();
            //Them phan tu vao trong mang
            IInput input1 = new HinhChuNhat();
            list2.Add(input1);
            IInput input2 = new HinhChuNhat();
            list2.Add(input2);
            IInput input3 = new HinhChuNhat();
            list2.Add(input3);

            //Lay phan tu ra
            list2[1].Input();

            for(int i=0;i<list2.Count;i++)
            {
                list2[i].Input();
            }

            //Xoa phan tu trong mang
            list2.RemoveAt(0);
            //Xoa theo objetc
            list2.Remove(input2);
        }
    }
}


#IInput.cs


using System;
namespace Lesson03
{
    public interface IInput
    {
        void Input();
    }
}


#HinhVuong.cs


using System;
namespace Lesson03
{
    public class HinhVuong : HinhHoc, IInput
    {
        public double Width { get; set; }

        public HinhVuong()
        {
        }

        public HinhVuong(double width)
        {
            Width = width;
        }

        public override void Input()
        {
            Console.WriteLine("Nhap canh hinh vuong: ");
            Width = double.Parse(Console.ReadLine());
        }

        public override double TinhChuVi()
        {
            return 4 * Width;
        }

        public override double TinhDienTich()
        {
            return Width * Width;
        }

        public override string ToString()
        {
            return "Canh hinh vuong: " + Width;
        }
    }
}


#HinhTron.cs


using System;
namespace Lesson03
{
    public class HinhTron : HinhHoc, IInput
    {
        public double Radius { get; set; }

        public HinhTron()
        {
        }

        public HinhTron(double radius)
        {
            Radius = radius;
        }

        public override void Input()
        {
            Console.WriteLine("Nhap ban kinh: ");
            Radius = double.Parse(Console.ReadLine());
        }

        public override double TinhChuVi()
        {
            return 2 * Math.PI * Radius;
        }

        public override double TinhDienTich()
        {
            return Math.PI * Radius * Radius;
        }
    }
}


#HinhHoc.cs


using System;
namespace Lesson03
{
    public abstract class HinhHoc
    {
        public HinhHoc()
        {
        }

        public abstract void Input();

        public void Display()
        {
            Console.WriteLine(this);
        }

        public abstract double TinhChuVi();

        public abstract double TinhDienTich();
    }
}


#HinhChuNhat.cs


using System;
namespace Lesson03
{
    public class HinhChuNhat : HinhHoc, IInput
    {
        public double Width { get; set; }
        public double Height { get; set; }

        public HinhChuNhat()
        {
        }

        public HinhChuNhat(double width, double height)
        {
            Width = width;
            Height = height;
        }

        public override void Input()
        {
            Console.WriteLine("Nhap chieu dai: ");
            Width = double.Parse(Console.ReadLine());

            Console.WriteLine("Nhap chieu rong: ");
            Height = double.Parse(Console.ReadLine());
        }

        public override double TinhChuVi()
        {
            return 2 * (Width + Height);
        }

        public override double TinhDienTich()
        {
            return Width * Height;
        }

        public override string ToString()
        {
            return "Chieu dai: " + Width + ", chieu rong: " + Height;
        }

        public void ShowTest()
        {
            Console.WriteLine("Testing...");
        }
    }
}


Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)