您好,老师关于private修饰符的问题

您好,老师关于private修饰符的问题

package com.test;

/**

 * 职务类

 * @author Administrator

 *

 */

public class Position {

//职务编号

private int positionNumber;

//职务名称

private String locationName;

/**

* 职务类的无参构造方法

*/

public Position() {

}

/**

* 职务类的带参构造方法

* 实例化对象时传递 职务编号、职务名称 两个参数

* @param positionNumber

* @param locationName

*/

public Position(int positionNumber, String locationName) {

//设置职务编号

this.setPositionNumber(positionNumber);

//设置职务名称

this.setLocationName(locationName);

}


public int getPositionNumber() {

return positionNumber;

}

private void setPositionNumber(int positionNumber) {

this.positionNumber = positionNumber;

}

public String getLocationName() {

return locationName;

}

private void setLocationName(String locationName) {

this.locationName = locationName;

}


}

//这样写的话 是否就可以理解为positionNumber和locationName两个变量只能在实例化对象时改变变量内的数值。或者说,这两个变量只能在实例化时被赋值一次,其他情况如果不写其他public方法调用的话是无法改变的。
问题:
1.代码是我百度查了下private的用法自己写的,整个代码语法方面是否有错误
2.当有些情况只能赋值一次时,是否可以用这种写法
3.不添加其他方法的情况下,这种写法是否绝对安全
心里有这些疑问,请老师帮忙解答一下


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

我针对同学的问题依次回答,

http://img1.sycdn.imooc.com//climg/5bc86a8d0001495906820030.jpg

是的,只能在实例化时改变变量的数值。

1、整个代码语法方面没有错误,

2、通常情况下,我们只实例化一次,所以可以使用这种写法。

3、如果同学所说的安全是指在外部无法被改变的话,这种做法是安全的。

封装的意义在于将某些信息隐藏着类内部,不允许外部程序直接访问,通过该类中提供的方法来实现对隐藏信息的操作和访问。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • i极光 提问者 #1
    非常感谢!之前在课程中只学习了变量前加private的作用,您的解答解决了我的困惑,再次感谢!
    2018-10-18 19:16:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师