当前位置: 技术问答>java相关
一个有关访问权限测试的问题!
来源: 互联网 发布时间:2015-07-08
本文导语: 我想测试一下protected 类型的属性和方法能否被不再同一个包中的子类访问, 设计了如下程序: package shipping.reports; public class accessTest { protected int year=5; protected int getYear() { return year; } } 存放在 h:shippingrepor...
我想测试一下protected 类型的属性和方法能否被不再同一个包中的子类访问,
设计了如下程序:
package shipping.reports;
public class accessTest
{
protected int year=5;
protected int getYear()
{
return year;
}
}
存放在 h:shippingreports文件夹下面
package bus.reports;
import shipping.reports;
public class accessProtected extends accessTest
{
int i;
public static void main(String args[])
{
accessProtected ap = new accessProtected();
i=ap.getYear();
System.out.println(i);
}
}
存放在 h:busreports 文件夹下面
javac accessProtected.java时报错:
accessProtected.java:2: package shipping does not exist
import shipping.reports;
^
accessProtected.java:3: cannot resolve symbol
symbol : class accessTest
location: class bus.reports.accessProtected
public class accessProtected extends accessTest
^
accessProtected.java:9: non-static variable i cannot be referenced from
a static
context
i=ap.getYear();
^
accessProtected.java:9: cannot resolve symbol
symbol : method getYear ()
location: class bus.reports.accessProtected
i=ap.getYear();
^
accessProtected.java:10: non-static variable i cannot be referenced
from a stati
c context
System.out.println(i);
^
5 errors
请教:我应该在编译命令行加上什么参数?
这个程序运行的结果会是什么?
设计了如下程序:
package shipping.reports;
public class accessTest
{
protected int year=5;
protected int getYear()
{
return year;
}
}
存放在 h:shippingreports文件夹下面
package bus.reports;
import shipping.reports;
public class accessProtected extends accessTest
{
int i;
public static void main(String args[])
{
accessProtected ap = new accessProtected();
i=ap.getYear();
System.out.println(i);
}
}
存放在 h:busreports 文件夹下面
javac accessProtected.java时报错:
accessProtected.java:2: package shipping does not exist
import shipping.reports;
^
accessProtected.java:3: cannot resolve symbol
symbol : class accessTest
location: class bus.reports.accessProtected
public class accessProtected extends accessTest
^
accessProtected.java:9: non-static variable i cannot be referenced from
a static
context
i=ap.getYear();
^
accessProtected.java:9: cannot resolve symbol
symbol : method getYear ()
location: class bus.reports.accessProtected
i=ap.getYear();
^
accessProtected.java:10: non-static variable i cannot be referenced
from a stati
c context
System.out.println(i);
^
5 errors
请教:我应该在编译命令行加上什么参数?
这个程序运行的结果会是什么?
|
1 . import shipping.reports;
应为import shipping.reports.accessTest;或import
shipping.reports.*;
即import 时要指明类而不是包。
2. 第二个类中的i 应为static int i;否则main 函数就不能访问,因为main函数是静态的。静态的函数不能访问,非静态的外部变量。
3。修改后执行结果为:5
应为import shipping.reports.accessTest;或import
shipping.reports.*;
即import 时要指明类而不是包。
2. 第二个类中的i 应为static int i;否则main 函数就不能访问,因为main函数是静态的。静态的函数不能访问,非静态的外部变量。
3。修改后执行结果为:5
|
你这程序编都编不过,怎么会运行?真是的.