非计算机专业的码农C#学习笔记 七、

结构和类

(一)结构-通常用于较小的数据类型,大多数情况下都是用类,可用于特定数学公式返回值这类

Public struct 结构名{}

  1. 结构是值的类型
  2. 传递结构一般传值方式进行,不是用using进行,class则是用Using来进行引用
  3. 结构声明构造函数时候必须带参数
  4. 一个结构不能被另一个结构继承,因为都是具体的值,值不能继承值
  5. 结构可以实现接口
  6. 结构里面不能实例化其他东西
  7. 实例化结构不需要用new来修饰,如public struct st{string a=””;}引用的时候str ss;ss.a=123就可以

(二)类class

1.OOP object oriented programming面向对象编程三大特点:

(1)封装——集合属性和方法,使用的时候引用其某个属性和方法就可以,不显示出类具体结构

(2)继承——派生类:基类,继承基类的公开属性、字段、方法

(3)多态——基类含有多个派生类,通过向基类提供基类的参数,由基类分配引用派生类内方法叫做多态;

2.类的声明:修饰词 class 类名{公有变量;方法;…}

3.构造函数和.析构函数:一般对象的生命周期都是构造函数开始和析构函数结束;构造函数是特殊的函数,public 函数名{};然后在main()中调用,实例化,实例.参数和方法,就可以;析构函数实际上等于“~构造函数名”,main中调用构造函数,或者实例化构造函数,最后都会自动被调用.

4.类实例化:对象是数据行为和标识的集合,不同于类,类的实例化创建一个该对象所属类的实例

必须对类进行实例化才能引用类中的方法和变量或者字段

(三)类的面向对象特性

1.封装:class myclass{private int x;private int y; public int X{get{return x;}set{x=value;}}}….

2.继承:p[ublic class1class0{} 派生类:基类,“:”表示继承,基类中private定义的字段属性和方法可以被派生类继承,直接用不需要“class0.参数方法等”

3.类的多态:通过基类的变量引用基类,基类自动分配到派生类,从而实际引用了派生类的具体方法,搞个例子看看:

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace 对象和类

{

#region 这里是类的多态实验

class class0

{

private int x = 0;

private int y = 0;

public int X

{ get { return x; } set { x = value; } }

public int Y

{ get { return y; } set { y = value; } }

public virtual int add()

{ return X + Y; }

}

class class1 : class0

{

public override int add()

{

//return base.add();

int x = 15;

int y = 7;

return x + y;

}

//public new int add() { int x = 5; int y = 5; return x * y; }//除了重写来实现虚方法,还能新增来实现

}

#endregion 这里是多态的实验,包含下面mian

class Program

{

static void Main(string[] args)

{

class1 cl1 = new class1();

class0 cl0 = (class0)cl1;

//cl1.X = 4;//无关

//cl1.Y = 5;

Console.WriteLine(cl0.add());

Console.WriteLine(cl1.add());

}

}

 

 

时间: 2024-10-10 21:24:32

非计算机专业的码农C#学习笔记 七、的相关文章

非计算机专业的码农C#学习笔记

第一篇  基础知识积累 一.vs开发环境搭建 C#一般都是用vs2010比较好,这个软件一般是行业通用,另一方面就是跟目前网上的一些疑难解答和教程所用的软件基本统一.当然也可以用最新的vs2012-2014,怎么构建,建议还是找一本几天学习vs这类的教程看看,一目了然,加上后期学习C#,web编程,很容易操作. 二.C#程序基本结构知识积累 本来学习过程就是看看书,但是记忆力一般,但由于本身带项目性质,没有很多时间花在这里,所以必须要用自己的方法记住一下东西.这里,我是采用了程序代码片段的形式学

非计算机专业的码农C#学习笔记 五、数组和集合

数组和集合 1.数组问题Array (1)一维数组:int[] arr={1,2,3,5,5} string[] s={s,l,s,g} (2)二维数组:int[,] arr=new int[2,2]{{1,2},{3,4}} 类型[,] 数组名=new 类型[行数(元素数),列数(元素的子元素数]{{元素1,元素2},{元素…},…,} l  动态数组:类型[,] 数组名=new 类型[M,N],int M=””;int N=””; l  查看内部元素:foreach(int n in arr

非计算机专业的码农C#学习笔记 三、变量 表达式 字符串

三.变量常量 说在前: 其实,写这个东西的时候,我也是在复习,因为这个都是一年前的笔记了.今天我看了几章,贴上来吧.我也是求高手指点,因为变量类型很多,我真的背不出来,只有用的时候记起来或者查查资料. 为什么会这样呢?短期项目用到access,sqlserver,oracle后我开始张冠李戴了.....所以,我在学习过程,真的是抄下来,放在办公室座位前.... 变量(int Int=0) 1.值类型 (1)整型 类型 说明(二进制) 范围 Sbyte 8位有符号 -128-127 Byte 8位

非计算机专业的码农C#学习笔记 二、C#程序编写规范

二.C#程序编写规范 1.代码书写规则: 代码书写规则呢,是相对初学者来说需要了解一下的东西.因为我们还嫩,暂时不追求什么代码审美.规范.专业还有逻辑审美这类的,不会乱成一套就好了.所以,我也不全死记烂背规则,就注意一下代码整洁这个问题.有时候,经理或者需求发布人需要我们解说一下,代码不整洁,连我们自己都找不到那可怎么办.还是记住几个: (1)记住ctrl+K+F这个快捷键,自动帮你整理选中的代码,看起来整洁吧: (2)项目时间长,分阶段写的代码最好还是#region一下,能够很好帮你回忆: (

非计算机专业的码农C#学习笔记 四、语句

记住几个语句 1.选择语句: (1)if语句: If(条件){代码} Else{代码} (2)switch语句 Switch(变量) { Case 变量值:执行代码:break:case… } 2.迭代语句 (1)while(条件){循环执行的代码:} (2)do{}while(条件) (3)for(Int I=0,i<a.length,i++){引用关于[i]执行代码:} (4)foreach(string s in ss数组){引用s的表达式和代码即可罗列所有ss中的s} 3.跳转语句: (

非计算机专业的码农C#学习笔记 六、属性和方法

六.属性和方法 (一)属性 1.属性的定义:对象的组成部分的名称…理解游戏中的人物加点属性,HP,蓝等等就是属性 2.引用属性的方法:对象名.属性名 3.属性的代码:public string name{get{return **}:set{alue=….}:} (二)方法 1.方法:对象用来做什么的实现形式,如刀的方法就是砍 2.方法的声明修饰词: Private       只供class内部使用的方法 Public        公用的变量和方法 Protected Internal 此外

非专业码农 JAVA学习笔记 6java工具类和算法-string

续<非专业码农 JAVA学习笔记 5 java工具类和算法> 五.字符串string 字符串和字符的差别:字符串双引号括起来”n”,字符用单引号括起来,表示一种符号’\n’ 1.string的主要方法和属性 类 方法或者属性 备注 定义string Stirng s=new string(“值”),string s=”值” 属性 string.length:string的长度为字节 方法startswith,endswith s.startwith(“值”)-以值为开头,s.endswith(

非专业码农 JAVA学习笔记 3 抽象、封装和类(2)

(2).静态域-放在内存公共存储单元,不放在特定的对象,用static修饰 (续上一篇<非专业码农 JAVA学习笔记 3 抽象.封装和类(1)>...) (3).静态初始器-由static引导的一对大括号括起来的语句组,作用跟构造函数相似 (4).最终域-final引导的,值在整个过程都不发生改变的 5.方法 (1)方法的定义:修饰词1 修饰词2…返回值类型 方法名(参数) throw[异常列表] 这里个人经验就是注意定义了返回值的方法,要在方法体里面增加return 该类型变量:此外遇到if

非专业码农 JAVA学习笔记1

不知不觉,项目需要,有学上java这个深奥的东西了.c#复习,也在同期进行,不过由于项目需要,我们还是缓缓c#吧.今天就是随便看看java.废话少说,上笔记 Java语言与面向对象程序设计(第二版) 一.面向对象软件开发概述 (一)面向性软件开发过程: 分析用户需求,从中抽出对象模型 将模型细化,设计类,包括类和类之间相互关系,考察是否有成型的类可供引用 选定一门面向语言,进行研发 测试 (二)面向对象程序设计优点 1.重用性 2.可扩展性 3.可管理性 二.java概述 (一)java开发环境