面向对象编程(OOP)的主要思想就是将数据及基于这些数据的方法封装在一个结构体中,这种结构体就称之为类。
类是对现实中若干相似对象的抽象,就是要用程序设计语言来描述这些相似对象的基本特征。例如:所有的汽车都有品牌、排量、生产日期、轴距、颜色等等,将这些特征封装起来就可以得到一个汽车类,用这个汽车类描述一台具体的汽车就得到一个具体的汽车对象。
对象的属性和方法
还以汽车为例子,汽车类的所有特征(品牌、排量、生产日期、轴距、颜色等等)都称为汽车这个对象的属性。而且汽车这个对象还有一些具体的功能,比如自动驾驶、发出滴滴的声音等,这些就是汽车这个对象的方法。
对象的属性和方法分为公有属性和方法以及私有属性和方法,分别用Public和Private两个关键字进行修饰。
方法也可以分为一般方法、事件方法、自定义方法。
一般方法是由用户显式调用的的方法,一般是由系统预先准备好的,由用户直接使用。比如很多控件的Show方法,用户无法改变其方法的代码。
事件方法是用户根据事件的需求,在固定的事件脚本下完成的不固定任务。比如单击按钮Click事件,其动作是固定的,但其动作的结果是不固定的。
自定义事件是用户根据逻辑的需求自行设计的事件方法,以达到对对象事件的处理结果。比如汽车类的自动驾驶方法,是由用户自动设计的一种方法。
类的声明
类的声明和定义通过关键字Class进行,例如:创建一个Car类。
public class Car
{
public int x, y;
public Car(int x, int y) {
this.x = x;
this.y = y;
}
}
对象的创建
对象的创建就是类的实例化,听过关键字new进行,例如
Car car1 = new Car(0, 0);
Car car2 = new Car(10, 20);
字段和属性
前面提到了类是由属性、方法、事件组成的,那么字段又如何定义的,它和属性是怎么关联的呢?
1.两者的相同点:
都可以被new对象时,传递值
2.两者的不同点
当类被继承是,字段值无法被继承,属性值可以被继承
3.两者的注意点
a.字段最好 private
b.属性最好 public
c.{get;set;}可读可写
{get;}只读不写
{set;}只写不读
字段代表了类中的数据,在类的所有方法之外定义一个变量即定义了一个字段。在变量之前加修饰符public,private,protected表示字段的访问权限。
一般把类或结构中定义的变量和常量叫字段。属性不是字段,本质上是定义修改字段的方法,其实就是{get;set;}方法。属性是一种类的成员,它的实现类似函数,访问类似字段作用是提供一种灵活和安全的机制来访问、修改私有字段属性必须依赖于字段。
字段:
1 2 3 4 5 6 7 8 |
|
属性
1 2 3 4 5 6 7 8 |
|
静态变量与静态方法
含有static关键字的变量就是静态变量
静态变量和实例变量两者的区别:
1、静态变量在内存中只有一个内存空间,在加载类的过程中完成静态变量的内存分 配;每创建一个新的实例对象,就会为实例变量分配不同的内存
2、静态变量可以直接通过类名来访问,实例变量需要通过各个对象访问
**静态方法
含有static关键字的方法就是静态方法
静态方法和实例方法两者的区别:
1. 静态方法只能访问静态变量;实例方法既可以访问实例变量,也可以访问静态变量
2. 静态方法在Main方法中可以直接使用;实例方法在Main方法中必须通过对象调用