class Cat{
private static int sid;
private String   name;
 int id;Cat (String name){
this.name=name;
id=sid++;}
public void info(){
System.out.println("name :"+name,"id :"+id);
}
}

public class TestCat{
public static void main(String   arg[]){
Cat.sid=100;
Cat mimi=new Cat("mimi");
Cat cici=new Cat("cici");
mimi.info();
cici.info();
}
}

解决方案 »

  1.   

    class Cat {
    private static int sid;
    private String name;
    static int id; Cat(String name) {
    this.name = name;
    id = sid++; } public void info() {
    System.out.println("name :" + name+", id :" + id);
    }
    }public class TestCat {
    public static void main(String arg[]) {
    Cat.id = 100;
    Cat mimi = new Cat("mimi");
    Cat cici = new Cat("cici");
    mimi.info();
    cici.info();
    }
    }
      

  2.   

    class Cat{ 
    static int sid; 
    private String   name; 
     int id; Cat (String name){ 
    this.name=name; 
    id=sid++; } 
    public void info(){ 
    System.out.println("name :"+name+"id :"+id); 

    } public class TestCat{ 
    public static void main(String   arg[]){ 
    Cat.sid=100; 
    Cat mimi=new Cat("mimi"); 
    Cat cici=new Cat("cici"); 
    mimi.info(); 
    cici.info(); 

    }
    改好了
      

  3.   

    System.out.println("name :"+name,"id :"+id);  //这行"name :"+name,+"id :"+id应该是 "name :"+name+",id :"+id
    sid在上面定义成private在main中是访问不到的
      

  4.   

    以下问题:
    1.System.out.println接收的参数是String而不是String,String.
    2.private约束的变量,除了自己,其他的类不能直接调用。
      

  5.   

    <java>
    class Cat {
    private static int sid;
    private String name;
    int id; Cat(String name) {
    this.name = name;
    id = sid++; } public void info() {
    System.out.println("name :" + name+ "id :" + id);
    } public static void main(String arg[]) {
    Cat.sid = 100;
    Cat mimi = new Cat("mimi");
    Cat cici = new Cat("cici");
    mimi.info();
    cici.info();
    }
    }
    </java>
      

  6.   

    “sid在上面定义成private在main中是访问不到的”
    为什么访问不到?
    那为什么private String   name; 中的name加了private就可以访问了?
      

  7.   

    为什么Cat mimi = new Cat("mimi"); 
    Cat cici = new Cat("cici"); 
    中的cici要加引号》?如果我定义的构造函数是Cat(double x){}那么我再new一个cat需要加引号?
    为什么?
      

  8.   

    你的name也没有访问阿,是在构造的时候传进去的name的值
      

  9.   

    class Cat {
        public static int sid;
        private String name;
        int id;    Cat(String name) {
            this.name = name;
            id = sid++;    }    public void info() {
            System.out.println("name :" + name+", id :" + id);
        }
    }public class TestCat {
        public static void main(String arg[]) {
            Cat.sid = 100;
            Cat mimi = new Cat("mimi");
            Cat cici = new Cat("cici");
            mimi.info();
            cici.info();
        }
    }我觉得lz是这个意思,sid是Cat类的初始化标示,id是每个cat的标示,应此用构造函数的时候id=sid++。
    因此,改的话把main函数里面Cat.id=100改为Cat.sid=100,并把sid标为public即可。
      

  10.   

    public class TestCat 去掉"public"关键字
      

  11.   

    同意 四,五,六楼的
    private 修饰的变量只能够被自己本身的类所访问,你如果想要被其他类使用的话可以使用其他的访问修饰符,如protected等