面向对象编程(封装、继承、多态)

封装:

1、保证代码、数据的安全性;

2、屏蔽代码复杂性;

3、封装类型:普通代码封装成方法;方法都封装在一个类中。

using System;  

namespace lesson01{  

	public  class  A {                                //将多个方法封装,创建了类  
		
		public void Open () {     
			Console.WriteLine ("打开");       
		}        

		public void Close () {    
			Console.WriteLine ("关闭");    
		}
	}   

	class MainClass {   
		
		public static void Main ( string[] args ) {   
			                                  // Console.WriteLine (“Opan”),此时代码出错,故将其封装于方法中   
			A a = new A  () ;                 //将逻辑封装于方法中,外界直接调用即可,屏蔽代码复杂性          
			a.Open () ;        
		}  
	}
}


继承:

1、被继承类——父类/基类;继承类——子类/派生类;

2、子类可以拥有父类的全部特性;

3、子类可以扩展父类功能,实现重用;

4、C#只支持单继承。

using System;  
  
namespace lesson01{  
      
    public  class  Person {          
        public string name;          
    }     
  
    public  class  Student : Person {            //继承父类——修饰符 class 子类名 :父类名     
        public void Gua () {                 
            Console.WriteLine ("哎呀,挂科了");    
        }      
    }     
    class MainClass {          
        public static void Main ( string[] args ) {      
            Person p = new  Person () ;      
            p.name = "张三";                
            Student s = new Student () ;     
            s.name = "李四";            
            s.Gua () ;      
        }     
    }  
}  


多态:


面向过程——分析出解决问题需要的步骤,再一步步实现。

using System;  

namespace lesson01{  

	class MainClass {      
		
		public static void Main ( string[] args ) {       
			//1、打开冰箱门         
			//2、把大象塞进冰箱    
			//3、关闭冰箱门          
			Console.WriteLine ("打开冰箱门") ;     
			Console.WriteLine ("把大象塞进冰箱") ;         
			Console.WriteLine ("关闭冰箱门") ;      
		}   
	} 
}



面向对象——把构成物体的事物分解成对象。

1、三大特性:封装、继承、多态;
2、对象用于描述某个事物在解决问题过程中的行为;
3、程序更具重用性(在原类中添加功能即可)、灵活性(不用添加重复代码)、扩展性(不用大规模修改原代码)

 
using System;  

namespace lesson01{  

	//创建冰箱类,通过添加字段、属性或方法,使其具有特定的行为   
	public  class  Refrigerator  {    
		public void Open () {        
			Console.WriteLine ("打开冰箱门") ;   
		}        
		public void PutIn (string thing) {   
			Console.WriteLine ("把" + thing + "塞进冰箱") ;  
		}       
		public void Close () {    
			Console.WriteLine ("关闭冰箱门") ;  
		}  
	}  
	class MainClass {  
		public static void Main ( string[] args ) {
			//通过组合对象的行为,解决问题     
			Refrigerator r = new  Refrigerator () ;   
			r.Open () ;    
			r.PutIn ("大象") ;     
			r.Close () ;     
		} 
	} 
}


面向对象五大基本原则:

单一职责原则SRP:一个对象只做好一件事,若同时处理多个事情,程序不稳定。

开放封闭原则OCP:封闭修改,开放扩展,即需求变化时通过扩展类来完成,尽量不修改类的设计。

里氏替换原则LSP:子类可以替换父类,虚拟机通过父类变量动态的找到具体的子类对象,实现多态。

依赖倒置原则DIP:高层模块调用接口,底层模块实现接口,避免底层变化影响高层。

接口隔离原则ISP:尽量不使用总接口,而是通过使用专用的小接口,防止接口复杂化。


猜你喜欢

转载自blog.csdn.net/love4399/article/details/78061872