扣响C#之门笔记-第八章

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扣响C#之门笔记-第八章相关的知识,希望对你有一定的参考价值。

8.1 以对象为成员

1.类的成员不光是可以使int,double等基本类型,也可以是其他类的对象;

 class Program
    {
        static void Main(string[] args)
        {
            date d = new date(1992, 5, 18, new Time(12, 20, 5));
        }
    }

    class date
    {
        int year;
        int month;
        int day;
        Time  t;  //(1)含有其他对象成员的类

        public date(int year, int month, int day, Time t)
        {
            this.year = year;
            this.month = month;
            this.day = day;
            this.t = t;
        }
    }


    class Time 
    {
        int houer;
        int minute;
        int second;

        public Time(int houer, int minute,  int second )
        {
            this.houer = houer;
            this.minute = minute;
            this.second = second;
            
        }
    }

8.2 静态常量

(1)静态变量就是用satic 关键字修饰的变量

(2)静态变量只能使用类名引用不能使用对象调用

    class Program
    {
        static void Main(string[] args)
        {
            S s = new S();
            //s.number=5;// error (2)静态变量只能使用类名引用不能使用对象调用
            s.setSnumber();
            Console.WriteLine(S.number);
            S.number = 4;
            Console.WriteLine(S.number);
            Console.ReadKey();        
        }
    }
    class S
    {
        public static int number;  //(1)静态变量就是用satic 关键字修饰的变量
        public S()
        {
            number = 0;
        }
        public void setSnumber()
        {
            number = 5;
        }
    }

(3)静态方法就是用satic 关键字修饰的方法

(4)静态方法只能使用类名引用,不能使用对象引用

    class Program
    {
        static void Main(string[] args)
        {
            A.print();
            A a = new A();
            //a.print(); error (2)静态方法只能使用类名引用,不能使用对象引用
        }
    }
    class A
    {
        public static void print()  //(1)静态方法就是用satic 关键字修饰的方法
        {
            Console.WriteLine("print");
            Console.ReadKey();
        }   
    }

8.3常量

8.3.1 const常量

(1)const 常量定义方法:访问权限+ const +类型+常量名=初始值;

(2)const 常量必须在定义时候同时赋值;

(3)const 常量是隐式静态的(不能用static关键字修饰),因此只能使用类名引用

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(circle.PI);//(3)const 常量是隐式静态的(不能用static关键字修饰),因此只能使用类名引用
            Console.ReadKey();
        }
    }

    class circle
    {
       // public const double PI ;  (2)const 常量必须在定义时候同时赋值;
       // PI=3.14;
        public const double PI = 5;//(1)const 常量定义方法:访问权限+ const +类型+常量名=初始值;
    }

8.3.2 readonly常量

(1)readonly 常量定义方法:同const

(2)readonly 常量是非静态常量,每个对象可以有不同的值,可以在构造函数中初始化(也可在定义时候赋值);

(3)由于readonly 常量是非静态的,和普通变量一样,使用对象引用,不能使用类名引用

    class Program
    {
        static void Main(string[] args)
        {
            hotel h1 = new hotel(20);
            hotel h2 = new hotel(30);
            Console.WriteLine(h1.number);//(3)由于readonly 常量是非静态的,和普通变量一样,使用对象引用,不能使用类名引用
            Console.WriteLine(h2.number);
            //Console.WriteLine(hotel.number); //error
            Console.ReadKey(); 
        }
    }
}
class hotel
{
    public readonly int number=0;//(1)readonly 常量定义方法
    public hotel(int number)//(2)readonly 常量是非静态常量,每个对象可以有不同的值,可以在构造函数中初始化(也可在定义时候赋值);
    {
        this.number = number;
    }

8.4 重载

(1)函数名相同,参数个数或者参数类型不同 构成重载

(2)函数重载调用的原则是“最佳匹配”,系统或调用参数最匹配的那个函数

class Program
    {
        static void Main(string[] args)
        {
            //(2)函数重载调用的原则是“最佳匹配”,系统或调用参数最匹配的那个函数
            Console.WriteLine(calculate.add(1,1));
            Console.WriteLine(calculate.add(1.1, 1));
            Console.WriteLine(calculate.add(1, 1,1));
            Console.ReadKey();
        }
    }

    class calculate
    { 
    public static int add(int a, int b)
    {
        return a+b;
    }

    public static double add(double a, double b)//(1)函数名相同,参数个数或者参数类型不同 构成重载
    {
        return a + b;
    }

    public static int add(int a, int b,int c)
    {
        return a + b+c;
    }
    
    }

8.5 待续

 

以上是关于扣响C#之门笔记-第八章的主要内容,如果未能解决你的问题,请参考以下文章

第八章 读书笔记

第八章 读书笔记

第八章读书笔记

《Android深度探索》卷1 第八章笔记 1314 王宁

Thymeleaf(第八章)模板布局

第八章 读书笔记