乌薪王
2018-10-24 00:04
比方说上面的性别,怎么写代码能让Main里赋值一次后就不允许第二次赋值或第二次无效
就像已经被赋值为男,下面在给同一个人赋值为女,下面的这个赋值命令无效
将属性设置为私有变量,然后只声明公有get方法,然后通过设置一个有参的构造方法,将你要设置的属性值在构造方法中赋值,这样在外部类访问的时候只能赋值一次且不可修改,可以通过公有的访问器方法获取属性值
我简写一点代码示例
前面头部和命名空间我省略
class Child{
private string name;
private char sex;
public Childern(string name,char sex){
this.name = name;//将传进来的值赋值给当前对象
this.sex = sex;
}
public string Name{
get {return name;}//只声明get访问器,不要声明set访问器
}
public char getSex(){
get{return sex;}//只声明get访问器,不要声明set访问器
}
}
这样你在其他的类中创建该对象时只有一次赋值操作,但是你要是在Child中写Main方法访问该值,那仍然是可以修改的,因为private的限制范围为“类私有”,只要不出了本类的作用域还是可以修改,但是在其他类新建了Child对象就不可以修改了,比如你在一个叫People的类中new了一个Child对象,这时通过构造器赋值的属性就不可以再修改了
用C#实现封装
78013 学习 · 182 问题
相似问题