C#类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37602383/article/details/78479658

定义:

类是描述具有相同特征与行为的事物的抽象

(特征,行为)

类是由类成员变量构成的,类成员包含字段属性,和方法


对象是类的具体实例

类是对象的类型

对象的创建使用new 关键字

格式


例:

汽车类

特征:车轮,发动机,品牌,价格,颜色

行为:开动,停车,转弯

类的构造

1.分类别,区分不同的事物

2.描述某类事物具备什么特征以及能做什么事

3类是一种构造,通过该构造可以将不同的类型的变量,方法组合在一起创建出自定义类型

4类是面向对象程序设计实现信息封装的基础

类的声明

class:class关键字用于类的声明

public class a{
   

}






对象

对象的创建使用new 关键字

格式: 类 对象名=new 类名()

类的作用

类的声明




字段

字段:字段是用来描述类的特征

格式:访问修饰符 字段类型 字段名(访问修饰符可以补血,默认是私密的);

如:public  string name=“a”;

字段在声明的时候可以初始化(注意跟结构体字段的区别)




方法

方法用来描述类的行为

方法是封装了一段有特异功能的字段

方法根据是否有输入参数以及是否有返回值分为以下四种:

(1)无参数无返回值

格式:访问修饰符 void 方法名(){

    代码块

}



(2)无参数有返回值


1格式:

访问修饰符 返回值参数 方法名(){

   代码段

  return 值;

}

2调用

返回值类型 变量名 =对象.方法名();


(3)有参数无返回值

1格式

访问修饰符 void 方法名(参数列表){

  代码段

}

2调用

对象.方法名(参数...)

(4)有参数有返回值

1格式

访问修饰符 返回值类型 方法名(参数列表){

代码段

return 值

}

2调用

返回值类型 变量=对象.方法名(参数1,参数2....)

调用类的小游戏

using System;

namespace Player
{
	//性别枚举
	public enum Sex{
		男,
		女
	}
	//武器枚举
	public enum Wuqi{
		匕首,
		步枪,
		机枪,
		狙击枪
	}

	//玩家类
	public class player{
		//玩家名称
		public string name;
		//性别 (枚举)定义成枚举使赋值更加合法,可读性更好
		public Sex sex;
		//血量
		public int HP;
		//武器 (枚举)
		public Wuqi wuqi;
		//每个玩家的攻击力
		public int attackValue;
		//玩家信息
		public	player(string name,Sex sex,int HP,Wuqi wuqi,int attackValue){
			this.attackValue=attackValue;
			this.HP=HP;
			this.name = name;
			this.sex = sex;
			this.wuqi = wuqi;
		}

		//玩家信息输出
		public void introduce(){
			Console.WriteLine("玩家姓名:{0},玩家初始血量:{1},玩家性别:{2},玩家武器:{3},玩家攻击力:{4}",name,HP,sex,wuqi,attackValue);
		}



		//换装备
		public void Change(Wuqi other){
			this.wuqi=other;
			Console.WriteLine ("{0}换上了装备{1}", name, other);

		}



		//掉血方法
		public void LoseHP(int damage){
			//扣血
			this.HP-=damage;
			if (HP <= 0) {
				Console.WriteLine ("玩家{0}死亡",name);
			}
		}


		//攻击其他玩家方法
		public void Attack(player other){
			Console.WriteLine("{0}攻击了{1}",this.name,other.name);
			other.LoseHP(this.attackValue);
		}
	}





	class MainClass
	{
		public static void Main (string[] args)
		{
			player play1 = new player ("张三",Sex.男,1500,Wuqi.狙击枪,400);
			player play2 = new player ("李四",Sex.男,1700,Wuqi.匕首,310);
			play1.introduce ();
			play2.introduce ();
			//换装备
			play1.Change (Wuqi.机枪);
			play2.Change (Wuqi.匕首);
			//玩家hp为0
			Console.WriteLine ("输入1{0}打{1},输入2{2}打{3}",play1.name,play2.name,play2.name,play1.name);
			while(true){
				int inputNum = Convert.ToInt32 (Console.ReadLine ());
				if (inputNum == 1) {
					play1.Attack (play2);
				}
				if (inputNum == 2) {
					play2.Attack (play1);
				}
				if (play1.HP <= 0 || play2.HP <= 0) {
					Console.WriteLine ("回合结束");
					break;
				}
			}
		}
	}
}



猜你喜欢

转载自blog.csdn.net/m0_37602383/article/details/78479658