C#学习笔记正课十

1、密封类

和密封方法类似,在类前加上密封关键词sealed后就能定义一个密封类。密封类无法被继续继承。

sealed class a1:aa//密封类无法被继承
{//密封方法只能去修饰重写后的方法
 //sealed修饰普通方法会报错
    public sealed override void fangfa()
    {

    }
}

2、子类构造

子类构造:在子类中调用父类的构造函数。

在子类继承父类后创建一个构造函数,使用base继承父类构造函数的参数。

class Father
{
    int a, b;
    public Father(int a,int b) 
    {
        Console.WriteLine("父类构造函数");
        this.a = a;
        this.b = b;
        Console.WriteLine(a+b);
    }
}
class Son:Father
{
    public Son(int a,int b):base(a,b)//base传参的底层逻辑相当于直接在对应字段进行赋值
    {
        Console.WriteLine("子类构造函数");
    }
}

3、向上引用

父类和子类有相同的一个方法,通过向上引用会先调用父类的方法。

class Fu
{
    public void Show ()
    {
        Console.WriteLine("父类方法");
    }
}

class Zi:Fu
{
    public new void Show()//此时调用时指向父类方法
    {
        Console.WriteLine("子类方法");
    }

}

如果想通过父类调用子类的方法,那么就需要用上虚方法virtual和重写override

4、静态关键字static

在哪用
       1.类的关键字class之前使用
       2.在方法的访问修饰符后使用
       3.字段的数据类型之前
 当类是静态类时,静态类中的成员就必须是静态的,不能包含其他类型的成员。
 普通类中可以定义静态的字段和方法。
 在调用静态成员时直接通过类名.来调用静态成员。

internal class Program
{
    static void Main(string[] args)
    {
        //
        //1.调用静态类中的静态成员
        int a1 = c1.i;  //通过类名.来调用静态成员
        c1.Fangfa();    //与调用字段一致
        //2.调用普通类中的静态成员
        //与上方一样不需要进行实例化,可直接通过类名来对静态成员进行调用
        
    }
}

//创建一个静态类
//静态类中不允许出现非静态字段和方法
public static class c1
{
    //声明字段和方法
    public static int i;//静态类中只能声明静态字段

    public static void Fangfa()//只能声明静态方法
    {

    }
}
public class PuTong
{   //普通类中可以声明静态字段和方法
    //声明静态字段和方法
    public static int i;
    public static void M()
    {

    }
}

5、时间类型DateTime

DateTime.Now;   获取本地时间,即自己计算机上的时间。

DateTime d2 = new DateTime(2026, 2, 17, 17, 05, 46);     自己定义一个时间类型,参数为年月日,时分秒

计算两个时间的间隔      TimeSpan t1 = d1 - d2;

//只获取
Console.WriteLine(t1.Days);//天数
Console.WriteLine(t1.Minutes);//分钟

d1.DayOfYear    当前是该年的第几天           

 d1.DayOfWeek      当前是该年的第几周

static void Main(string[] args)
{//日期与时间
 //获取当下的时间点
DateTime d1= DateTime.Now;//获取本地时间,自己计算机上的时间
    Console.WriteLine(d1);
    //自己定义时间
    DateTime d2 = new DateTime(2026, 2, 17, 17, 05, 46);//参数为年月日,时分秒
    Console.WriteLine(d2);
    //计算两个时间的间隔
    TimeSpan t1 = d1 - d2;
    Console.WriteLine(t1);
    //只获取
    Console.WriteLine(t1.Days);//天数
    Console.WriteLine(t1.Minutes);//分钟

    //计算100天后的日期
    DateTime d4 = DateTime.Now.AddDays(-100);
    TimeSpan t5 = d4 - d2;
    if (t5.Days>=0)
    {
        Console.WriteLine("过年了");
    }
    else
    { Console.WriteLine("没过年"); }

    Console.WriteLine(d1.DayOfYear);//当前是该年的第几天
    Console.WriteLine(d1.DayOfWeek);//当前是该年的第几周
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值