黑马程序员_面向对象

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


一、面向对象(万物皆对象):

1、面向对象不是替代面向过程,是对面向过程的补充和完善。

类的概念:是对有共同属性和方法的一种抽象。相当于建个模型,限制对象的范围。类是对象的类型。例如:人类的属性有,姓名、年龄、性别等属性,说,吃等动作。

对象就是类的具体的实实在在的表现。例如人类中具体的人。老师,学生,医生、家长等就具有姓名、年龄、性别等属性,说,吃等动作。

即是类是有属性和方法构成的。

属性:对象具有的各种特征,每个对象的每个属性都拥有特定值。

方法:行为,动作,执行的操作。

对象是类的实例。类不占内存,对象占内存。

2、类的定义:

[访问修饰符] class 类名

{

成员(属性和方法);

……

}

类的实例化,用关键字new

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

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

//定义person类

public class Person
    {

//属性
public string name;
       public int age;
       public char sex;

//方法

public void say()
       {
Console.WriteLine("我叫{0}{1}今年{2}岁",this.name,this.sex,this.age);
       }
    }

    static void Main(string[] args)
        {

          //实例化p1对象

Person p1 = new Person();
            p1.name = "张三";
p1.sex = '男';
p1.age = 22;
            p1.say();
            Console.ReadKey();     

         }

3、访问修饰符:

public           任何地方可访问

private         只能在本类访问(在类中如果不写,默认的是private)

internal       只能在本项目中访问(类不写,默认是internal)

protected    只能在本类和子类被访问

4、属性

属性的定义:get、set。

属性是为了保护与之相对应的字段。保证对字段的读取和赋值符合要求。

属性分为:读取、只读、只写。

允许外部访问的变量一定要声明为属性。

5、构造方法:实例化对象时,系统会为对象属性初始化,是个特殊的方法,定义一个构造函数后,系统就不在为我们添加无参数的构造方法,需要我们自己指定。

格式:与类名相同 ,无返回值

public class Person
    {

//无参构造方法
public Person()
        {
        }
   //有参数的构造方法
public   Person(string name,int age,char sex)
        {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }

     private string name;

     public string Name
     {
         get { return name; }
         set { name = value; }
     }
     private int age;

     public int Age
     {
         get { return age; }
         set { age = value; }
     }
     private char sex;

     public char Sex
     {
         get { return sex; }
         set { sex = value; }
     }

//方法

public void say()
        {
            Console.WriteLine("我叫{0}{1}今年{2}岁", this.name, this.sex, this.age);
        }
    }

static void Main(string[] args)
        {

//创建对象,并实例化
Person p1 = new Person("zhangsan",33,12);

            p1.say();

            Console.ReadKey();

}

5、析构函数

析构函数不能在结构中定义,只能对类使用,一个类只能有一个,无法重载和继承;无法调用析构函数,析构函数既没有修饰符也没有参数。

public class Person
    {

//析构函数
~ Person()
        {
        }

}

六、命名空间(namespace)

用于解决类重名的问题,可以看做"类的文件夹"。

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

写全称 命名空间.类名

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

七、字符串(string)

可以看成是char的只读数组,他的值是不可改变的,要改变字符串的内容,用StringBuilder类。

string name="zhangsan";

Console.Writeline(name[3]);

一切类型对可以调用.toString()方法。

static void Main(string[] args)
        {

string xm = "hello,world!";
            char[] chars = xm.ToCharArray();
            chars[2] = '我';
xm = new string(chars);
            Console.WriteLine(xm);
            string name = "Hello,World!";
            name.Equals(xm, StringComparison.CurrentCultureIgnoreCase);
            Console.WriteLine(name.ToLower());//小写
Console.WriteLine( name.ToUpper());//大写
bool isTrue= name.Contains('W');//是否包含W
           Console.WriteLine(isTrue);            string[] words= name.Split(',');  //按,分隔
for (int i = 0; i < words.Length;i++ )
            {
                Console.WriteLine(words[i]);
            }
           Console.WriteLine( name.Replace(',','.'));//把,替换.
Console.WriteLine(name.Substring(0, 3)); //从0开始截取长度为3的字符串
Console.WriteLine(name.IndexOf('H'));//查找H第一次出现的位置
Console.ReadKey();

}

 

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值