匿名用户
1级
2014-05-06 回答
如果是同一个包的话,调用是比较简单的,主要看类里面数据的权限修饰符。
一 访问权限修饰符修饰成员变量和方法
public:表明该成员变量和方法是共有的,能在任何情况下被访问。
protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了)
Java代码
class A
{
protected int weight ;
protected int f( int a,int b )
{
// 方法体
}
}
假设B与A在同一个包中,则
Java代码
class B
{
void g()
{
A a=new A();
A.weight=100;//合法
A.f(3,4); //合法
}
}
特别说明:什么是在同一个包中?
答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)
eg:在JDK的src\java\io中,你会看到许多java类,第一句源代码都是package java.io;
没有使用package打包的,在同一目录下的类也会被视做同一个包。
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。
Java代码
class A
{
int weight ;
int f( int a,int b )
{
// 方法体
}
}
假设B与A在同一个包中,则
Java代码
class B
{
void g()
{
A a=new A();
A.weight=100;//合法
A.f(3,4); //合法
}
}
private: 只能在本类中访问。
Java代码
class Test
{
private int money;
Test()
{
money=2000;
}
private int getMoney()
{
return money;
}
public static void main(String args[])
{
Test te=new Test();
te.money=3000; //合法
int m=te.getMoney(); //合法
System.out.println("money="+m);
}
}
PS: 实际上,把重要的数据修饰为private,然后写一个public的函数访问它,正好体现了OOP的封装特性,是OOP安全性的体现。