C#面向对象笔记-封装

2.封装

封装:是指隐藏对象的属性、方法和方法的实现细节封装,封装后程序又对外提供访问方式。

单词预习:

encapsulation 封装 constructor 构造 private 私有的 method overload 方法重载

通过提供不同的访问器,可以将属性分为3类:只读、只写、读写

构成方法重载的条件: 在同一类中,方法名相同,参数类型或个数不同

1.定义属性

public class Customer
{
    public string name;             //保存姓名
    private int age;                //保存年龄(0~100)岁(字段改为私有,并且首字母小写,属性首字母大写)
    public int Age
    {
        get{return age;}            //只读访问器
        set{
            if(value>=0&&value<=100)
            {
                age=value;
            }
            else
            {
                age=18;
                Console.WriteLine("年龄超出范围,默认为18岁。");        //只写访问器
            }
        }
    }
}

2.方法重载

概念:同一个类中多个方法使用同一个名字,该方法就被称为“重载方法”。当一个重载方法被调用时,C#会根据参数的个数和类型自动调用最恰当的方法来执行。

构成方法重载的条件有3个:

  1. 在同一类中

  2. 方法名相同

  3. 参数的类型或个数不同

namespace 方法重载D1
{
    public class Computer
    {
        //实现两个整数的相加
        public int Add(int num1, int num2) {
            Console.WriteLine("实现两个整数的相加:");
            return num1 + num2;
        }
        public int Add(int num1, int num2,int num3)
        {
            Console.WriteLine("实现三个整数的相加:");
            return num1 + num2+num3;
        }
        public double Add(double num1, double num2, double num3)
        {
            Console.WriteLine("实现三个小数的相加:");
            return num1 + num2 + num3;
        }
        public double Add(double num1, double num2)
        {
            Console.WriteLine("实现两个小数的相加:");
            return num1 + num2;
        }
    }
}
​
 namespace 方法重载D1
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                Computer com = new Computer();
                com.Add(1,2,3.3);   //两个整数,一个小数
                com.Add(1,2,6);     //三个整数
                com.Add(1, 2.2);    //一个整数,一个小数
            }
        }
    }
​
​

运行结果:

3.构造方法

  1. 构造方法的名字必须与定义它的类名完全相同,并且没有返回类型。

  2. 构造方法是在使用new关键字创建对象时系统自动调用的。

  3. 构造方法是在初始化对象时给对象成员赋初始值的。

4.封装的应用

例如,DBHelper类就是一个封装类的例子

namespace Family_money
{
    public class DBHelper
    {
        public static string connstr = "Data Source=.;Initial Catalog=Family;Integrated Security=True";
        public static SqlConnection conn;
        public static void Initconn() {
            conn = new SqlConnection(connstr);
            conn.Open();
        }
        //增删改
        public static bool ExecuteNonQuery(string sql) {
            Initconn();
            SqlCommand cmd = new SqlCommand(sql,conn);
            int result = cmd.ExecuteNonQuery();
            conn.Close();
            return result > 0;
        }
        //查询
        public static DataTable GetTable(string sql) {
            Initconn();
            //适配器
            SqlDataAdapter dap = new SqlDataAdapter(sql,conn);
            //数据集
            DataSet ds = new DataSet();
            dap.Fill(ds);
            return ds.Tables[0];
        }
        //聚合函数
        public static object ExecuteScalar(string sql) {
            Initconn();
            SqlCommand cmd = new SqlCommand(sql,conn);
            object result = cmd.ExecuteScalar();
            conn.Close();
            return result;
        }   
    }
}

将你需要的功能封装成类,当你需要在主方法中使用时直接调用即可,不会使得主方法太臃肿

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信言知其言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值