我们已经知道:当用一个类创建了一个对象之后,该对象可以通过“.”运算符访问自己的变量和方法。但访问自己的变量和方法有一定的限制,通过修饰符private、privatprotected、protected和public来说明访问权限。
1. private( 私有变量和私有方法)
用private修饰的成员变量和方法被称为私有变量和私有方法。如:
class Tom
{ private float weight; //weight被修饰为私有的float型变量。
private float f(float a,float b) //方法 f是私有方法。
{ … …
}
… …
}
当我们在另外一个类中用类Tom 创建了一个对象后,该对象不能访问自己的私有变量和私有方法。如:
class Jerry
{
void g()
{ Tom cat=new Tom();
cat.weight=23f //非法。
cat.f(3f,4f); //非法。
… …
}
2.public(共有变量和共有方法)
用public修饰的成员变量和方法被称为共有变量和共有方法。如:
class Tom
{ public float weight; //weight被修饰为public的float型变量。
public float f(float a,float b) //方法 f是public方法。
{ … …
}
… …
}
当我们在另外一个类中用类Tom 创建了一个对象后,该对象能访问自己的public和public方法。如:
class Jerry
{ void g()
{ Tom cat=new Tom();
cat.weight=23f //合法。
cat.f(3,4); //合法。
}
}
3.友好变量和友好方法
不用修饰符的成员变量和方法被称为友好变量和友好方法。如:
class Tom
{ float weight; //weight是友好的float型变量。
float f(float a,float b) //方法 f是友好方法。
{ … …
}
… …
}
当我们在另外一个类中用类Tom 创建了一个对象后,如果这个类与类Tom在同一个包中,那么该对象能访问自己的友好变量和友好方法(Friend)。假如类Jerry与Tom在同一个包中,
class Jerry
{ void g()
{ Tom cat=new Tom();
cat.weight=23f //合法。
cat.f(3,4); //合法。
}
}
注1:您在源文件中编写命名的类总是在同一包中的。
注2:如果你在源文件中用import语句引入了另外一个包中的类,并用该类创建了一个对象,那么该类的这个对象将不能访问自己的友好变量和友好方法。
注3:如果一个类被修饰为public 的,如:
public class A
{ … …
}
那么你可以在任何另外一个类中,使用该类创建对象。如果一个类不加任何修饰,如:
class A
{… …
}
那么你在另外一个类中使用这个类创建对象时,要保证它们是在同一包中。