C#基础-类

1.C#的是单继承,接口可以多继承(这是两个概念)。当定义的类没有被 Extends 指定父类,默认从 Object 类继承而来。

#基本类
class Posen
{
    //默认构造函数和析构函数,编译器都有默认的.当类被实例话,先执行构造函数,释放时执行析构函数,当实例化时,先执行父类构造函数->子类构造函数,当释放时:子类析构函数->父类析构函数。
    //Posen(); 默认构造函数,初始化变量
    //~Posen();析构函数,释放内存
    private int len = 10;   // 成员变量
    
    pubile int readLen()    // 成员方法
    {
        return len;
    }
    
    // 虚函数 virtual 关键字不能修饰使用 static 修饰的成员
    pubilc virtual doubel Are()
    {
        return 2*len
    }
    
}


class Techno: Posen
{
    pubilc int num = 20;
    // pubile int readLen() 从父类集成方法
    
//静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭,因此不用对象实例可以直接被调用
//又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM回收之后,也跟着消失
    public static string str = "hello"; // 静态成员变量
    public static string Speak () // 静态方法
    {
        // this->num = 1; err 不能访问成员变量
        return str;
    }

    pubile int readNum(int n)    // 成员方法
    {
        this->num = 2* this->num;
        return num;
    }

    // 重写父类方法
    pubilc override doubel Are()
    {
        return num*len
    }
}

static void Main(string[] args)
{
    Posen.str = "hi"; // 不用实例化 可以直接被当前类访问
    Poson poson = new Poson();
    Techno techno = new techno();
    poson.readLen();    // 10
    techno.readLen();    // 10 调用父类 也就是base,但是重写了父类方法 可以用base.方法()调用父类,this是当前类指针,也可以认为是单独实例化对象
    techno.readNum(2);    // 20
}

#abstract 抽象类 只提供接口声明,实现由子类实现
#sealed 密封方法不能被继承,密封方法不能被重写,密封方法必须出现在子类中,并且是子类重写的父类方法,即 sealed 关键字必须与 override 关键字一起使用

public abstract class people
{    
    public void eat();
    public void speak();
    public abstract void pick();
}

public class man: people
{
    public void eat();
    {
        return "man eat";
    }
    
    public void speak()
    {
         return "man speak";
    }
    
    public sealed override void pick()
    {
        return "man pick";
    }
}

public class woman: people
{
    public void eat();
    {
        return "woman eat";
    }
    
    public void speak()
    {
         return "woman speak";
    }

    public sealed void pick()
    {
        return "woman pick";
    }
}
#多态
// 使用继承实现多态必须满足以下两个条件。
//1. 子类在继承父类时必须有重写的父类的方法。
//2. 在调用重写的方法时,必须创建父类的对象指向子类(即子类转换成父类)。

class Program
{
    static void Main(string[] args)
    {
        Major major1 = new Undergraduate();
        major1.Id = 1;
        major1.Name = "张晓";
        Console.WriteLine("本科生信息:");
        Console.WriteLine("学号:" + major1.Id + "姓名:" + major1.Name);
        major1.Requirement();
        Major major2 = new Graduate();
        major2.Id = 2;
        major2.Name = "李明";
        Console.WriteLine("研究生信息:");
        Console.WriteLine("学号:" + major2.Id + "姓名:" + major2.Name);
        major2.Requirement();
    }
}
abstract class Major
{
    public int Id { get; set; }
    public string Name { get; set; }
    public abstract void Requirement();
}
class Undergraduate: Major
{
    public override void Requirement()
    {
        Console.WriteLine("本科生学制4年,必须修满48学分");
    }
}
class Graduate: Major
{
    public override void Requirement()
    {
        Console.WriteLine("研究生学制3年,必须修满32学分");
    }
}
#接口
1.C#的接口是可以多继承
2.用interface声明,常用I开头

interface IName
{
    void setName();
}
interface IAge
{
    void setAge();
}

class xiaoming: name
{
    void Sex()
    void setName()
    {
        Console.WriteLine("wo shi xiao ming");
    }

    void setAge()
    {
        Console.WriteLine("wo shi 6 sui");
    }
}

class xiaohua: IName,IAge
{
    void Sex();
    void setName()
    {
        Console.WriteLine("wo shi xiao hua");
    }
    void setAge()
    {
        Console.WriteLine("wo shi 8 sui");
    }
}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
通信相关 1.C#HttpHelper,Httpwebrequest,请求时无视编码,无视证书,无视Cookie,网页抓取 主要是实现了HTTP协议的GET|POST请求时的无视编码,无视证书,设置代理,自动获取Cookie的功能。 访问数据库相关 1.SqlHelper 使用C#实现对Sql数据库的操作,执行存储过程,Sql语句,返回影响行数,返回DateTable,DataSet,DataReader,以及表集等方法。实现多个数据库的切换功能。功能强大,希望大家喜欢 2.一个操作Sql2005数据库的(备份,还原,分离,附加,添加删除用户等操作) 这主要是为了让大家练手的,他使用C#代 码的方法实现了对数据的 备份,还原,分离,附加,添加和删除用户等操作 3.DbHelperMySQL 数据访问抽象基础 主要是访问Mysql数据库主要实现如下功能 1.得到最大值 2.是否存在 3.是否存在(基于MySqlParameter) 4.执行SQL语句,返回影响的记录数 5.执行MySql和Oracle滴混合事务,执行多条SQL语句,实现数据库事务。 6.执行带一个存储过程参数的的SQL语句。 7.执行带一个存储过程参数的的SQL语句。 8.向数据库里插入图像格式的字段(和上面情况似的另一种实例) 9.执行一条计算查询结果语句,返回查询结果(object)。 10.执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close ) 11.执行查询语句,返回DataSet,执行SQL语句,返回影响的记录数,执行多条SQL语句,实现数据库事务。 执行多条SQL语句,实现数据库事务。 12.执行多条SQL语句,实现数据库事务。 13.执行多条SQL语句,实现数据库事务。 14.执行一条计算查询结果语句,返回查询结果(object)。 15.执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close ) 16.执行查询语句,返回DataSet等等。 复制代码 4.DbHelperOleDb 1.数据访问基础(基于OleDb)Access数据库, 2.得到最大值;是否存在;是否存在(基于OleDbParameter); 3.执行SQL语句,返回影响的记录数;执行多条SQL语句,实现数据库事务; 4.执行带一个存储过程参数的的SQL语句; 5.向数据库里插入图像格式的字段(和上面情况似的另一种实例); 6.执行一条计算查询结果语句,返回查询结果(object); 7.执行查询语句,返回OleDbDataReader; 8.执行查询语句,返回DataSet; 9.执行SQL语句,返回影响的记录数; 10.执行多条SQL语句,实现数据库事务; 11.执行一条计算查询结果语句,返回查询结果(object); 12.执行查询语句,返回OleDbDataReader;执行查询语句,返回DataSet; 复制代码 5.DbHelperOra 1.数据访问基础(基于Oracle),主要是用来访问Oracle数据库的。 2.得到最大值;是否存在;是否存在(基于OracleParameter ); 3.执行SQL语句,返回影响的记录数; 4.执行多条SQL语句,实现数据库事务; 5.执行带一个存储过程参数的的SQL语句; 6.向数据库里插入图像格式的字段(和上面情况似的另一种实例); 7.执行一条计算查询结果语句,返回查询结果(object); 8.执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close ); 9.执行查询语句,返回DataSet; 10.执行SQL语句,返回影响的记录数; 11.执行多条SQL语句,实现数据库事务; 12.执行一条计算查询结果语句,返回查询结果(object); 13.执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close ); 14.执行查询语句,返回DataSet; 15.执行存储过程 返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close ); 16.执行存储过程;构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值); 17.执行存储过程,返回影响的行数; 18.创建 OracleCommand 对象实例(用来返回一个整数值) 复制代码 6.DbHelperSQLite [code=csharp] 1.数据访问基础(基于SQLite),主要是用来访问SQLite数据库的。 2.得到最大值;是否存在;是否存在(基于SQLiteParameter); 3. 执行SQL语句,返回影响的记录数 4.执行多条SQL语句,实现数据库事务。 5.执行带一个存储过程参数的的SQL语句。 6.向数据库里插入图像格式的字段(和上面情况似的另一种实例) 7.执行一条计算查询结果语句,返回查询结果(object)。 8.执行查询语句,返回SQLiteDataReader 9.执行查询语句,返回DataSet 10.执行SQL语句,返回影响的记录数 11. 执行多条SQL语句,实现数据库事务。 12. 执行一条计算查询结果语句,返回查询结果(object)。 13.执行查询语句,返回SQLiteDataReader 14.执行查询语句还参数,返回DataSet[/code] 7.DbHelperSQLP 8.DbHelperSQL 9.OracleHelper

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

路奇怪

有钱出钱,没钱多出编程主意啊

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

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

打赏作者

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

抵扣说明:

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

余额充值