正在複习C#~(书 和影片 文章 看到头晕)
发现有些观念真的简单又不简单
一定要用自己的方式搞懂~!
(P.S以下是自学笔记浅谈而已)
物件(object)是什么?
概念:真实世界中的所有具体或抽象的事物,
都可以将之视为一个『物件』 ,
物件是动态的,状态会随时改变但架构与行为不会改变。
物件(Object)有的特性:
属性(Property):指物件各种特性的现况,物件拥有许多特性(attribute),这些特性代表了一个物件的外观或某些性质。方法(Method):每个物件都拥有不同的行为,这些行为在物件导向程式设计中称之为方法(Method)指物件的功能。举例具体的东西
車子
属性(Property):品牌名、速度、排气量、颜色、重量
方法(Method): 往前行驶、倒退、煞車
人
属性(Property):名字、性别、生日、身高、体重
方法(Method):讲话、吃饭、走路
在程式设计或执行阶段,我们可以藉由改变属性值來改变整个物件的某些特性,完成我们想要的物件表示形式。
例如:把车子漆成蓝色、将波特的眼镜换为方形...等。
物件的宣告
宣告物件的方法,直接使用類别的名称來宣告
class Student{ String name; String sex; int age;}Student Harry; //宣告物件变數Harry
产生物件实体语法(要先建立实体物件,然后才能使用实体属性)
产生物件实体使用的是new运算子,範例如下:
//物件变數 = new 類别名称(引數1,引數2…);Harry = new Student();
可以直接写成这样
Student Harry = new Student();
类别(Class)是什么?
类别算是一个蓝图、一个範本、一个可参考的文件,他没有 实体 (Instance) 的概念,属静态的
類别可像结构一样,可以在類别中定义多种基本资料型态(如int、char、float)的变數,
这些资料变數称为類别的资料成员(data member)。
類别还可以定义所需的功能函數称为成员函數(member function)。是一种加上行为(函式)的结构
也把「资料」与处理资料的程式「函式」整合起來
类别(Class)有的特性
一个類别包含:
资料成员(Data member)成员函數(Member functions)将资料和函數放在一起的动作就称为封装(Encapsu-lation)由類别所宣告的变數叫做物件(object)
在实际的物件导向程式设计中(例如 C#、Java),我们必须先定义類别,然后才能够透过類别宣告各个属于该類别下的物件,接着再设定物件的属性來代表该物件某方面的特性,并使用物件的方法來操作物件。
宣告類别名称
【範例】
//定义一个Person類别 里面有姓名 性别 及年龄//资料型态有string字串 与int整数型别class Person { String name; String sex; int age; }
物件(Object)与类别(class)两者关係
(引用保哥的比喻)
盖世武功
类别:武林密笈
物件:修练武林密笈而成的武林高手
两者关係:
武林密笈(类别)记载许多各种攻击与回应的方式,
让武林高手(物件)知道遭遇到什么攻击时要用什么招式回应。
程式设计:每执行到我们用 new 运算子时,等同于将物件产生,
也等同于成功得到武林密笈可以开始练功,或是在「建构子」的时候就已经赋予你基本功力。
大概介绍到以上 哈哈
关于所有类型和类型成员都具有存取範围层级
public
protected
internal
protected internal
就等下一篇文章出产啦
来源参考自:
Will保哥的物件导向基础:何谓类别(Class)?何谓物件(Object)?
陈锺诚老师的C#程式教学