
private 私有制...只能自己内部类使用...继承的类也只能通过调用它的函数对它进行传值。
get set是自己定义的一个方法。你可以用别的方法替代。
不直接的对属性操作,不是防止其他类修改
java 中将成员变量设置为private是为了防止其他类修改变量,但是用get.set方法后不也就是一样可以修改了么
按照你的说法,既然是为了防止其他累修改变量,但是你有没有想过,其他类(除了继承的类)可以调用该类set,get方法吗?我想是不可以的,这样就对自己的成员起到了保护的作用,也就是安全。不知对你的问题有没有指导作用,呵呵。。。
其实说得明白点吧,这只是java类(特别的很多时候是一个javabean)的两个方法,以提供对某个变量(字段)设置与访问的两个入口,在很多时候也正如你说,跟定义成public是没有两样的,具体的原因在于:
(1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。