daily exercise - object oriented

本文介绍了面向对象编程的三大特性:封装、继承与多态,并通过具体示例详细解释了每种特性的应用方式及其带来的好处。同时,文章还探讨了一些面向对象设计中常见的问题和解决方案。

Daily exercise (Object Oriented)

//encapsulation :Only leave behind the interface for client and hide the member of the class by get/write method or property.

//encapsulation example

 

public class Person

{

       private string _name;

       public string Name

       {

              get

{

       Return _name;

}

set

{

       _name=value;

}

}

}

Question1: Which method is better between using attribute and encapsulation method?

Question2:When we will must use index ?

Question3:Can we get the value like Name if we will get it in AjaxMethod ?

 

//Inheritance :The class can use other class’s member.

//Inheritance example

 

public class ParentClass

{

       public ParentClass()

       {

              Console.WriteLine(“ParentClass”);

}

public void Print()

{

       Console.WriteLine(“This is a parent class”);

}

}

public class ChildClass:ParentClass

{

       Public ChildClass()

       {

              Console.WriteLine(“ChildClass”);

}

}

public class App

{

       public static void Main(string[] args)

       {

              ChildClass child=new ChildClass();

              Child.Print();

}

}

Question4:What’s the number of the class we can inherit most?

Question5:What’s the number of the level we can inherit most?

Question6:Which is better between abstract class and interface?

Question7:Usually,which is used more times between abstract class and interface?

//Polymorphism : Use new or override to rewrite base class’s member.

//Polymorphism example

 

public class Log
{
   public virtual void Write();
}
public class EventLog:Log
{
   public override void Write()
   {
      Console.WriteLine("EventLog write sucess !");
   }
}
public class FileLog:Log
{
   public override void Write()
   {
      Console.WriteLine("FileLog write sucess !");
   }
}

Question8:What’s the different between the next code if I change it?

public abstract class Log
{
   public abstract void Write();
}

public class Log
{
   public virtual void Write();
}

Question9: Is it true if I write the code like this?

Public class Log

{

       Public abstract void Write();

}

Question10:Can I write the method like this : public abstract override void Write();

Question11:When we use the keywords ‘new’?

Question12:What’s the different between ‘public sealed override void Write()’ and ‘public new void Write()’?

Question13:What is the advantage if I use ‘base.Write();’?

Question14:Can I write the code like this ?

Public abstract class Log

{

       Public virtual void Write();

}

Public class FileLog:Log

{

       Public new void Write();

}

Question15: What’s the result we can get?

ChildClass child=new ChildClass();

Child.Write();

ParentClass parent=(ParentClass)child;

Parent.Write();

Question16:What we can get if write the code like this ‘ParentClass parent=new ChildClass();’?

Question17:When we could use sealed?

Question18:Can I write the code like this : public sealed void Write();?

Question19:If I define the method with virtual in base class, Is it necessary to inherite it in child class ?

Question20: Which method is helpful for me to abstract the object in project?

转载于:https://www.cnblogs.com/syringa-flz/archive/2007/04/11/709022.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值