C#面向对象基础--类与对象

1、类与对象

类是面向对象编程的基本单元;类造出来的变量叫对象。

一个类包含俩种成员:字段与方法

字段变量方法函数

面向对象思想:教给我们如何合理的运用类的规则去编写代码。

2、类的字段

字段代表了类中的数据。在变量之前可以加上public、private和protected表示字段的访问权限。

3、类的方法

(1)、函数的概念

表达式:

返回值类型  方法名(参数列表)

{

语句1;

语句2;

.....

return 表达式;

}

函数需要向外界返回一个值,由return语句实现。

如果一个函数没有返回值或不关心其返回值,则将其返回值定义为void。

(2)、方法的定义与使用

放在一个类中的函数(通常附加一个存取权限修饰符如public和private)称为“方法”。

访问一个 方法 的最基本方式是通过类创建的对象;则可以通过使用new关键字创建类的对象来访问此方法。

(3)、方法重载

两个同范围(同一个类,或者父子类中)两个同名但参数类型不同或者参数个数不同的方法互相间构成重载关系。

两个构成重载关系的函数必须满足:
       函数名相同
       参数类型不同,或参数个数不同。(* 函数返回值类型的不同不是函数重载的判断条件)
    这两个同名的函数彼此构成了“重载关系”。

输出:

输出(带参数):

4、类的静态成员

类中的函数,如果在声明时没有加“static”关键字,则称之为类的“实例方法”。

加了“static”关键字的方法,则称之为类的“静态方法”。

加了“static”关键字的字段,则称之为字段的“静态字段”。

静态成员是不随着new的对象初始化,直接跟着类名走。

静态成员:不随着造对象初始化,所有对象共享直接通过类名调用

(1)、访问类的静态成员的基本方法

类名.静态方法名(参数列表)

(2)、类静态成员的特性

类的静态成员是供类的所有对象所共享的

函数也可以用静态成员

(3)、类实例成员与静态成员的访问规则

位于同一类的实例方法可以直接互相调用。
     类的字段(包括实例字段和静态字段)可以被同一类中的所有实例方法直接访问、
     类中的静态方法只能直接访问类静态字段;要访问实例方法,要在静态方法中创建对象。

    

5、类的属性

属性是一种特殊的“字段”

属性由两个特殊的读访问器和写访问器组成。
  当读取属性时,读访问器被调用,仅简单地向外界返回私有字段的值。
  当设置属性时,写访问器别调用,先检查外界传入的值是不是空串,再将传入的值保存于私有字段中。

在读访问器中有一个特殊的变量value必须特别注意,代表了外界传入的值。

编写属性的方法:
  (1)、设计一个私有的字段用于保存属性的数据 。
  (2)、设计get读访问器和set写访问器存取私有字段数据。

6、深入理解类与对象

(1)、类和对象的区别

对象是以类模板创建出来的。类与对象之间是一对多的关系。

在C#,使用new关键字创建对象。

在程序中“活跃”的是对象而不是类。

---“对象”与“类的实例”这两个概念是等同的

(2)、类的构造函数(一般用于初始化类的私有数据字段)

当使用new关键字创建一个对象时,一个特殊的函数自动调用,这就是类的构造函数。

在C#中,类的构造函数与类名相同,没有返回值。

带()的都是函数

构造函数每个类至少有一个构造函数,名字与类名同名;都是可以重载的。

凡事构造对象,都是通过先调用构造函数造出来的

一般用于给成员赋初始值

用于跨类之间数据传输

带参数的构造函数

(3)、引用类型与值类型

区别:

值类型的变量一定义之后就马上可用。

引用类型的变量定义之后,还必须用new关键字创建对象后才可以使用。

C#的所有值类型均隐式派生自System.ValueType:

  • 结构体:struct(直接派生于System.ValueType);

    • 数值类型:

      • 整 型:sbyte(System.SByte的别名),short(System.Int16),int(System.Int32),long (System.Int64),byte(System.Byte),ushort(System.UInt16),uint (System.UInt32),ulong(System.UInt64),char(System.Char);
      • 浮点型:float(System.Single),double(System.Double);
      • 用于财务计算的高精度decimal型:decimal(System.Decimal)。
    • bool型:bool(System.Boolean的别名);
    • 用户定义的结构体(派生于System.ValueType)。
  • 枚举:enum(派生于System.Enum);
  • 可空类型(派生于System.Nullable<T>泛型结构体,T?实际上是System.Nullable<T>的别名)。

值类型(Value Type),值类型实例通常分配在线程的堆栈(stack)上,并且不包含任何指向实例数据的指针,因为变量本身就包含了其实例数据

C#中的引用类型

  • 数组(派生于System.Array)
  • 用户用定义的以下类型:
    • 类:class(派生于System.Object);
    • 接口:interface(接口不是一个“东西”,所以不存在派生于何处的问题。Anders在《C# Programming Language》中说,接口只是表示一种约定[contract]);
    • 委托:delegate(派生于System.Delegate)。
  • object(System.Object的别名);
  • 字符串:string(System.String的别名)。
时间: 2024-08-09 06:24:43

C#面向对象基础--类与对象的相关文章

面向对象基础——类与对象的定义

面向对象的概念 封装性:对外部不可见.可以保护程序中的某些内容. 继承性:扩展功能的. 类与对象的关系: 定义类和对象的方法? 类图的画法:Person类图 分为三层: 第一层表示类的名称,类的名称与之前一样要求开头首字母大写. 第二层表示属性的定义,按照" 访问权限 属性名称:属性类型 " 的格式定义: 第三层表示类中方法的定义,按照"  访问权限 方法名称():方法返回值类型  " 的格式定义.如下图所示: 类与对象的进一步研究 掌握Java中的内存划分,jav

面向对象基础——类和对象

Java是面向对象的编程语言,类和对象是面向对象编程的重要概念.从今日起陆续把过去落下的知识一点点补回来,且把这当作一种笔记吧. 1. 类的声明.属性的使用.对象的声明和使用(无参构造方法): 1 class Person 2 { 3 String name;//声明属性,即成员变量,Field又称为字段或域 4 int age; 5 public void talk()//公有方法method 6 { 7 System.out.println("我是"+name+",今年&

python基础(类、对象、包)完整的总结

python基础(类和对象.包)类和对象对象是看的见摸的着的类是模板对象需要类才能创建出来类的构成(三个部分)类的名称:类名类的属性:一组数据类的方法:允许进行操作的方法(行为)class 类名():def添加方法class Cat():def run(self):print("cat is running")xiaobai = Cat()xiaobai.run()xiaobai.name = "小白"xiaobai.age = 40类的属性属性就是变量一个类可以创

第31节:Java基础-类与对象

前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载和构造方法的重载 方法的重载 在一个类中可以有多个方法具有相同的名字,但是这些方法的参数个数不同,或参数类型不同,即为方法的重载. class Demo{ // one void dashu(String name){ System.out.println(name); } // two void

ios开发之OC基础-类和对象

本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再将零散的知识点整理出来.这样的学习方法会带来更多的收获,同时要多做练习,按照思路,默写.改写代码.在这里,感谢欧阳坚老师,学习你的课程使我走上了ios的开发之路. 一定要明确一个要从事的方向,要不然就会感到迷茫.学习ios开发,并且从事ios开发这个行业,这就是我的选择.看到我的博客系列文章,其中大

Chapter 1. 面向对象(类、对象、字段、方法、属性、构造函数)

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 面向对象 { //创建person类 public class person { //Fields:字段 private string _name; private int _age; private char _gender; //Properties:属性 public string Name { ge

Day16:面向对象编程——类和对象

一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象.程

面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】

  本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ 本文版权归作者和博客园共有,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 ,否则保留追究法律责任的权利. 面向对象概念 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 •强调的是功能行为 面向对象 •将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向过程   在一个结构体中定义窗口的大小

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3: