类与对象
1、类
用于描述某个事物特征的,就是类(class)。
类的语法
[访问修饰符] class 类名 { 类的描述信息; }
访问修饰符:可不写
class:关键字,声明类。
描述信息:字段、属性、方法等等。
2、对象
一个具体的个体,通过类实例化出来的,称之为对象 。
对象的语法
类名 对象名 = new 类名();
类名:可以是自己定义的,也可以是系统提供的
对象名:通过这个类创建出来的一个具体的个体名称
new:关键字 实例化
那么这个“new”实例化关键字到底做了什么?
①在内存(堆空间)中开辟了一块空间;
②在开辟出来的这个空间中创建对象数据;
③调用对象的构造方法进行对象的初始化。
类与对象的关系
类用于描述一类事物的信息;对象是这个类中具体的个体。
3、字段
变量在类中的新名字,与变量的作用一样。没有复制默认为空。
字段的语法
public 数据类型 字段名;
访问修饰符
public:公开的。通过对象名.xx×的形式可以直接访问到。
private:私有的。通过对象名.xxx的形式访问不到。
对象使用方法
1、实例化对象
2、字段的赋值与取值
赋值:对象名.字段名 = 值;
取值:对象名.字段名;
4、属性
字段是我们对象的核心数据,如果直接public公开的话,容易被恶意赋值。所以,字段通常使用private修饰,这样通过对象名.xxx的形式访问不到。但是我们又需要通过对象名.xxx的形式对字段存储的数据进行操作。这个时候就出现了一个新的东西“属性”。
属性的作用
对字段进行保护,属性保护的字段设置成private,通过属性间接的操作字段。
public 数据类型 属性名 { get{return 字段名;} set{字段名 = value;} }
数据类型:和要保护的字段的数据类型一样;
属性名:和字段名一样,只不过首字母要大写;
get:当通过属性名取值的时候,会自动调用get中的代码;
set:当通过属性名给字段赋值的时候,会自动调用set中的代码;
value:也是系统关键字,代表赋给属性的值;
get和set本质上就是两个函数。
使用属性进行合法性校验:
5、命名空间
对代码文件进行分类管理。
命名空间的语法
定义命名空间:namespace空间名称{类}
引入命名空间:using空间名称
6、方法
方法就是函数,在面向对象编程的类中,函数称之为方法。使用语法完全一样。
6.1 普通方法
普通方法,就是普通函数。在类中的作用是对对象的“行为”进行描述。
访问修饰符 返回值 方法名(参数列表)
{
方法的具体功能代码;
}
6.2 构造方法
首先它是一个方法,然后它具有“构造的作用,所有称之为构造方法。简单点说,构造方法可以对实例化出来的对象进行初始化。
构造方法的语法要求
public 类名() { 构造函数代码; }
①构造方法要用public修饰,不能用private修饰;
②构造方法没有返回值,且连void也不能写;
③构造方法的方法名字必须跟类名一样;
④构造方法是可以有重载的。
构造函数的调用是强制性的,一旦在类中定义了构造函数,那么创建对象时就一定要调用,不调用是错误的。如果有多个重载的构造函数,那么创建对象时提供的实参必须和其中的一个构造函数匹配;反过来说,创建对象时只有一个构造函数会被调用。
6.3 析构方法
析构函数于构造函数相对应,构造函数是对象创建的时候自动调用的,而析构函数就是对象在销毁的时候自动调用的的。
~类名()
{
析构方法代码体;
}
1)析构方法只能有一个,不能构成重载。如果我们没有显式的写出析构方法,那么编译器也会自动的给我们加上一个析构方法,什么都不做;如果我们显式的写了析构方法,那么将会覆盖默认的析构方法。
2)析构方法不能有参数。
3)析构方法无返回值也无访问修饰符。
4)由系统自动调用。
7、 对象也是引用类型