版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}
}
}
}
}