数据的表示和存储模式:
- 基本类型和数组
- 结构体
- 带方法的结构体(类)
假定有一java类cat。
Java中开辟空间:
Cat c = new Cat();
数组的使用:
int[]a = new int[3];
int[][]b = new int[2][3];
随便模拟一个教科书式的类
/**
*
*/
package stu355.off003.listen;
/**
* 一个模拟两个枪手互相设计的小游戏类
* @author Moso31
*
*/
class Shooter{
String mName;
int mHP;
int mAmmo;
/**
* 枪手的构造函数
* @param name 枪手的姓名
* @param ammo 枪手的弹药数量
*/
Shooter(String name, int ammo){
mName = name;
mHP = 100;
mAmmo = ammo;
}
/**
* 枪手向敌人射击时的触发函数
* @param eName 敌人的名称
*/
void shoot(Shooter eName){
//如果没有生命值或弹药,则跳出开枪函数
if (!checkAmmo(true)) return;
int damage = (int) (Math.random() * 100);
System.out.println(mName + " 向 " + eName.mName + " 开了一枪,对其造成伤害 " + damage);
mAmmo -= 1;
eName.mHP -= damage;
eName.checkHP(true);
}
/**
* 检查枪手是否还有生命值
* @param 是否在控制台打印系统消息
* @return true 枪手还能存活
*/
boolean checkHP(boolean vol){
if (mHP <= 0 && vol) System.out.println("枪手 " + mName + " 不慎挂掉了...");
return mHP > 0;
}
/**
* 检查枪手是否还有子弹
* @param 是否在控制台打印系统消息
* @return true 枪手还有子弹
*/
boolean checkAmmo(boolean vol){
if (mAmmo <= 0 && vol) System.out.println("枪手 " + mName + " 弹夹空了...");
return mAmmo > 0;
}
}
public class HomeWorkShooter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Shooter a = new Shooter("James", 2);
Shooter b = new Shooter("Eoviya", 3);
while(a.checkHP(false) && b.checkHP(false) && (a.checkAmmo(false) || b.checkAmmo(false))){
if (a.checkHP(false)) a.shoot(b);
if (b.checkHP(false)) b.shoot(a);
}
}
}
模拟彩票抽奖36选7的函数
package stu355.off003.listen;
/**
* 记录每组36选7的类。
* @author Moso31
*
*/
class NumberArray{
int len = 36;
int a[] = new int[len];
int b[] = new int[7];
NumberArray(){
for(int i=0;i<len;i++) a[i] = i;
}
/**
* 从剩余的数中抽取x个数
* @param x 抽取的数的数量
*/
void ChooseNumber(int x){
for(int i=0;i<x;i++){
int n = (int) (Math.random() * len);
b[i] = a[n] + 1;
deleteInArray(n);
}
}
/**
* 从数列中删除数x,数列抽取出一个数的时候调用
* @param x 被删除的数
*/
void deleteInArray(int x){
len--;
for(int i=x;i<len;i++) a[i] = a[i+1];
}
/**
* 打印随机出来的36进7的数字
*/
void print7Num(){
for(int i=0;i<7;i++) System.out.print(b[i] + " ");
System.out.println();
}
/**
* 打印a数组,仅作测试之用
*/
void print36Num(){
for(int i=0;i<len;i++) System.out.print(a[i] + " ");
System.out.println();
}
}
/**
* 36选7函数主类。
* @author Moso31
*
*/
public class HomeWork7in36 {
/**
* 承载随机数列的主函数。
* @param args
*/
public static void main(String args[]){
NumberArray a = new NumberArray();
a.ChooseNumber(7);
a.print7Num();
}
}