黑马程序员-我的入学笔记2-关于类

---------------------- <a href="http://edu.youkuaiyun.com"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.youkuaiyun.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

   什么是类,它的意思是面向对象程序设计语言中的一个概念,类将具有共同特征的事物的抽象化。

   什么又是面向对象程序设计(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。看着英文的原有的意思,我似懂非懂。

   我的理解是一种架构不同于过程性编程.它是面向对象的,对象是类的实例化,类是将具有共同特性的事物抽象成计算机能够理解的东西。类具有封装性,将字段封装起来起到保护的作用,类的一些方法,我们不需要知道具体他是如何实现的,我们便可以对他进行调用。类的继承大大加强了类的功能,将类再分,只要添加特定的属性方法便成了更加实用的类,至于多态我还不太了解,不过从字面上应该是类的变化吧。其实我们只要知道一点,就是类是程序语言的发展所产生,为了我们更好的程序开发的工具。

   通过看视频,查网页初步了解了类,下面进行了总结写了一个学生类。

 public class Program1
    {

       static void Main(string[] args)
        {
           
//类是面向对象的,没有静态定义的类需要实例化后才能调用类的方法
            //访问修饰符和命名空间关系到调用的权限
            // private只能在本类中被访问,public 哪里都可以访问,protect 只有本类和子类中能访问
            // intemal只能在本项目中被访问,类的级别中默认intermal(扩展了解项目之间的调用,原来在引用中)

            

            Student zsStudent = new Student("张三", '男', 23);//实例化student类并通过构造方法传参

            Student lsStudent = new Student("李四", '男', 25, 98, 99, 105);//发现这的传参是没有经过set方法的
            zsStudent.SayHi();//调用类的方法
            zsStudent.Sum();//没有传入成绩时,默认为0


            //lsStudent.Name = "李三";//这里是错误的,Name属性为只读不能再赋值
            lsStudent.ChineseScore = 103;//属性中有set方法为可写,可以重新赋值
            lsStudent.MathScore = 106;
            lsStudent.Sum();
            Student.wag = 18;//静态的变量(方法)不需要new,可以直接调用
            Console.ReadKey();
           }

    }
         class Student
//这里定义了一个Student类,这个类中有3个字段6个属性2个方法
        {
            public static int wag;//静态的变量
            //这里是字段,可以通过封装属性保护字段
            string name;
            char sex;
            int age, chineseScore, englishScore, mathScore;

            //构造方法一般加public让别人访问到(不写构造方法,系统会默认产生一个无参的构造方法)
           public /*加了void就不是构造方法了*/ Student(string name, char sex, int age)
            {
                this.name = name;
                this.sex = sex;
                this.age = age;
            }
            //构造方法可以重载
            public Student(string name, char sex, int age, int chineseScore, int englishScore, int mathScore)
            {
                this.name = name;
                this.sex = sex;
                this.age = age;
                this.chineseScore = chineseScore;
                this.englishScore = englishScore;
                this.mathScore = mathScore;
            }

            //这里是封装了的属性
            public char Sex { get { return sex; } }
            public string Name { get { return name; } }
            public int Age
            {
                get { return age; }
            }
            public int MathScore
            {
                get { return mathScore; }
                set //我想怎么控制传参进来数的大小,结果不能控制用户输入的范围
                {
                    if (value > 100 || value < 0)
                        mathScore = 0;//只有超出范围后返回一个特定值给他
                    else
                        mathScore = value;
                }
            }
            public int ChineseScore
            {
                get { return chineseScore; }
                set { chineseScore = value; }
            }
            public int EnglishScore
            {
                get { return englishScore; }
                set { englishScore = value; }
            }

            //类的两个方法,方法也可以用static修饰,不过静态的方法中只能访问静态的变量,静态的变量也可用在非静态的方法中使用
            public void SayHi()
            {
                Console.WriteLine("大家好!我叫{0},性别{1},今年{2}岁.", name, sex, age);
            }
            public int Sum()
            {
                int sum = chineseScore + englishScore + mathScore;
                Console.WriteLine("语文{0},数学{1},英语{2},三门的总成绩为{3}", chineseScore, mathScore, englishScore, sum);
                return sum;
            }
        }

也许程序员的经验积累便是对一些类的积累,视频中还特别讲到了String类,是一个处理字符串的类,很重要。这里没有总结以后再学习下,进一步总结。在网上查阅到常用.Net Framework类中包括:String类常用方法、StringBuilder类、IO类(FileStream、File、Path)、XML操作类、集合类(ArrayList、List<T>、Dictionary<K,V>)等。需要做进一步多的了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值