(1)代码的组成分为两个部分:函数以及变量
(2)对私有变量的引用:利用自定义public get()以及public set()函数,可以从外部调用此变量;
(3)继承与派生:大学与学校的关系;【暂时:子类可以将父类的私有变量也继承,只是private作为限制符,限制了使用权限】
(4)如果一个对象被强制转型,那他一定在某个地方被自动转型过;
(5)为什么需要使用转型:可以让同一个爸爸的不同儿子,都实现同一个方法,只要使用爸爸大人的方法就行。
(6)注意点:①常在父类定义一个空类型的构造函数;子类需要实现父类的构造函数,否则报错 ②
1. package com.cl.study0726v2;
2.
3. public class Manage {
4.
5. public static void main(String[] args) {
6. //创建Student类的对象 格式:类名 对象名 = new 类名();
7. //自动转型
8. UNStudent un = new UNStudent();
9. un.setName("申波");
10. // un.study();
11.
12. //强制转型
13. // UNStudent unst = (UNStudent)un;
14. // unst.print();
15.
16. Teacher t = new Teacher();
17. t.teach(un);
18.
19. }
20.
21. }
代码:
//OTM与怪兽互打
Manage.class
import java.util.Scanner;
public class Manage {
public static void main(String args[])
{
Otm oxiaoyi=new Otm();
Mostra mxiaoer=new Mostra();
oxiaoyi.setName("OTM");
mxiaoer.setName("MST");
oxiaoyi.setBlood(100);
mxiaoer.setBlood(90);
while ((oxiaoyi.getBlood()>0 )&& (mxiaoer.getBlood()>0))
{
System.out.println("请输入OTM的攻击值");
Scanner sac = new Scanner(System.in);
int oattack=sac.nextInt();
oxiaoyi.setAttack(oattack);
oxiaoyi.Attack(mxiaoer);
if(mxiaoer.getBlood()<=0)
break;
System.out.println("请输入怪兽的攻击值");
int mattack=sac.nextInt();
mxiaoer.setAttack(mattack);
mxiaoer.Attack(oxiaoyi);
}
}
}
Mostra.class
public class Mostra extends Object {
// private String mname;
// private int mblood;
// private int mattack;
// //获取函数
// public void setName(String n)
// {
// mname=n;
// }
// public String getName()
// {
// return mname;
// }
// public void setBlood(int b)
// {
// mblood=b;
// }
// Mostra(int m)
// {
// mblood=m;
// }
//
// public int getBlood()
// {
// return mblood;
// }
// public void setAttack(int a)
// {
// mattack=a;
// }
// public int getAttack()
// {
// return mattack;
// }
// //怪兽的打击之战
// //怪兽大otm,打掉了XX血量,otm剩余xx血量
// public void mostraAttack(Otm o)
// {
// //每打一次,otm掉k滴血(k=mattack)
// //每打一次怪兽掉5滴血
// o.setBlood(o.getBlood()-mattack);
// System.out.println(mname+"打"+o.getName()+",打掉了"+getAttack()+","+o.getName()+"剩余"+o.getBlood()+"血量");
// }
}
Otm.class
public class Otm extends Object {
// private String oname;
// private int oblood;
// private int oattack;
// Otm(int b)
// {
// oblood=b;
// }
// public void setName(String n)
// {
// oname=n;
// }
//
// public String getName()
// {
// return oname;
// }
// public void setBlood(int b)
// {
// oblood=b;
// }
// public int getBlood()
// {
// return oblood;
// }
//
// public void setAttack(int a)
// {
// oattack=a;
// }
// public int getAttack()
// {
// return oattack;
// }
//otm的打击之战
//otm打怪兽,打掉了k-1血量(攻击力为k),怪兽剩余XX血量
//
// public void otmAttack(Mostra m)
// {
// //每打一次,怪兽掉5滴血,
// m.setBlood(getBlood()-oattack);
// System.out.println(oname+"打"+m.getName()+",打掉了"+getAttack()+","+m.getName()+"剩余"+m.getBlood()+"血量");
// }
//OTM不僅可以打怪獸,還可以打BOSS
}
Boss.class
//BOSS是OTM和Mostra的父類
public class Object {
private String name;
private int blood;
private int attack;
public void Boss()
{
}
public void setName(String n)
{
name=n;
}
public String getName()
{
return name;
}
public void setBlood(int b)
{
blood=b;
}
public int getBlood()
{
return blood;
}
public void setAttack(int a)
{
attack=a;
}
public int getAttack()
{
return attack;
}
//otm的打击之战
//otm打怪兽,打掉了k-1血量(攻击力为k),怪兽剩余XX血量
//本BOss的擊打
//本boss打bo,打掉了bo的k-1血量(攻击力为k),bo剩余XX血量
public void Attack(Object bo)
{
//每打一次,怪兽掉5滴血,
bo.setBlood(getBlood()-attack);
System.out.println(name+"打"+bo.getName()+",打掉了"+getAttack()+","+bo.getName()+"剩余"+bo.getBlood()+"血量");
}
}