C#笔记(4)---面向对象--类与继承

原创 2005年05月06日 22:25:00
通过一个实际例子,。


        public class  Authenticator
        
{
        
/* MinPasswordLenth为静态字段或静态数据 ,本字段只存储一次(有关键字static)
           Password为实例字段或实例数据,创建多少该类的实例,本字段就存储几次(无关键字static)
            另一个重要区别,静态字段属于类,实例字段属于对象
        
*/

            
private static uint MinPasswordLenth=6//静态字段
            private string Password;//实例字段

            
/*无论实例方法还是静态方法,只存储一次,并与类相关.
             实例方法会利用一个隐式的外部参数(this),该参数引用相关类实例所在的内存。
             绝对不能显式这个外部参数,但它总是存在的。
             要访问实例字段,则不要加static.下面没使用static故可以访问Password实例字段!
             
*/


            
public bool IsPasswordCorrect(string password)
            
{
              
return (password==Password)?true:false;
            }

            
public  bool ChangePassword(string oldpassword,string newpassword)
            
{
                
if(oldpassword==Password)
                
{
                    Password
=newpassword;
                    
return true;
                }

                
else{return false;}
            }

            
/*静态方法,属于类而不是对象调用时直接用 [类.静态方法],标志是:static
             静态方法是不可以访问类的实例数据的,
             如:方法GetMinPasswordLength 是不可以访问实例字段 Password的
             
*/
 //[属性MinPasswordLenth的获取与设置]
            public static uint GetMinPasswordLength()
            
{
             
return MinPasswordLenth;
            }

            
public static void SetMinPasswordLength(uint value)
            
{
                MinPasswordLenth
=value;
            }

            
// 属性最好如下这样做[虽然与上面写两个方法的功能是一样],还比较符合常规:
            
//定义属性,get与set存取器
            public static uint MinLenth
            
{
            
/*注意:这里属性是静态的,一般是不必要的。同方法一样,只有属性指向静态数据时。
              才必须把属性声明为static,大多情况没这个必要。可以只有get或者只有set部分,但
              不建议这样!
             
*/

                
get
                
{
                  
return MinPasswordLenth;
                }

                
set
                
{
                 MinPasswordLenth
=value;
                }

             }

        }


引用类型和值类型
把一个变量声明为基本的预定义类型时,例如int,uint,double,float和bool等,就实例化了
一个值类型的变量。每个变量都包含它自己的数据副本。
如: int i=10;
     int j,k;
     j=i;
     k=10;  //此时均为10
     ++j;  //此时只有j为11,i,k仍旧为10

#类都是引用类型的,这样每个变量都只包含存储类实例的内存的引用,而不是创建这个实例
 的实际数据的引用。这是实例化类时为什么使用new运算符的原因。
 如: authenticator User1;
      authenticator User2=new authenticator();
      authenticator User3=new authenticator();
      User1=User2;
      User2.SetPassword(null,"abc");
      User3.SetPassword(null,"abc");
      if(User2==User3) //虽然具有相同的新密码,但返回false,执行else部分。
      {.........}
      else
      {.........}
      if(User1==User2)//返回true,因为User1与User2指向内存中相同的地址。
      {.........}
      else
      {.........}

C#面向对象(二)继承和组合

继承复用代码的方式:继承和组合 继承:复用代码的一种方式,可以复用代码或概念。 组合:复用代码,不能复用概念。在C#中,Object类是一切类的直接父类或间接父类。 子类拥有所有父类的非私有成员...
  • ballshe
  • ballshe
  • 2016年10月06日 16:55
  • 1172

C#笔记(4)---面向对象--类与继承

通过一个实际例子,。         public class  Authenticator        {        /**//* MinPasswordLenth为静态字段或静态数据 ,...
  • donetk
  • donetk
  • 2008年05月03日 00:18
  • 153

面向对象_继承案例和继承的好处与继承的弊端

/* 继承概述: 把多个类中相同的内容给提取出来定义到一个类中。 如何实现继承呢? java提供了关键字:extends 格多: //class 子类名,派生类名 extends 父类名,基类名,...
  • L1585931143
  • L1585931143
  • 2016年09月26日 22:13
  • 1012

实验报告5——C#面向对象进阶(继承与多态)

课程名称:嵌入式系统应用开发 (WinCE版)                        开课机房:钱江学院六号楼(603)2008年12月2日星期二专业班级电子060学号 姓名 成绩 实验项目名...
  • changesway
  • changesway
  • 2008年12月01日 23:37
  • 2018

继承与派生(面向对象)

1.继承与派生的概念:在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”,新建的类称为“派生类(d...
  • Huangweilan
  • Huangweilan
  • 2016年10月27日 14:47
  • 223

JavaScript如何实现面向对象和继承机制?

JavaScript实现面向对象?  function MyObject() {    this.name="myobject";    this.type="class";    this.meth...
  • u012575451
  • u012575451
  • 2016年10月02日 13:23
  • 681

JAVA面向对象 类的继承

本页面更新日期: 2016年07月30日前言 继承是面向对象的三大特征之一. 也是实现软件复用的重要手段. Java继承具有单继承的特点, 每个子类只有一个直接父类. 继承的特点 ...
  • tmdlife
  • tmdlife
  • 2016年07月26日 20:10
  • 1523

【.NET】继承,组合,聚合详解

类间关系   在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之...
  • smartmz
  • smartmz
  • 2012年01月03日 23:24
  • 1374

Java面向对象:封装、继承、多态

为什么要面向对象编程? 以前开发的过程通常是采用面向过程编程,面向过程是以过程为中心来进行编程设计,本质上是分析出需要哪些过程,在编程时一步步的对其实现,但是随着软件规模的扩大,这种面向过程的设计模式...
  • wangyang1354
  • wangyang1354
  • 2015年09月30日 16:44
  • 1214

C# 如何在继承类和基类中转换?

今天遇到一个问题,就是要得到某个基类的参数值,但是属性值只有继承类。比如,我想得到List,但是只有GPParamValueCollection的值。转换方法如下:   List listGParg...
  • hellowangxyue
  • hellowangxyue
  • 2016年07月14日 20:15
  • 1368
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#笔记(4)---面向对象--类与继承
举报原因:
原因补充:

(最多只允许输入30个字)