1、猜数字游戏
一个类A有一个实例变量v,从键盘接收一个正整数作为实例变量v的初始值。
另外再定义一个类B,对A类的实例变量v进行猜测。
- 如果大了则提示大了
- 小了则提示小了
- 等于则提示猜测成功
public class GuessFigure {
public static void main(String[] args) {
//创建对象A(此处并未使用随机生成数字random方法随机生成数字,而采用了赋值)
A a = new A(100);
//创建对象B
B b = new B(a);
//开始猜测(调用java中的System.in保证输入数字)
java.util.Scanner s = new java.util.Scanner(System.in);
//使用while判断,保证当猜测错误时候可以继续猜测,直到猜测成功返回(因为B类中猜测正确时候有终止语句)
while(true) {
System.out.println("请输入你猜测的数字:");
int number = s.nextInt();
b.guess(number);
}
}
}
class A {
//私有变量v,表示数字
private int v;
//无参构造
public A() {
}
//有参构造
public A(int v) {
this.v = v;
}
//getting and setting
public int getV() {
return v;
}
public void setV(int v) {
this.v = v;
}
}
class B {
//将A与B建立起联系(通过B猜测A,需要有一个A对象的引用)
private A a;
//无参构造
public B() {
}
//有参构造
public B(A a) {
this.a = a;
}
//getting and setting
public A getA() {
return a;
}
public void set(A a) {
this.a = a;
}
//猜数字方法(参数值是猜测的数字)
public void guess(int number) {
//调用本类中的getA方法中的a,a属于A类型,可以调用a.getV方法来返回原值
//因为在本类中,a可以直接调用,不必使用方法来调,所以this.getA().getV()可以写作a.getV()
if(number == this.getA().getV()){
System.out.println("猜测成功!");
//如果猜测正确,结束运行(退出JVM)
System.exit(0);
}else if(number < this.getA().getV()){
System.out.println("猜小了!");
}else{
System.out.println("猜大了!");
}
}
}