类一般是 命名空间 的成员,所以声明的语法位置要书写在命名空间的内部第一层
类的结构:
[可访问修饰符] class [类的名称] { 类的成员声明 }
* 字段成员声明 要求:
* [可访问修饰符][修饰符] [字段类型] [字段名称][=初始值];
* 构造函数声明:
[可访问修饰符] [方法名要求和类名相同](方法参数列表){
封装语句
}
方法成员声明:
[可访问修饰符][修饰符][返回值类型] [方法名称](方法参数列表){
* 封装语句
* }
* }
类:是允许自定义类型的一种方式
* 定义创建指定类型对象的过程
* 像是一个工厂,能够通过指定的过程创建出结果,保证结果有需要的功能
* 使用类型创建对象的过程叫实例化,创建的结果称为 实例对象,也可以简称为对象
* 声明的类 可以有两种用法:1. 作为类型使用 2. 作为创建对象的函数使用
可访问修饰符分为:public 公开的 internal 内部的(默认的)
* 修饰符:static 静态的
* 类名:遵从大驼峰命名规则 (每个首字母大写) 小驼峰命名规则(开头首字母小写其他字母开头大写)
*
* 类是用来创建对象的。 也可以表示事物的类型
* 对象是用来表示具体事物的,是真实世界中事物的代码表示方式。
*
* 事物的具体表示方式有两类:是数据和操作的行为
* 对象中的数据 => 类中的字段 字段表示定义对象中如何存储数据,(字段就是数据的名称)
* 对象中能够执行的行为 => 类中的方法
类是约定对象怎么创键,并且只能限制只能这样创建
类:就是把逻辑上相关的变量声明和函数声明整理为一个集合
对象:就是把逻辑上相关的变量值和函数整理为一个集合
例子
//partial 分部; 部分的 ,可以将类的声明进行拆分,但是拆分后类的内容仍然可以相互使用
internal partial class People
{
//字段 的声明
//字段可以理解为在类范围内声明 的变量
public string Name; //string引用类型 声明 string 字符串类型 ; 表示名字
public int Agg;//首先先声明一个整数 int 类型 ;表示年龄
public string Sex; //声明一个 string 类型表示性别
//构造函数
//构造函数不需要手动执行 , 在使用new 关键字创建对象时,会自动执行
public People(string sex)
{
Console.WriteLine("构造函数" + Name);
Sex = sex;
//作用: 是能够更加方便的自定义创建对象,补充初始化效果
}
//方法 例子 //方法就是来操作数据的
public void Greeting(string msg) //为了让打招呼不是单一的(变为可改变的)设置一个参数 //声明一个 string 类型的 参数msg
{
Console.WriteLine($"Hello, {msg}!"); //方法的声明
}
//年龄增长方法 目的让年龄增大一岁
public void Grow()
{
//在类范围内 ,可以使用其他成员作为自己逻辑的一部分
//this 可以不写 在新的语法堂可以略
this.Agg++;
Greeting("又长大一岁");
}
}
在Main中
internal class Program
{
static void Main(string[] args)
{
//根据声明的类创建对象 //在同一个空间内是可以随意使用的
People p = new People("男")
{
//初始化表达式:补充字段的值
Name = "张三",
Agg = 18
};
//使用 点操作符 通过 公开字段 获取对象内部存储的数据
int age = p.Agg;
Console.WriteLine(age); //表示输出年龄18
//也可以使用 点操作符 对对象内部的值进行修改
Console.WriteLine("旧值" + p.Name);
p.Name = "法外狂徒"; //使用 点 操作符对名字值进行修改
Console.WriteLine("新值" + p.Name);
//方法通过 点操作符 获取 ,然后在方法名后面添加 小括号,
//表示执行方法内部的语句
//p.Greeting("world"); //通过名字执行hello world
//p.Greeting("CSharp"); //使用string nge 方法可以变化输出
p.Grow();