一个程序的本质就是”数据+算法“,以下四种成员均是用来表示”数据“。
字段(field):
1,什么是字段(field)
(1)字段(field)是一种表示与对象或类型(类与结构体)关联的变量
字段的本质是一种变量,作用是用来存储数据的,字段是为一个对象或者类型存储数据的。和方法体中的局部变量不同,方法体中的局部变量是方法运行时,帮助其方法暂时地存储数据,而字段帮助对象或类型存储数据。当一个对象或类型拥有多个字段的时候,这些字段的值就能组合起来表示这个对象或类型当前的状态。 所以简单的来说,字段用来为对象或类型存储数据,多个字段的组合能表达对象或类型的状态。
(2)字段(field)是类型的成员,一般被称为”成员变量“
字段本质是变量,而且是对象或类型的成员,所以一般被称作”成员变量“
(3)与对象关联的字段(field)也被称作”实例字段“
(4)与类型关联的字段称为 ”静态字段“ ,由 ”static“ 修饰符进行修饰
”实例字段“ 与 ”静态字段“ 的区别就在于 ”实例字段“ 的组合表示与其关联的对象的状态;而静态字段则表示与其关联的类型的状态(为某个数据类型保存数据)。
将类实例化之后能对其可以公开访问的数据类型(实例字段)进行成员访问从可以用来表示这个实例的状态。
实例字段为实例存储数据,数据的组合表示此实例当前的状态。
class Program
{
static void Main(string[] args)
{
Student student1 = new Student();//创建一个Student的实例student1
student1.Age = 40;
student1.Score = 90;//实例字段存储数据的组合表示当前实例的状态
Student student2 = new Student();//创建一个Student的实例student2
student1.Age = 40;
student1.Score = 40;//实例字段存储数据的组合表示当前实例的状态
}
}
class Student //声明一个“类”
{
//为Student声明"数据类型",创建成员,public为公开访问
public int Age;
public int Score;
//为Student声明"静态字段"成员,public为公开访问,static表示静态
public static int AvarageAge;
public static int AvarageScore;
public static int Amount;
public Student() //构造函数
{
//为构造函数添加一个逻辑,每次引用Student创建实例的时候Amount都会+1
Student.Amount++;
}
public static void ReportAmount()//创建一个静态方法
{
Console.WriteLine(Amount);
}
}
静态字段和静态方法都可以在引用类创建实例的时候被访问。
引用这个类创建实例的时候方可访问类中的静态字段、静态方法和实例字段。静态字段可以不用创建实例,可以直接调用方法。如:
构造函数:构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
2,字段(field)的声明:
声明字段的语法格式:
字段(field)是类的成员,但并不是一个语句,所以声明字段的时候要写在 “类体” 里面而不是 ”方法体或方法体“ 里面(那就变成了 ”局部变量“ 了)。
在字段声明的语法中带 ”opt“ 下标的都是可选的或者可忽略的。
(特性/属性):
(字段修饰符):可一个或者多个,但必须是有意义的修饰符组合,如: private / public / public static;public 和 private 不可同时使用等。
其中字段被 ”readonly“(只读修饰符)修饰的字段叫 ”只读字段“,那么就只能读取字段中的值而不能修改。
readonly(只读修饰符):只读字段初始化是为了不让被初始化之后得值被改变或被重新赋值
(1)只读实例字段
只读实例字段的初始化只有一次机会,那就是在只读实例字段变量的构造器(构造函数)中对其进行初始化(也可以在声明时就进行初始化),在创建实例的时候给构造