day6
面向对象
面向过程是分析解决问题的步骤,然后把步骤实现
面向对象是把构成问题的事分解成各个对象,不是为了完成步骤,为了描述在整个
类是类别 是一种抽象的数据类型 是相同特征实体的抽象
类里共同行为或者特征二者存一也可
访问修饰符 class 类名{ 类成员 }
class person
{
public string name;
public void Chat(){
方法内容
}
}
声明其他命名空间
命名空间.类名 变量=new 命名空间.类();
{
public string name;
///<summary>
///聊天
///</summary>
public void chat(){
console.writeline("");
}
对象、
对象是类的具象化
创建对象
类名 对象名
类名 变量名 =new 类名();//←new一个对象出来
字段
字段就是描述一个雷特征的变量
创建一个字段
访问修饰符 数据类型 变量;
class Person{
public string name;
}
//↑默认的访问修饰符是private,字段也可以赋初始值
访问字段
对象.字段名
person xiaoming =new person();
//↑ 无法点到私有字段
方法
封装有特定功能的代码段‘
用来描述类的行为
方法的创建
访问修饰符 返回值 方法名(参数列表)
{ 代码块 return值;}
方法的调用
返回值类型 变量名 = 对象名.方法名(实参列表);
无参无返回值的方法
public void introduceme(){
console.writeline($"我叫{this.name}");
console.WriteLine($“今年{age}岁”);
}
无参数有返回值的方法
public string getname()
{
int grade = age-6;
if(grade<0||grade>12){
grade=0;
}
return name;
}
又參无返回值的方法
public void setnewhobby(string newHobby)
{
console.WriteLine($"我有了新的爱好{newHobby}");
hobby += newHobby;
}
有参有返回值
public string setNewFamuktMember(string newMember, MemberType memberType)
{
switch (memberType)
{
case memberType.Wife:
Console.WriteLine("恭喜你有了新的家庭成员(妻子)"+newMember);
familyMbers[2] = newMember;
case memberType.Child:
Console.WriteLine("恭喜你有了新的家庭成员(孩子)"+newMember);
familyMember[2] = newMember;
break;
default:
break;
}
return familyMemberds;
}
this关键词
如果 想调用远的要用this
如果没有重名现象可以省略this
/*创建CF当中的玩家类Player,该类含有字段:名字,性别,血量,武器。
武器背包当中匕首,步枪,机枪,狙击枪。
玩家类具有以下方法:
(1)自我介绍Introduce方法
(2)换武器装备
(3)受到攻击掉血,当血量小于等于0的时候玩家死亡
(4)攻击其他玩家的方法
*/
enum WeapenType
{
bihsou,
laifu,
jiqiang,
juji
}
class Weapen
{
public string name;
public int atk;
public WeapenType type = WeapenType.jiqiang;
public Weapen(string name,int atk,WeapenType type)
{
this.name = name;
this.atk = atk;
this.type = type;
}
}
class Player
{
enum Sex
{
女,
男
}
public string p_name;
Sex sex;
public int hp;
Weapen weapen;
static void introduce()
{
Console.WriteLine("请为自己的角色起一个名称");
string name = Console.ReadLine();
Console.WriteLine("我叫"+name);
}
public Player()
{
//添加武器
weapens[0] = new Weapen("ak",250,WeapenType.jiqiang);
weapens[1] = new Weapen("m416", 150, WeapenType.jiqiang);
weapens[2] = new Weapen("awm", 850, WeapenType.juji);
weapens[3] = new Weapen("ak", 250, WeapenType.jiqiang);
}
public Weapen[] weapens = new Weapen[5];
public void EquipWeapon(Weapen weapen)
{
this.weapen = weapen;
}
//收到攻击
public void GetHit(int damage)
{
hp -= damage;
Console.WriteLine(p_name+"受到了"+damage+"点伤害");
if (hp<=0)
{
Console.WriteLine("wamjiasiwang");
}
}
//gongji
public void AttackPlayer(Player player)
{
player.GetHit(weapen.atk);
}
}