java代码的问题~~~~

来源:百度知道 编辑:UC知道 时间:2024/05/22 00:40:21
class A //头疼
{
private int a; //一个私有的成员变量
public void setA(int x) //公有方法
{
a=x;
}
public int getA() //公有方法
{
return a;
}
}

public class ClassDemo
{

public static void main(String[] args) throws IOException//4-1前无此语句
{

A a=new A(); //创建一个类A的实例赋给类型为A的对象变量a
a.setA(5); //通过a调用这个对象的方法setA
int i=a.getA(); //通过a调用这个对象的方法getA
System.out.println("i = "+i);
}

}

//在这里a.setA(5); 把5的值传递给了类A里的私有变量a
//这里 int i=a.getA(); 我知道是i调用了getA();方法返回了a的值
//可是"i = "+i这里就是把i也就是私有变量a的值打印出来
//这样解释对吗?
//可是我脑子里还是有点迷糊,不知道是为什么

上面的代码.有什么可以用别的方式写出来的吗??

这就是类的封装性
其实程序中你也可以这样写
public int a;//即将类A的成员变量设置为共有变量
这样的话就不用setA()和getA()方法了,因为可以直接用类名.成员变量的方法来访问A对象的a值,即
A a = new A();
a.a = 2;
System.out.println(a.a);
这样写就行了
但是一般做程序都将类的成员变量设为私有变量,即防止一个类的对象值被任意更改,如果需要更改,必须调用set()方法,一般情况下,set()和get()方法是成对出现的,这也可以说是java的规范

a.setA(5); //对a对象的成员赋值
int i=a.getA(); //通过a对象中的成员给i赋值
//"i = "+i这里就是把i的值打印出来,但i不属于你定义的类,它只是值与私有变量a的值相同。