面向对象基础知识点

    oop:面向对象,全程叫object oriented programming
    面向对象的三大特性:1.封装
                    2.继承
                    3.多态
  
    类的定义:实际上就是具有相同属性和特征的一类事物的抽象集合.
   类和对象的关系:类是对象的抽象,对象是类的实例.
    对象的定义:抽象类的实例.
    
  
    //小例子
    昨天,我去了工商银行去办银行卡,在我前面有五十个人.
  
   香港著名歌星张学友来上海拍广告.
  
    菜市场进了一批蔬菜,然后张三去买菜,问老板,都有什么菜呢?老板说,有茄子,黄瓜,藕等等.
    
 
    1.知道了类的定义,如何定义类?
      使用系统关键字
        (访问修饰符internal)class + 类名{
      
      }
      注意一点:类和类之间属于同级关系
    2.如何描述类的特征
      叫字段或者类成员变量
      字段和普通局部变量的区别:
      局部变量没有初始化,访问该局部变量时编译会不通过.但字段可以
 
    3.实例化对象
      采用系统关键字new + 类名()
      new关键字的作用:
    
    4.如何描述类的行为
      叫方法或者函数
      语法格式:修饰词 + 函数返回值 + 函数名(方法名)(形参列表)
       {
        方法体(函数体);
       }
 
    5.修饰符()
    public:公开的意思,常用语修饰类,修饰类字段,修饰类中方法
            就是非本类之外也可以访问.
    private:私有的意思,常用语修饰字段,方法.也是我们c#语言中默认的修饰符.
            就是只有本类才可以访问.
    internal:程序集内部可以访问
    protected:基类&&派生类可以访问
      
    6.方法的返回值
    如果方法有返回值,就返回方法的实际类型的返回值,关键字return + 返回内容;
    如果方法内存在多个return语句,值返回第一个return语句块,剩下的不会执行.
    如果方法没有返回值,可以省略return不写,直接写方法体内的方法快即可.
 
    四种方法:
    有参有返回值
    有参无返回值
    无参有返回值
    无参无返回值


    7.枚举变量
   格式:enum + 枚举名称
     {
     枚举变量1,
     枚举变量2,
     枚举变量3
     }




     8.构造函数(重点掌握)
       构造函数的作用:让一个类更完整.
       构造函数其实就是用来创建对象,初始化字段用的
       构造函数的语法格式:修饰符 + 类名()
       {
        
       }
       构造函数的特点:
      1.构造函数压根就没有返回值
       2.构造函数的名称必须与类名保持一致
       3.构造函数支持方法重载,换句话说就是可以有多个构造函数,但是参数个数必须不相同.
       4.构造函数无法进行手动调用(系统自动调用)
       5.如果类中不包含构造函数,那么系统会自动的为该类添加一个无参数的构造函数
       6.如果类中存在带有参数的构造函数,那么系统不会为该类添加无参的构造函数.那么

         此时创建对象,必须使用带有参数的那个构造函数


using System;

namespace OOP
{
	//定义枚举
	enum Gender
	{
		男,
		女
	}


	//定义了一个人类
    class Person
	{
		//特征
		//名字
		public string name;
		//年龄
		public int age;
		//性别
//		public string gender;
		//性别枚举
		public Gender  gender;

		//行为1----吃
		public void Eat(string foodName){
			Console.WriteLine ("{0}在吃{1}", name, foodName);
		}

		//行为2----打招呼
		public string SayHi(){
			return "我是" + name + ",大家好吗?";
		}

		//拼接字符串
		public string Pinjie(string str1,string str2)
		{
			return str1 + str2;
		}

		//返回最大的值
		public int ReturnMaxValue(int num1,int num2){
			return num1 > num2 ? num1 : num2;
		}

		//求和1~n
		public int Sum(int n){
			int sum = 0;
			for (int i = 1; i <= n; i++) {
				sum += i;

			}
			return sum;

			//递归算法求和
//			if (n == 0) {
//				return 0;
//			} else {
//				return n + Sum (n - 1);
//			}
		}


		//构造函数
		public Person(){
			Console.WriteLine ("构造函数被调用!~");
		}
//

		//this关键字:代表这个类的这个对象
		public Person(string name,int age){
			this.name = name;
			this.age = age;
		}


	}


	
     class MainClass
	{
//	    static int a;
//		public static void Main (string[] args)
//		{
			//报错原因:局部变量没有被初始化
//			int a;
//			Console.WriteLine (a);

			//没有报错原因,因为此时a变量为类的成员也就是字段
//			Console.WriteLine (MainClass.a);


			//实例化人类对象
			//此时的p就是对象Instance 
//			Person p = new Person ();
//			p.name = "马志蛇";
//			p.age = 18;
//			p.gender = "X";
//			p.Eat ("屎");
//			string s = p.SayHi ();
//			Console.WriteLine (p.SayHi ());
//
//			Person p1 = new Person ();
//			p1.name = "黄海";
//			p1.age = 19;
//			p1.gender = "XXY";
//			p1.Eat ("马志蛇吃剩下的屎");
//
//			if (p == p1) {
//				Console.WriteLine ("p和p1为同一对象!");
//			}

			//课堂练习
			//1.编程定义一个方法,功能是把两个字符串进行拼接,得到一个新的字符串;
//			Console.WriteLine(new Person().Pinjie("中国","我的母亲"));

			//2.定义一个方法,比较两个int类型的数据,得到其最大值;
//			Console.WriteLine(new Person().ReturnMaxValue(10,9));

			//3.编写方法int SumValue(int n);计算1~n的和;
//			Person p = new Person ();
//			Console.WriteLine (p.Sum (5));


			//枚举演示:
			//访问枚举变量是用枚举名.的方式调用
			//在unity中,枚举常用来判断游戏状态(游戏开始,游戏暂停,游戏结束)
//			Person p = new Person();
//			p.name = "刘德华";
//			p.age = 55;
//			p.gender = Gender.男;
//			Console.WriteLine ("性别是:{0}",p.gender);


			//构造函数演示
//			Person p = new Person();
//			Person p = new Person("刘德华",55);
//			Console.WriteLine (p.name);

//			Person p1 = new Person ();

		}
}


         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值