1.面向过程---->面向对象
面向对象(封装,继承,多态)
面向过程:面向的完成这件事的过程,强调的是完成这件事的动作;
面向过程 例如:把大象塞进冰箱里
有三步过程
1.打开冰箱门;
2.把大象塞进去;
3.关闭冰箱门
以人为主体
面向过程 例如 一个小个子需要搬凳子 高个子却不用;
如果我们用面向过程的思想来解决事情的时候,当执行这件事的人的不同的时候
我们需要为不同的人量身定做解决事情的方法.
2.面向对象:找个对象帮你做事;
把大象塞进冰箱里 你;
三个对象:大象 冰箱 你;
我们把冰箱作为对象
1.冰箱门可以被打开;
2.大象可以被塞进冰箱里;
3.冰箱门可以被关闭;
以冰箱为主体
面向对象意在写出一个通用的代码来屏蔽人的差异
我们在代码中描述一个对象,通过描述这个对象的属性和方法
对象必须是看得见摸得着的
灯:属性和方法
属性:
外形:长的
亮度:500W
颜色:白色
牌子:xx
方法:发光
我们将这些具有相同属性和相同方法的对象进行进一步的封装
抽象出来,类这个概念,类就是一个模子
确定了对象应该具有的属性和方法
对象是根据类创建出来的
对象是类的实例化;
例如:类就是一个盖大楼的图纸 对象就是盖出来的大楼
3.类
语法:
public class 类名{
字段;
属性;
方法;
}
写好一个类之后,我们需要创建这个类的对象,
那么,我们管创建这个类的对象过程称之为类的实例化.
使用关键字 new.
this:表示当前这个类的对象;
类是不占内存的,而对象(中的字段)是占内存的;
结构类似于类;
4.属性(写在类中)
属性的作用就是保护字段,对字段的赋值和取值进行限定;
限制和保护字段的作用
属性的本质就是两个方法, 一个叫get() 一个叫set()
Field字段
Method方法
属性是一个中间商的作用
所以给对象赋值的时候通过属性赋值,输出也输出属性的值
语法:
public string Name
{
//当你输出属性的值的时候 会执行get方法;
get{return _name;}
//当你给属性赋值的时候 首先会执行set方法;
set {_name = value;}
}
5.private 访问修饰符
public :公开的公共的
private:私有的 出了这个类就访问不到了 默认为private
字段在类当中必须是私有的 属性不允许私有 外界想要访问字段 只能通过中间商属性来访问
既有get()也有set() 我们称之为可读可写属性;
只有get()没有set()我们称之为只读属性;
没有get()只有set()我们称之为只写属性;
6.初始化
当我们创建好一个类的对象后,需要给这个对象的每个属性给其赋值
我们管这个过程称之为对象的初始化.
7.静态与非静态的区别
1.在非静态类中,既可以有实例成员,也可以有静态成员;//实例就是非静态
在静态类中只允许使用静态成员2.在调用实例成员的时候,需要使用对象名.实例
3.在调用静态成员的时候,需要使用类名
总结:静态成员必须使用类名调用,实例成员必须使用对象调用
静态函数中,只能访问静态成员,不能访问实例成员
实例函数中,既可以使用实例成员,也可以使用静态成员
静态类中只允许使用静态成员
静态类不允许实例化
使用:
1.如果你想要的类当做一个"工具类"去使用,可以考虑将类写成静态类2.静态类在整个项目中资源共享
8.释放资源
GC Garbage Collection 垃圾回收期