Java程序出现问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:42:57
以下是Java的代码:

package com.bjsxt;

public class Cat{
private static int sid = 0;
private String name;
int id;
public Cat(String name) {
this.name = name;
id = sid++;

}

public void info(){
System.out.println("My name is "+name+" No."+id);
}

}

import com.bjsxt.Cat;

public class Dog{
public static void main(String[] args){
Cat c = new Cat("angel");
c.sid = 3000;
c.info();
}
}

运行后出现错误:sid可以在Cat中访问private

不明白哪里出错了,请高手指教,谢谢。

用private修饰的成员变量或方法 只能在本类里使用。
明白这点....
我相信你就能明白错误的根源了.....

private 声明的变量只能在本类或者内部类里面访问。。

sid 在Cat里面可以
在Dog里面是不能访问的。

原因出在:sid,name 都是私有成员变量(而且sid是静态变量),它们是不能在外部文件中调用直接引用。1.可以将其类型设置为默认,2.也可在Cat中设一成员方法通过该方法来引用sid,name值。

sid是Cat类的私有静态变量,只能通过Cat对象的成员函数去访问.c是Cat的对象,c.sid这样的访问方式是不允许的.

name属性都被封装了,无法被Dog访问,在Cat中加入set、get方法就行了

用private修饰的成员 在其他类中无法直接访问,需要加上getXXX方法.