9月10号,第二课,是有关类与对象的。类是抽象的,对象是具体的,可以通过类来创建对象。java中每一个java程序中必须只有一个public类,但是不是每一个public类中必须有主函数。例如我们写个Student类,里面没有主函数,再新建一个为.Test文件进行测试,Test类中包含主函数。String类型默认值为null,但是null与””不一样,null在内存中没有保存任何内容,而“"在内存中有保存,只是里面没有任何内容。同样,”“和” “也不一样。
我们在java中用构造方法创建对象,每一个类中构造方法都默认提供了一个无参数的构造方法,特点:方法名和类名一样,没有返回值的申明(ps:但是有人认为构造方法没有返回值,因为连返回值的申明都没有。但是,也有人认为构造方法有返回值,因为它返回对象),例如,创建学生对象,Student student=new Student();用new创建对象,会在内存暂时开辟一块空间。类中提供很多方法来实现给各种功能。另外有关环境变量的配置,之所以要配置环境变量,是为了在计算机的任何位置找到它访问它。bin目录下是可执行程序,lib是包和库。另外以及ping和telnet。
最后,我们练习了一下类与对象,做了一个简单的控制台的角色类游戏,战士打怪物游戏。代码如下:
Soldier.java:
public class Soldier
{
private String s_name;
public int s_blood=100;
public void setName(String newName)
{
s_name=newName;
}
public void pk(Monster monster)
{
//自身血量减少5,对方减少2
s_blood-=5;
monster.m_blood-=2;
}
}
Monster.java:
public class Monster //怪物类
{
private String m_name;
public int m_blood=100;
public void setName(String newName)
{
m_name=newName;
}
public void pk(Soldier soldier)
{
m_blood-=2;
soldier.s_blood-=5;
}
}
Test.java:
public class Test
{
public static void main (String []args) throws Exception
{
Monster monster=new Monster();
monster.setName("zhanshi");
Soldier soldier=new Soldier();
soldier.setName("guaiwu");
monster.pk(soldier);
soldier.pk(monster);
while(monster.m_blood!=0||soldier.s_blood!=0)
{
if(monster.m_blood==0)
System.out.println("Soldier wins");
else if(soldier.s_blood==0)
System.out.println("Monster wins");
else
monster.pk(soldier);
soldier.pk(monster);
}
}
}