类:是具有相同属性和行为特征的集合
对象:对象是类的实例化,它具有类定义的所有特征和行为。
类的语法格式:
访问修饰符 class关键字 类名
两种创建类的方式
第一种方式就是在类的下面再创建一个类
第二种方式是在文件中添加一个类
第一种创建类的方法,在 internal class Program{} 类的下面创建
// 创建一个汽车类
public class Car {}
第二种创建类的方法
右击当前项目文件 —> 选择添加 —> 添加一个类名
选择 类 —> 输入类名 —> 添加
类中的成员
类中的成员包含: 1.字段、2.属性、3.方法 还应该为每个类成员设置指定的访问修饰符
类中的成员访问修饰符主要有4个:
public:成员可以被任何代码访问
private:只能在当前类种访问(默认的)
nternal:一个项目种的代码可以访问
protected:成员自己或者是派生类能够访问
// 定义类中的成员变量
// 成员变量属于全局变量,当前类种都可以通用,全局变量本质上属于私有变量
private int b;
// 定义一个公有字段
public int c;
// 定义公有静态成员变量
public static int d; //默认值是0
public static string f; //默认值是null
public static int[] Arr; //默认值是null
// 如果是静态的数组,那么一定要初始化,因为不属于某个对象,而是属于当前类
public static string[] stringArr = new string[3];
// 如果在类中实现了函数,那么这个函数就叫做该类的方法
public void PenpleMethod1() {
// a属于局部变量,作用域是当前方法,超出这个范围就无法访问到了
int a = 1;
//方法内部可以访问外部的全局变量
b = 20;
Console.WriteLine(a);
Console.WriteLine(b);
}
//除了上述的变量类型以外,也可以把类,当作数据类型
//注意:如果属性是引用类型,那么一定要在使用的时候进行实例化(重新new一个新的对象)
public Car car;
public string myName;
//方法的传参参数也可以定义为引用类型
public bool getCar(Car aCar) {
//aCar代表的是Car类型的对象
if (aCar.carName == "保时捷") {
return true;
} else {
return false;
}
}
类的调用
// 使用类名调用类当前中的static修饰的变量
People.f = "100";
People.stringArr[0] = "测试";
Console.WriteLine(People.stringArr[0]); //测试
// 如果没有static修饰的变量,则代表属于实例对象调用的变量,
// 需要先创建该类对于的实例对象
// 类名 对象名 = new 构造函数();
People p1 = new People();
// 注意:对象可以创建多个,一个对象代表一个当前类的实例(会占用一块内存)
// c在这里面就叫做p1这个对象的属性
p1.c = 666; //赋值
Console.WriteLine(p1.c); //666 取值
p1.PenpleMethod1(); //打点 . 调用对象的方法
使用类中的对象属性
//new 代表分配一块内存
People p2 = new People();
//使用类中的对象属性
p2.car = new Car();
p2.car.carName = "保时捷";
p2.car.carColor = "白色";
p2.myName = "郭贝贝同学";
Console.WriteLine("myName is:{0},正在驾驶一辆{1}的{2}全速前进",p2.myName, p2.car.carColor, p2.car.carName);
属性
属性(Properties)是一种用于封装类成员的特殊成员。属性可以通过使用get和set访问器来实现对私有字段的读取和写入操作,从而提供对类的数据的安全访问。
public class Person
{
private string name;
private int age;
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
public class Program
{
static void Main(string[] args)
{
Person person = new Person();
person.Name = "John";
person.Age = 25;
Console.WriteLine("Name: " + person.Name);
Console.WriteLine("Age: " + person.Age);
}
}
在定义属性的时候,可以通过不同的属性描述关键字,定义属性的使用要求
//const 表示常量,本质上也是静态变量,不能跟static写在一起,定义之后不能修改
public const string tempStr1 = "abc";
//readonly 可以在定义的时候赋值,表示只读
public readonly string tempStr2 = "123";
//static 静态的,可以读写
public static string tempStr3;