写在前面:在面向对象编程中,最提倡的是通过调用方法来改变自己的属性,类应当提供操作数据的方法,这些方法需要编程人员进行精心设计。
首先声明,一个类中的实例变量总是可以操作该类中的实例变量和类变量,类变量只可以操作该类中的类变量,与访问限制符无关。
1、私有变量和私有方法private
如果类中的某个成员是私有变量,那么在另外一个类中,不能通过类名调用这个变量,方法也是一样。
对于私有变量和方法只有在本类中创建对象时,这个对象才可以访问私有成员变量和类中的方法。
class AAA()
{
public intmoney;
private intgetMoney(){
returnmoney;
}
publicstatic void main(String[] args)
{
AAAexa=new AAA(); //对象exa在AAA类中有效
exa.money=3000;
intm=exa.getMoney();
System.out.println("money="+m);
}
}
但是如果换成这样的就不行了
class AAA()
{
public intmoney;
private intgetMoney(){
returnmoney;
}
}
class E
{
publicstatic void main(String[] args)
{
AAAexa=new AAA(); //对象exa在E类中,不在AAA类中,因此下面两个调用是非法的
exa.money=3000; //调用非法
intm=exa.getMoney(); //调用非法
System.out.println("money="+m);
}
}
在面向对象编程中,最提倡的是通过调用方法来改变自己的属性,类应当提供操作数据的方法,这些方法需要编程人员进行精心设计的,这就需要将变量名定义为私有的private。有时候可以直接通过类名对变量进行定义,但是最好还是利用方法。
2、共有变量和共有方法
利用public进行修饰,可以通过类名直接调用,
先创建对象,然后利用对象进行调用。
3、友好变量和友好方法,即不用private、public、protected修饰符的成员变量和方法。
在同一个包里面的类可以通过类名访问类中的友好变量和友好方法,但是,如果利用import引入了另一个包中的类,并用该类创建了一个对象,那么该对象将不能访问自己的友好变量和友好方法。
4、受保护的成员变量和成员方法
用protected修饰的成员变量和成员方法被称为受保护的成员变量和成员方法。基本用法和友好变量和友好方法一样,但是也有区别。