黑马程序员——C#面向对象基础复习日记

来源:互联网 发布:2017怎么在淘宝买翻墙 编辑:程序博客网 时间:2024/05/16 13:46

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

01类  

面向对象概念:万物皆对象。例如:对某人某事一般从两方面来描述,即 特征行为
属性---对象具有的各种特征,每个对象的每个属性都拥有特定值,属性的值---方法,行动,动作.执行的操作。
对象的特征叫属性,对象的行为叫方法,对象是确定的具体的一个物体,不是抽象的品牌概念(大的分类)
类:类是模子,确定对象将会拥有的特征(属性)和行为(方法)

类和对象的区别:类是抽象的概念,仅仅是模板,比如“人类”。对象是一个你能够看得到,摸得着的具体实体。例如:你找不到人类,但能找到某个人。

对象可以叫做类的实例(Instance),类不占内存,对象才占内存。

类的定义:

语法:

[访问修饰符]class 类名

{

成员;

.....

.....

}

类名一般用Pascal命名法,首字母大写,类中可以包含变量的定义和方法。

下面我们定义了一个叫Person的类,这个类仅仅是人这个对象的模板.在这个模板中规定人类对象都应该有  姓名  性别 年龄属性和SayHello方法,代码如下:

class Person

    {

        public string name;

        public char sex;

        public int age;

 

        public void SayHello()

        {

            Console.WriteLine("我是{0},我是{1}生,我今年{2}岁了",name,sex,age);

 

        }

    }


02类的实例化


语法: 类  实例名=new 类();

类的成员的访问:    实例名.属性    实例名.方法名();

字段、方法、属性都可以叫做类的成员Mermber,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的.

通过一个类产生一个对象的过程,叫做类的实例化.

访问类的属性;//赋值                     访问类的方法;//调用

访问修饰符:在c#中有4个访问修饰符

public  :可以在任何地方被访问

intemal :只能在本项目中被访问

private  :只能在本类中被访问

preotected:只能在本类和子类中被访问

在类这个级别,不写访问修饰符默认为intemal,在类中定义变量或方法时,没有写访问修饰符默认private。

 03属性

 

属性的定义: get;set;

属性是为了保护与之相对应的字段的.保证对字段的读取和赋值符合要求.      属性可分为:读写/只读(只有get)/只写(只有set).允许外部访问的变量一定要声明为属性.

class Person

    {

        private string name;

        public string Name

        {

            get

            {

                return name;

            }

            set

            {

                if (value == "某某")

                {

                    name = "匿名";

                }

                else

                {

                    name = value;

                }

            }

        }

        public char sex;

        private int age;

        //定义一个变量,在这个变量中含有get/set两个方法,我们就叫做属性

        //通过一个公共属性保护私有变量

        public int Age

        {

            get

            {

                return age;

            }

            set

            {

                //这里有个关键字,value中存着用户赋值

                if (value >= 0)

                {

                    age = value;

 

                }

                else

                {

                    age = 0;

                }

            }

        }

 

    }

    class Program

    {

        static void Main(string[] args)

        {

            Person zsPerson = new Person();

            Person lsPerson = new Person();

            zsPerson.Age = 18;//set

            int num = zsPerson.Age;//get

 

        }

    }


04构造方法

 

避免重复写实例名。保证用户在new一个对象时必须对某一个属性进行赋值。 在创建对象时,对只读属性进行初始化。

当我们定义好一个类之后,如果我们没有写构造方法,系统会自动给我们加上一个默认的没有参数的构造方法,在这个构造方法中什么也不做。我们也看不见。

我们可以定义一个构造方法。构造方法是一个特殊的方法,它的名字和类的名字相同,并且没有返回值。连void都可以神略不写我们一旦手写一个构造方法后,系统原先默认给我们添加的那个无参的构造方法就不会再为我们添加了。要实例化一个类必须调用它的构造方法。构造方法也可以重载。


05 命名空间 namespace


解决类名重名的问题,如果代码和被使用的类在一个namespace则不需要using。

在不同命名空间下的类调用有两种方法:

     写全称 命名空间.类名     

     先using引用命名空间,再调用。


06字符串的处理

 

string是一个类class 看作char的只读数组。c#中数组:不可变性。

 实例名.ToCharArray();     得到字符数组,可修改

 解决大小写问题

ToLower();  都小写

ToUpper();  都大写

Trim();去掉两端的空白

s.ToLower();不能直接改变字符串

s=s.ToLower(); 重新赋值

s1.Equals(s2,StringComparison.OrdinallgnoreCase)     两个字符串进行不区分大小写的比较

string[] Split(params char[] separator)     将字符串按照指定的分割符分割为字符串数组;

string[] Split(char[] separator,StringSplitOptions.options)                         

options取RemoveEmptyEntries的时候移除结果中的空白字符串.

字符串替换:Replace( string oldValue,string newValue)后替换前

实例名.Replace();

取子字符串:

string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;

string Substring(int startIndex,int length), 取一段长度的字符串,不足报错;


---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

详细请查看:http://net.itheima.com/


原创粉丝点击