一、类
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.类的构成
-
关键字
c
l
a
s
s
关键字class
关键字class(必不可少的)
这是用于表明你写的代码块为类的定义。 -
访问权限控制符
p
u
l
i
c
访问权限控制符pulic
访问权限控制符pulic(可以缺省的)
这是用于控制对当前类的访问权限,public表示自身,同包类,其他类都可以访问当前类。 -
构造和析构函数
构造和析构函数
构造和析构函数(必不可少的但可以不写)
用于初始化对象,编译器会默认加上无参构造和析构函数。
对不起,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-∞个,鬼知道调用哪个!