Object oriented java sample exam

后端 未结 6 448
南笙
南笙 2021-01-25 15:52
public class Bird
{
  private static int id = 0;
  private String kind;

  public Bird(String requiredKind)
  {
    id = id + 1;
    kind = requiredKind;
  }

  public S         


        
相关标签:
6条回答
  • 2021-01-25 16:06

    Because the id is static. That means that is a "Class variable/field" and there is only one per Class. All the instances of that Class share it the same id (indeed calling it "id" feels kinda weird).

    See here

    0 讨论(0)
  • 2021-01-25 16:14

    because we are calling toString in the end. When toString takes value of id to return its always 2. Better to print references one by one .

    0 讨论(0)
  • 2021-01-25 16:18

    in addition to static variable 'for' loop only put

    System.out.print(birds[i]);
    

    not

    System.out.println(birds[i]);
    

    so until end of execute 'for' loop it print only one Line because 'for' loop have not {} bracket it loop only one line

    0 讨论(0)
  • 2021-01-25 16:22

    because here private static int id = 0; id is declared static or class variable. Static variables are class variable they are not initialized or created every time an object is created.

    So, only one copy of static variable exist. No, new copies are created when object are created using new operator.

    0 讨论(0)
  • 2021-01-25 16:25

    Since the id field is static, it will have the same value throughout (and outside of) all instances of Bird.

    After creating two Bird objects, the constructor will have been called twice, therefore the id will be 2.

    See: Understanding Instance and Class Members

    0 讨论(0)
  • 2021-01-25 16:25

    static variables are shared across objects unlike instance variables. So when this executes

    birds[0] = new Bird("falcon");
    

    the id increments to 1. After that the below is executed incrementing it to 2

    birds[1] = new Bird("eagle");
    
    0 讨论(0)
提交回复
热议问题