/// in java:
class Test
{
protected void prt()
{
System.out.println("HelloWorld");
}
}
public class ProtectedTest {
public static void main(String[]args)
{
Test t=new Test();
t.prt();
}
}
t为什么能够访问prt(),虽然我也知道protected是包内可见的,可是我搞不清楚包内可见究竟是什么意思
////in c++:
#include"iostream.h"
class CDate
{
protected:
void prt()
{
cout<<"Hello"<<endl;
}
};
void main()
{
CDate date;
date.prt();
}
这个就是错的,因为它是protected,那位解释一下这种情况
class Test
{
protected void prt()
{
System.out.println("HelloWorld");
}
}
public class ProtectedTest {
public static void main(String[]args)
{
Test t=new Test();
t.prt();
}
}
t为什么能够访问prt(),虽然我也知道protected是包内可见的,可是我搞不清楚包内可见究竟是什么意思
////in c++:
#include"iostream.h"
class CDate
{
protected:
void prt()
{
cout<<"Hello"<<endl;
}
};
void main()
{
CDate date;
date.prt();
}
这个就是错的,因为它是protected,那位解释一下这种情况
C++中则没有包的概念,它解决的命名冲突命名空间啊。
一样
第一个java程序两个class放在一个java文件里,显然在同一个包下
假如放在两个文件里,只要package是一样的,同样是在同一个包内的
楼主可以到放class文件的文件夹下看看,这两个类是在同一个文件夹下的
答:区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
答:区别如下:
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
protected 在声明的*.java 文件夹中(包内),可以使用!
在声明的*.java 以外的文件夹中(包内)是不可见的,是受保护的