博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于类的封装[基础]
阅读量:7071 次
发布时间:2019-06-28

本文共 2318 字,大约阅读时间需要 7 分钟。


ExpandedBlockStart.gif
基于类的封装
using
 System;
using
 System.Collections.Generic;
using
 System.Text;

namespace
 Con_1
{

    
class
 Program
    {

        
static
 
void
 Main(
string
[] args)
        {

            Person per1 
=
 
new
 Person();
            
//
per1.Name = "刘德华";

            
string
 n1 
=
 per1.Name;   
//
 F11调试get和set
            
//
per1.Name = "张学友";  
//
 姓名应该只读

            
//
Person per2 = new Person("刘德华");  
//
通过构造方法传值
            
//
try
            
//
{

            
//
    string n2 = per2.Name;
            
//
    Console.WriteLine(n2);
            
//
    per2.Age = 500;         
//
验证姓名是否合法
            
//
}
            
//
catch (Exception ex)
            
//
{

            
//
    Console.WriteLine(ex.Message);
            
//
}

            Person per3 
=
 
new
 Person(
"
汪涵
"
);
            per3.Birthday 
=
 DateTime.Parse(
"
1972/2/12
"
);
            
int
 i_age 
=
 per3.Age;  
//
根据生日得到年龄

            Console.WriteLine(i_age);
            
//
 调用类的静态方法

            Person.Eating();
        }
    }
    
class
 Person
    {

        
//
 所以的字段都必须私有化 private
        
//
 私有字段首字母不必大些 name 或 _name

        
private
 
string
 name;
        
//
 属性  public成员必须首字母大写 Name

        
public
 
string
 Name
        {

            
//
 属性作用一:读写设置
            
//
只有get访问器,则该属性只读

            
get
 
//
 获得,读取

            {

                
return
 name;
            }
            
//
只有set访问器,则该属性只写
            
//
set 
//
 设置,更改
            
//
{

            
//
    name = value;
            
//
}

        }
        
//
private int age;
        
//
 属性作用二:验证输入数据的合法性和正确性
        
//
public int Age
        
//
{

        
//
    get { return age; }
        
//
    set 
        
//
    { 
        
//
        
//
age = value; 
        
//
        if (value >= 0 && value <= 150)
        
//
        {

        
//
            age = value;
        
//
        }
        
//
        else throw new Exception("年龄输入不正确");
        
//
    }
        
//
}

        
private
 DateTime age;

        
public
 DateTime Birthday
        {

            
//
get { return age; }

            
set
 { age 
=
 value; }
        }
        
//
 属性作用三:隐藏细节(通过输入生日的日期 Birthday 获得年龄 Age)

        
public
 
int
 Age
        {

            
get
 
            { 
                
//
return age; 

                TimeSpan ts 
=
 DateTime.Now 
-
 age;
                
return
 (
int
)(ts.TotalDays) 
/
 
365
;
            }
            
//
set
            
//
{

            
//
    
//
age = value; 
            
//
    if (value >= 0 && value <= 150)
            
//
    {

            
//
        age = DateTime.Now.AddYears(-value);
            
//
    }
            
//
    else throw new Exception("年龄输入不正确");
            
//
}

        }
        
//
 构造方法

        
public
 Person()
        { }
        
//
 构造方法重载

        
public
 Person(
string
 n)
        {

            
this
.name 
=
 n;
        }
        
//
public Person(string n, int a)
        
//
{

        
//
    this.name = n;
        
//
    
//
this.age = a;
        
//
}
        
//
 普通方法

        
public
 
string
 Hi()
        {

            Console.WriteLine(
"
你好
"
);
            
return
 name;
        }
        
//
 重载:方法名相同,参数列表不同。(与返回类型无关)
        
//
 参数列表不同点: 1 个数不同
        
//
                 2 类型不同
        
//
                 3 顺序不同

        
public
 
string
 Hi(
int
 i,
string
 n)
        {

            
return
 name;
        }
        
public
 
string
 Hi(
string
 n,
int
 i)
        {

            
return
 name;
        }
        
public
 
string
 Hi(
string
 n, 
int
 i,
bool
 b)
        {

            
return
 name;
        }
        
//
 错误:已定义了一个名为“Hi”的具有相同参数类型的成员
        
//
 方法的重载与返回类型无关!
        
//
public int Hi(string n, int i, bool b)
        
//
{

        
//
    return Age;
        
//
}

        
//
 静态方法

        
public
 
static
 
void
 Eating()
        {

            Console.WriteLine(
"
吃饭了。。。
"
);
        }
    }
}
本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2010/03/12/1684070.html,如需转载请自行联系原作者
你可能感兴趣的文章
maven最全教程
查看>>
对Inductive Bias(归纳偏置)的理解
查看>>
chest
查看>>
hdu 1215 七夕节
查看>>
老调重弹:JDBC系列 之 &lt;驱动载入原理全面解析&gt;
查看>>
UVa11183 - Teen Girl Squad(最小树形图-裸)
查看>>
高速排序--双边扫描与单边扫描的实现
查看>>
10个财务工作中常用的 Excel 万能公式
查看>>
苹果iOS手机后门的”诊断功能论“不攻自破
查看>>
记一次使用utl_http方法调用接口,报字符或值错误
查看>>
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
查看>>
Cocos2d中的Menu使用
查看>>
mysql中变量赋值
查看>>
Windows Vista for Developers——第五部分:Windows核心服务器(Windows Core Server)入门...
查看>>
一起谈.NET技术,asp.net控件开发基础(11)
查看>>
美军事基地被黑客入侵 UFO资料惊现
查看>>
Linux命令行技巧zz
查看>>
android 模拟器使用SDcard
查看>>
android去除标题栏和状态栏
查看>>
[转]利用 NPOI 變更字體尺寸及樣式
查看>>