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)