能说的更详细些吗??那些私有变量和私有方法在子类中都没有吗??要是防止其他类访问这样的方法和变量是不是都设成protected的!!我说的对吗??
解决方案 »
- read() 一个Class类型数组 如何用?
- 请教个split的处理“|”的问题
- eclipse导出包,运行那个包出现:could not find the main class program will exit;
- java 写的fpt client在windows下可以正常下载,在unix下面为什么不行呢?(可以列出unix下的文件列表但是不能下载)
- 关于构造函数
- 请大家推荐一下java的反编译工具,谢谢
- 请问大侠们一个java语言的问题. 如果访问基类的基类的版本的方法?
- 关于JBuilder5的安装
- 本人用JAVA开发了一套简单的数据操作软件,需要源代码的请留下email.
- 我安装了jdk1.3后,怎么没有:。。。。。。
- 关于基础!!呵呵!!
- java简单问题一
private to their class. This program contains an error and will not
compile.
*/// Create a superclass.
class A {
int i; // public by default
private int j; // private to A void setij(int x, int y) {
i = x;
j = y;
}
}// A's j is not accessible here.
class B extends A {
int total;
void sum() {
total = i + j; // ERROR, j is not accessible here
}
}class Access {
public static void main(String args[]) {
B subOb = new B(); subOb.setij(10, 12); subOb.sum();
System.out.println("Total is " + subOb.total);
}
}
该程序不会编译,因为B中sum( )方法内部对j的引用是不合法的。既然j被声明成private,它只能被它自己类中的其他成员访问。子类没权访问它。
注意:一个被定义成private的类成员为此类私有,它不能被该类外的所有代码访问,包括子类。
为什么要定义成私有变量,就是不想让别人直接修改这个变量(修改之前先判断一下能不能修改),或者这个变量就是这个类内部使用的,跟外界没有什么关系。
如果是前者,就要定义一套Get和Set方法来访问和设置这个私有变量,当然你可以在这个Get和Set方法中定义自己的判断逻辑,不是合法的参数不会随便设置该私有变量的。
则这个变量或是方法就只能在本类中使用了
private 私有的 仅限本类中访问
protected 保护的 仅限本类和子类访问
public 公有的 任何能访问类的作用域均可以访问还有一种 没有以上三种修饰符,同一包内的类可以访问
private 私有的 仅限本类中访问,不能被子类继承
protected 保护的 仅限本类和子类访问,可以被子类继承
public 公有的 任何能访问类的作用域均可以访问,可以被子类继承还有一种 没有以上三种修饰符,同一包内的类可以访问,可以被子类继承