JAVA简明摘要(二)拜访对象村(类与对象)

1 双类范例

测试用的类被命名为“受测试类”+TestDrive。

class Dog
{
  int size;
  String breed;
  String name;
  void bark()
  {
    System.out.println("Ruff Ruff!");
  }
}

class DogTestDrive
{
  public static void main (String[] args)
  {
    Dog d = new Dog();
    d.size=40;
    d.bark();
  }
}

测试结果

zhangzhenpings-MacBook-Air:JAVA sekiro$ javac Dog.java
zhangzhenpings-MacBook-Air:JAVA sekiro$ java DogTestDrive
Ruff Ruff!



2 JAVA内存管理

创建对象时,对象会被存放在堆的内存区域中。
JAVA会根据对象的大小动态分配内存空间,并会主动管理内存。


3猜数字游戏

class Player
{
  int number = 0;
  public void guess()
  {
      number = (int) (Math.random()*10);
      System.out.println("I'm guessing " + number + ".");
  }
}

class GuessGame
{
  Player p1;
  Player p2;
  Player p3;

  public void startGame()
  {
    p1 = new Player();
    p2 = new Player();
    p3 = new Player();

    int guessp1 = 0;
    int guessp2 = 0;
    int guessp3 = 0;

    boolean p1isRight = false;
    boolean p2isRight = false;
    boolean p3isRight = false;

    int targetNumber = (int) (Math.random()*10);
    System.out.println("I'm thinking a number between 0-9.");
    
    while(true)
    {
       System.out.println("Number to guess is " + targetNumber + ".");
       
       p1.guess();
       p2.guess();
       p3.guess();

       guessp1 = p1.number;
       System.out.println("Player one guessed " + guessp1 + ".");
       guessp2 = p2.number;
       System.out.println("Player two guessed " + guessp2 + ".");
       guessp3 = p3.number;
       System.out.println("Player three guessed " + guessp3 + ".");

       if (guessp1 == targetNumber)
          p1isRight = true;
       if (guessp2 == targetNumber)
          p2isRight = true;
       if (guessp3 == targetNumber)
          p3isRight = true;

       if (p1isRight || p2isRight || p3isRight)
       {
          System.out.println("We have a winner!");
          System.out.println("Player one got it right? " + p1isRight);
          System.out.println("Player two got it right? " + p2isRight);
          System.out.println("Player three got it right? " + p3isRight);
          System.out.println("Game Over!");
          break;
       }//end if
       else
         System.out.println("Try again!");
    }//end while
  }
}

class GameLauncher
{
  public static void main (String[] args)
  {
    GuessGame game = new GuessGame();
    game.startGame();
  }
}

测试结果

zhangzhenpings-MacBook-Air:JAVA sekiro$ javac GuessNumber.java 
zhangzhenpings-MacBook-Air:JAVA sekiro$ java GameLauncher
I'm thinking a number between 0-9.
Number to guess is 1.
I'm guessing 3.
I'm guessing 0.
I'm guessing 2.
Player one guessed 3.
Player two guessed 0.
Player three guessed 2.
Try again!
Number to guess is 1.
I'm guessing 5.
I'm guessing 0.
I'm guessing 6.
Player one guessed 5.
Player two guessed 0.
Player three guessed 6.
Try again!
Number to guess is 1.
I'm guessing 0.
I'm guessing 1.
I'm guessing 1.
Player one guessed 0.
Player two guessed 1.
Player three guessed 1.
We have a winner!
Player one got it right? false
Player two got it right? true
Player three got it right? true
Game Over!
zhangzhenpings-MacBook-Air:JAVA sekiro$ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值