对象 | 看得见,摸得到,具体的,特指的,类的实列化(某某人) |
属性 | 对象具有的各种特征(某某人的特征) |
属性值 | 描述这个特征的值 |
方法 | 行为,动作,执行的操作(一个人的行为动作) |
类 | 像是模板(人类) |
类的实列化
语法:类名 实例名=new 类名();
类成员的访问:
实例名.属性 实例名.方法名();
类的成员:
字段、方法、属性(都需要定义访问级别)
private string _name; //(字段)
public string Name //(属性)
{
get { return _name; } //(只读属性-读值)
set { _name = value; } //(只写属性-赋值)
}
public void Say() //方法
{
Console.WriteLine("我叫{0},今年{1}岁,是{2}生,语文{3},数学{4},英语{5},", this.Name, this.Age, this.Gender, this.Chinese, this.Math, this.English);
//this是指示代词
}
构造函数
好处:1.减少了麻烦,繁琐的赋值。2.更加安全
访问修饰符 类名(参数)
{
this.字段名=参数名
...
}
外部访问
类名 实例名=new 类名(参数值);
public Person(string name,int age,char gender,int chinese,int math,int english)
{
this._name = name;
this._age = age;
this._gender = gender;
this._chinese = chinese;
this._math = math; //this后面为什么不写属性名,因为下面的属性只有get,没有set,而字段既有get,也有set
this._english = english;
}
主程序
static void Main(string[] args)
{
Person zhangshan = new Person("张三", 18, '男', 90, 93, 94);
zhangshan.Say();
Person xiaolan =new Person("小兰", '女');
xiaolan.Say();
Console.ReadKey();
}
这就可以实现调用显示,下面是逻辑图
命名空间(用于解决类重名的问题-可以在不同的命名空间下调用类)
步骤:
1.引用
2.导入命名空间
3.①using _命名空间的名称,就可以直接实列化,使用里面的类了
②_命名空间名称.类名 实例名=new _命名空间名称.类名()
第一种:
using _03构造函数讲解;
namespace _08命名空间
{
class Program
{
static void Main(string[] args)
{
Person p = new Person("思雪",'女');
p.Say();
Console.ReadKey();
}
}
}
第二种:
namespace _08命名空间
{
class Program
{
static void Main(string[] args)
{
_03构造函数讲解.Person p =new Person("思雪",'女');
p.Say();
Console.ReadKey();
}
}
}