黑马程序员技术交流社区
标题:
关于属性中get/set时遇到的问题
[打印本页]
作者:
岳珅
时间:
2013-1-29 23:16
标题:
关于属性中get/set时遇到的问题
本帖最后由 岳珅 于 2013-1-29 23:48 编辑
为什么为什么,在类文件里,那个sex不是已经用if判断了么,小兰那里我输入的也是女,说明判断成立了,就把value的值赋给sex了啊,为什么一输出就说小兰是男的呢。。。
/*定义一个学生类,有六个属性,分别为姓名、性别、年龄、语文、数学、英语成绩。
有2个方法:
一个打招呼的方法:介绍自己叫XX,今年几岁了。是男同学还是女同学。
两个计算自己总分数和平均分的方法。{显示:我叫XX,这次考试总成绩为X分,平均成绩为X分}
实化两个对象并测试:
张三 男 18 三科成绩为:90 95 80
小兰 女 16 三科成绩为:95 85 100*/
namespace test6
{
class Program
{
static void Main(string[] args)
{
Student zsStu = new Student();
Student xlStu = new Student();
zsStu.Sex = '男';
zsStu.Age=18;
zsStu.Name = "张三";
zsStu.Ch = 90;
zsStu.Eng = 95;
zsStu.Ma = 80;
xlStu.Sex ='女';
xlStu.Age = 16;
xlStu.Name = "小兰";
xlStu.Ch = 95;
xlStu.Eng = 85;
xlStu.Ma = 100;
zsStu.SayHi();
xlStu.SayHi();
zsStu.Score();
xlStu.Score();
Console.ReadKey();
}
}
}
复制代码
上面的是主函数,下面的是类。
namespace test6
{
class Student
{
private string name;
public string Name
{
get { return name; }
set
{
if (name == "黑马老师")
name = "好老师";
else
name = value;
}
}
private char sex;
public char Sex
{
get { return sex; }
set
{
if (sex == '男' || sex == '女')
{
sex = value;
}
else
{
sex = '男';
}
}
}
private int age;
public int Age
{
get { return age; }
set
{
age = value >= 0 ? value : 0;
}
}
private int ch;
public int Ch
{
get { return ch; }
set
{
ch = value >= 0 ? value : 0;
}
}
private int ma;
public int Ma
{
get { return ma; }
set
{
ma = value >= 0 ? value : 0;
}
}
private int eng;
public int Eng
{
get { return eng; }
set
{
eng = value >= 0 ? value : 0;
}
}
public void SayHi()
{
Console.WriteLine("你好,我叫{0},我今年{1}岁了,我是{2}生。",name,age,sex);
}
public void Score()
{
Console.WriteLine("你好,我叫{0},我的总成绩是{1},平均成绩是{2}。",name,ch+ma+eng,(ch+ma+eng)/3);
}
}
}
复制代码
QQ截图20130129231529.jpg
(21.01 KB, 下载次数: 46)
下载附件
2013-1-29 23:16 上传
作者:
彭清贵
时间:
2013-1-29 23:48
你应该把‘男’赋给value,而不是sex
作者:
岳珅
时间:
2013-1-29 23:48
好了- -解决了。。。
if (sex == '男' || sex == '女')
这里不应该是sex而是value。。。
脑袋发热了。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2