黑马程序员技术交流社区

标题: 《面向对象》学习笔记 [打印本页]

作者: 李永涛    时间: 2012-11-30 00:12
标题: 《面向对象》学习笔记
类:
定义类的语法:
[访问修饰符] class 类名
{
成员;
……
}
类中可以包含变量、方法
在我们自己写的类中,我们在写方法时,先不用加static
例如:我们定义了一个叫person的类,这个类仅仅是人这个对象的模板,在这个模板中规定了人类对象应该有姓名 性别 年龄和sayhello方法
如:

那么如何通过一个类来产生一个对象呢?
通过类来产生一个对象的过程叫做类的实例化
语法:
类 实例名=new 类();

在访问类的属性和方法就可以这样来访问:
实例名.属性;实例名.方法名()。

只要没有加static的方法或属性,都必须先实例化,在通过实例名.方法名或实例名.属性来访问。
static的方法或属性,可以直接通过类名.方法名或类名.属性来访问

访问修饰符:在c#中有4个访问修饰符:
Public:可以再任何地方被访问
Internal:只能在本项目中被访问
Private:只能在本类中被访问
Preotected:只能在本类和子类中被访问
在一个类中定义变量或方法时,没有写访问修饰符,那么默认的访问修饰符就是private
定义一个public变量,在这个变量中含有get/set两个方法,就叫做属性,这个变量用于保护一个私有变量
允许外部访问的变量一定要声明为属性

读写属性:
具有get/set方法的属性就是读写属性
具有get方法的属性称为只读属性,这个属性只能读取,不能写入
具有set方法的属性称为只写属性,这个属性只能写入,不能读取(只写属性一般用的很少)
当我们实例化一个类的对象时,系统会自动对这个类的属性进行初始化;
数字类型初始化成:0/0.0
string 类型初始化成:null
Char类型初始化成:\0
构造方法:
使用构造方法的好处:
1,对多个属性进行赋值时,不需要重复的写实例名
2,可以保证用户在new一个对象的时候必须对某一属性进行赋值
3,在创建对象时对只读属性进行初始化
当我们定义好一个类之后,如果我们没有写构造方法,系统会自动的给我们加上一个默认的没有参数的构造方法,在这个构造方法中声明也不做,我们也看不到
我们可以定义一个构造方法:
构造方法是一个特殊的方法,它的名字和类的名字相同,并且没有返回值,所以连void都可以省略不写。我们一旦手写一个构造方法后,系统原先默认给我们添加的那个无参数的构造方法系统就不会再为我们自动添加了
要实例化一个类必须调用它的构造方法
构造方法也可以重载






在方法参数中:参数为数组,在数组前面加params 表示参数是可变的,并不代表它是一个数组类型的参数,并且可变参数必须作为最后一个参数
命名空间nameSpace,用于解决类重名的问题,可以看做“类的文件夹”
不再同一个命名空间下的类不能被直接访问,要想访问别的命名看空间下的类,有两种方法:
1,通过using引用对方的命名空间
2,写全称,命名空间名.类名



作者: 许庭洲    时间: 2012-11-30 07:58
值得学习ing!
作者: 杨伟斌    时间: 2012-11-30 18:04
学习ing!
作者: 黑马_黄开潮    时间: 2012-11-30 20:19
解决了不少困惑。{:soso_e121:}
作者: 快乐之恋    时间: 2012-12-3 13:17
{:soso_e142:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2