java小问题??一些不明白的地方?

来源:百度知道 编辑:UC知道 时间:2024/06/30 21:26:11
public class Car {
private double speed;
private double distance;
public double getSpeed() {
return speed;
}

public void setSpeed(double speed) {
this.speed = speed;
}

public double getDistance() {
return distance;
}

public void setDistance(double distance) {
this.distance = distance;
}

}

这个getDistance和getSpeed应该是没用的吧 因为改变值是通过setDistance方法和setSpeed方法

写上getDistance和getSpeed又有什么用呢?我这样说对吗??

get*() 与 set*() 方法(简称'它们')可以说是相互共存的关系,它们的存在可以很方便我去使用类中的私有成员变量,(在这当中涉及到有关安全性的问题,有兴趣琢磨琢磨)但不是说它们必须同时使用,就拿你列出的程序说一下,如果在类外想访问(使用)car()类中的私有成员变量(speed)而不用到getSpeed()方法 那么就需要在类外创建car()了的变量,再通过变量来访问 私有成员变量(而这又体现不出oop面向对象思想) 所以 get*() 简单使用,看起来又成熟!

getDistance和getSpeed是获得他们值的方法,当然有用,
比如要写一个输出值的方法:
void display()
{
System.out.println("Distance is:"+getDistance())
}

先说下,所有以get开头的方法名称都是为了其他类方便 访问Car 类的成员属性,比如这里的速度(speed)和距离(distance)属性
如果没有这两个方法的话就不能在其他类里访问这些成员了,因为OOP(面向对象)的封装特性,需要将自己的数据封装起来,私有的属性不允许其他类随意访问的,所以提供两个国公有方法(getSpeed和getDistance)来进行访问

而set开头的方法就是为了修改我们的两个成员嘛

get set 访问器有很多用法,可以封装数据,还可以用来做数据同步
加上这个synchronized,可以保证只有一个线程在操作这个对象的数据.

这样可以避免用户直接的访问成员变量而造成安全性问题

这也是javabean的规范