标题:集合,多态,继承单根性
只看楼主
zhaichong07
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-7-1
结帖率:0
 问题点数:0 回复次数:0 
集合,多态,继承单根性
1什么是方法,方法用来干什么的。
    方法就是重用的一种机制,减少代码的重复使用
    方法的定义:
 访问修饰符    返回值类型 方法名(参数)
    {
      方法体
      return
    }
    访问修饰符
    面向对象是什么意思呢?
     凡事亲力亲为,每一个过程都必须非常清楚
   
     
   
    2类与对象,以及其成员有那些
    事例什么叫事例 就是实实在在的才叫事例。事例和类的区别是什么的,看看他存不存在
   
    类的定义
    访问修饰符 class 类名
    {
      字段
      属性
      方法
        构造方法
        方法名必须与类名相同
        方法的返回值,没有返回值  构造方法没有返回值
        参数 默认无参如果自己添加了又参构造方法,无参的构造方法就没了
        构造方法也可以重载
    }
   
         继承
    没有提供父类的构造方法 父类会执行吗???    只要你有继承的关系 就一定会从父类开始执行,执行完父类的构造方法以后在开始执行子类的构造方法,父类有个默认的无参方法       如何调用父类的构造方法? 为每一个字段进行初始化即可
       在子类构造方法中,用base的形式显示调用父类指定重载的构造方法
       语法: public 子类名(参数):base(父类参数)
       {
         对子类对象成员的初始化
       }
       等价格式 class base
       {
         public base()
       }
       class subClass :base
       {
        public subClass():base
       }
      
    在使用构造方法的时候 要在父类手动添加一个无参的构造方法,要是下面还有继承的话 也要手动添加一个无参的构造方法       我要想知道的问题  
     当你执行子类的时候先要从子类运行 然后在跑到父类,然后再从父类到子类
     
     继承性与结构方法
     语法
     class 类名 :父类命
     {
       子类成员
     }
     只能访问非私有的
     字段,属性。
     字段就是类中的变量
     属性
     提供两个方法 简化了用一个名字加大括号和get set
     public 返回类型 属性名
     {
       get{}
       set{}
       这就是一个简化的东西
     }
     构造方法
     创造对象的时候,调用构造方法就是new 会先默认调用父类的调用方法 当父类完成创建
     后就在调用子类
     调用那一个
     如何传参
     丢失默认构造方法
                              继承的单根性
     2任何类型的执行都会向上首先调用父类的构造方法,直到object类型
     所有类型都会直接的或简介的继偶承obhect类型
     继承的传递性
     继承的单根性任何一个类只能有一个父类,(可以实现多个借口)
     protected
     受保护的成员
     只允许在子类中和自己当中访问
     注意 object 中的membrwiseclone方法在Main方法中不能访问,因为Main是静态的
     子类不允许有执行代码的代码过程,代码的执行应该放在方法中
     
       里氏转换
       子类对象可以直接诶赋值给父类对象
       父类对象里面如果是子类对象,可以强转为子类对象
      
       类型决定了可以访问什么类型
       里氏转换的第一个特点是 统一管理对象了,但是此时 如果想要使用对象的子类的方法或者成员
       子类已经转换成父类,所以无法访问子类的成员
        如果,父类对象中存在的就是子类的对象,那么可以使用强制转换将“父类”强制转换成子类对象来使用
        例子:
        student sa=new student("xiao","lan");
        preson p=sa;
        student su2=sa;
        student stu3
        stu3=(student)p;
        
        非常混桥的:1是不是所有的的父类都能转换成子类
        
        答案:不是所有的父类都能转换成子类
                   2: Teacher类型转换成Preson后,能不能在强转成Student
                         is的用法。(就是类型判断)
             语法: 对象或者是事例is类型名
             这个表达式可以返回一个bool值,表示是否可以转化
             判断父类能否转化为子类的时候尝尝使用
            
              as的用法
              类型名 变量名 =莫个对象或实例 as 类型名
              注意  :前后的类型名相同
              伪代码:
              类型名 变量名;
              if(某个对象活实例 IS 类型名)
              {
                变量名=(类型名)莫个对象或实例;
              }
              else
              {
                变量名=null
              }
                                                         多态
                    父类方法与子类方法重名,有2中结果
                    第一 叫重写
                    第二 父类与子类有相同的方法
                    以父类身份出现的时候,那么使用父类的方法
                    以子类身份出现的时候,就是使用子类的方法
                    隐藏基类方法
                    new则隐藏,over重写
                    隐藏看类型,重写总用新
              对象在不同的类型状态下表现出来的不同特征
              将父类方法前面加上一个virtual  加上virtual 就是虚方法,替补的意思
              将子类方法名改为匪类方法名相同,并且前面加上一个override
              当你的方法名字也你父类的名字相同时候,如果你的方法中有一个override 替换重新的意思
              重写后的方法,总是使用新的
              
                                   集合
 Arraylist 是类型
 首先要引用system.collection命名空间
   1手动添加(必须记住命名空间)
   光标停在代码中,快捷键或鼠标右键 添加(必须记住类名)
   学习集合可以注意归纳一下可用的方法
    添加数据:Add()。或者是AddRange()
    使用add可以添加数据,并且与数组一样可以使用“下标”(索引)访问数据
    使用下标访问的数据是object类型的,必要时需要转换,必须满足历史转化原则()
    为什么要把Add参数设为object呢? 目的就是让他存放所有的数据 ,为了通用
    AddRenge将数组或集合当中的数据批量的一个一个的加进来
    数组和集合中有多少个数据,新集合中就添加了多少个数据,类型等一一对应
    如果是使用Add方法同样可以讲数组或集合作为数据加入,但此时加入数据族活集合作为一个添加过去  只有找到该项,才能通过“下标”(索引)才能找到
    插入数据Insert()
     使用语法:
       集合名.Insert(位子,值)  
       注意:1位子的确定,使用插入好的数据来数
             2 第二个数据就是要出啊如的数据的内容
    删除数据: Delete()或者Remove()
    判断是否包含:contains()
    sort等可以处理排序功能,甚至还有max min AVG等
    获得长度 使用count属性
集合中
Add方法返回一个int
 将数据添加到后面
 AddRenge返回void
      是成批量的  不会返回任何内容
 
   
搜索更多相关主题的帖子: return 
2012-07-01 09:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-372581-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.106261 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved