狼人杀与血染钟楼的【JAVA面向对象】————类和对象

一、类

1.什么是类

天黑请闭眼!

现在是狼人杀的时间,好了,现在你拿的身份是狼人。你的技能是夜晚可以杀死一个人,你的狼队友是他和她,你们的目标是杀死所有好人获得胜利。

是不是突然感到很困惑:这和 类和对象 类和对象 类和对象有什么关系?巧了,还真有关系,听作者细(强)细(扯)道(关)来(系)。

在狼人杀中,狼人牌属于类。狼人牌的作用仅仅是上帝用来确定哪名玩家是狼人,转到类和对象上就是狼人牌是上帝用来实例化狼人的类。于是我们得到这样一个结论:

类是对象的抽象

2.类的定义

类的定义用class关键字,下面展示的是狼人类的部分定义

public class wolf{
  private boolean skill;
  private int[] number=new int[10];
  private killer;
  {
   skill=true;
   for(int i=1;i<11;i++){
    number[i]=0;
   }
   killer=-1;
  }
  public wolf(int...numbers){
   System.out.print("你的狼队友是:");
   for(int num:numbers){
   System.out.print(num+"号 ");
   number[num]=1;
   }
   System.out.println();
  }
  public void kill(int n){
   killer=n;
   System.out.println("今晚你们要杀的对象是:"+n+"号");
  }

}

我们定义了一个私有整型变量killer表示狼人每一晚要杀的对象;一个布尔型变量skill表示当前技能是否能发动;一个构造函数(后面会介绍构造函数)wolf来接收狼队友。除了以上必须的定义外,我们还定义了一个夜晚杀人的方法(必须性是相对于类的定义,而不是狼人杀)。

通过上面对狼人类的定义,我们可以发现,类中包含了狼人共有的一些基本属性(比如夜晚都能杀人,但是杀哪一个人是具体到某个狼人玩家决定的,而不是类所决定的)。类的作用就是抽象对象的属性(简单来说就是定义一个对象所具有的属性而不赋值)。

3.类的构成

  1. 关键字 c l a s s 关键字class 关键字class(必不可少的)
    这是用于表明你写的代码块为类的定义。
  2. 访问权限控制符 p u l i c 访问权限控制符pulic 访问权限控制符pulic(可以缺省的)
    这是用于控制对当前类的访问权限,public表示自身,同包类,其他类都可以访问当前类。
  3. 构造和析构函数 构造和析构函数 构造和析构函数(必不可少的但可以不写)
    用于初始化对象,编译器会默认加上无参构造和析构函数。
    对不起,Java没有析构。

二、对象

1.什么是对象

对象是类的实例化

我们先抛出这个结论,其实上面介绍类的时候,就提到了对象。狼人就是一个对象,注意,狼人是对象,狼人牌是类!狼人是指具体到某个玩家了。当你玩狼人杀的时候拿到狼人牌了,就代表你是狼人这个类的一个实例化对象了。

对象是类的实例化,对象需要对类中所拥有的属性(成员变量)进行赋值,对象相当于一个用户自己定义类型的变量。

2.对象的实现

这里我们定义两个wolf类的对象,分别为wolf_one和wolf_two。

wolf wolf_one=new wolf(3);
wolf wolf_two=new wolf(2);
wolf.kill(4);
wolf.kill(4);

实例化类的对象基本格式为:类名 变量名 = new 类名();
访问对象的成员时使用(.)运算符。

三、static

ps: m a i n main main方法前的 s t a t i c static static有什么作用?不加上行不行?

答:static表示这个main方法是静态的,整个进程只会创建一份main方法。
main方法前必须加static,毕竟如果是非静态的main方法可以有0-∞个,鬼知道调用哪个!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最弱无胜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值