10187人加入学习
(18人评价)
C#编程-第二季-面向对象-宇宙最简单2021最新版

制作完成于2021-10月20日 使用VS2019

价格 免费

静态存储区: 存储一些静态字符串。

 

类似于jvm的区域划分。

[展开全文]

程序的内存区域: 堆, 栈, 静态存储区。

堆空间比较大, 读取速度较慢。

栈空间比较小, 但是读取速度较快。

[展开全文]

属性与成员变量不是相同的含义、

 

属性的使用与  公开的成员变量的使用相同,直接赋值 或直接取值

不是函数的调用方式

 

属性的set / get 块都可以单独设置访问权限。

属性相当于set / get函数的简写。

[展开全文]
寒山Zzz · 2023-01-12 · 017-属性 0

类的构造函数

类没有定义函数的时候, 系统会创建一个默认的构造函数。 这个默认的构造函数是无参的。 

在我们定义一个构造函数的时候, 默认的构造函数就会被替代。

在重载构造函数的时候, 尽量保证类中有无参构造函数。

[展开全文]

C# 的空指针异常与 java基本相同。

 

VS新建类:

右键项目- 添加- 新建项- 选择类, 在弹窗的最下面名称位置修改类的名称。

 

Math.Sqrt(); 求给定值的平方根。

 

private:私有的访问权限。

 

权限修饰符和java基本相同。

[展开全文]

结构体不需要实例化, 也就是new

 

而类需要进行实例化再进行使用。

[展开全文]

C#的类和java类的定义基本相同。

[展开全文]

C#的异常处理和java基本相同

 

try{

} catch (捕获的异常类型) {

 

[展开全文]

继续执行是从当前断点执行到 下一个断点。

[展开全文]

VS的debug方法与IDEA软件基本相同。

断点窗口可以禁用、删除断点。

[展开全文]

程序中的错误:  语法错误(编译错误)

语义错误(可能导致运行时异常)

语义错误也可能导致代码逻辑错误, 结果与需求不一致。

[展开全文]

练习8

a.Fun2(b);   // b.Fun1(1); 2        Fun1(5); 5 

 

 

b.Fun2(a);   // a.Fun1(1); 1        

                      Fun1(5); 5+1=6 

//用子类构造的,所以调用的是子类里的Fun1

[展开全文]
 class ClassA<T>
    {
        private T a;
        private T b;

        public ClassA(T a, T b)
        {
            this.a = a;
            this.b = b;
        }
        public T GetSum()
        {
            dynamic num1 = a;
            dynamic num2 = b;
            return (T)(num1+num2);
        }
    }
static void test02()
        {
            ClassA<int> c1 = new ClassA<int>(45,65);
            int res = c1.GetSum();
            Console.WriteLine(res);
            ClassA<string> c2 = new ClassA<string>("hello ", "world");
            string str1 = c2.GetSum();
            Console.WriteLine(str1);
        }
        
        static void Main(string[] args)
        {
            //test01();
            test02();
        }

 

[展开全文]
 class Vector3
    {
        private double x;
        private double y;
        private double z;
        public double Length()       
        {
            double res=Math.Sqrt(x * x + y * y + z * z);
            Console.WriteLine("res="+res);
            return res;
        }
        public void SetX(double temp)
        {
            if (temp<0)
            {
                return;
            }
            x = temp;
        }
        public void SetY(double temp)
        {
            if (temp < 0)
            {
                return;
            }
            y = temp;
        }
        public void SetZ(double temp)
        {
            if (temp < 0)
            {
                return;
            }
            z = temp;
        }
        public double GetX()
        {
            return x;
        }
        public double GetY()
        {
            return y;
        }
        public double GetZ()
        {
            return z;
        }
    }class Student
    {
        public string name;
        public int age;
        public string address;
        public string createTime;

        public void Show()
        {
            Console.WriteLine("名字:" + name);
            Console.WriteLine("地址:" + address);
            Console.WriteLine("年龄:" + age);
            Console.WriteLine("创建日期:" + createTime);

        }
    }
    class  Vehicle
    {
        public string brand;
        public double speed;
        public double maxSpeed;
        public double weight;
        public void Run()
        {
            Console.WriteLine("车在跑");
        }
        public void Stop()
        {
            Console.WriteLine("刹车");
        }
       
       
    }
    class Program
    {
        static void test02()
        {
            Vehicle car1 = new Vehicle();
            car1.Run();
            car1.Stop();
            Vector3 v1 = new Vector3();
            //v1.SetX(5.6);
            v1.SetY(4.5);
            v1.SetZ(8.45);
            //Console.WriteLine(v1.GetX());
            v1.SetX(-5);//默认是0,没有改变成负数
            Console.WriteLine(v1.GetX());
            Console.WriteLine(v1.Length());
        }
        static void test01()
        {
            Student stu1 = new Student();//声明对象+实例化对象
            Student stu2;//声明对象
            stu1.name = "李四";
            stu1.address = "山西";
            stu1.age = 18;
            stu1.createTime = "11月23日";
            stu1.Show();
            stu2 = new Student();//实例化对象
            
        }
        static void Main(string[] args)
        {
            //test01();
            test02();
        }
    }

 

[展开全文]


//定义类的泛型

class Studen  <T>{

}

<T>   ->    type  //可以指定某一类型

 

//定义方法泛型

public static T GetSum<T>(T a,T b){
dynamic num1 = a;

dynamic num2 = b;
return (T) (num1 +num2);
 

 

[展开全文]

授课教师

SiKi学院老师

课程特色

下载资料(1)
视频(60)