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();
}
}
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();
}
}
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();
}
}
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();
}
}
改好了
sid在上面定义成private在main中是访问不到的
1.System.out.println接收的参数是String而不是String,String.
2.private约束的变量,除了自己,其他的类不能直接调用。
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>
为什么访问不到?
那为什么private String name; 中的name加了private就可以访问了?
Cat cici = new Cat("cici");
中的cici要加引号》?如果我定义的构造函数是Cat(double x){}那么我再new一个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即可。
private 修饰的变量只能够被自己本身的类所访问,你如果想要被其他类使用的话可以使用其他的访问修饰符,如protected等