黑马程序员--面向对象基础
来源:互联网 发布:u盘扩容软件 编辑:程序博客网 时间:2024/04/29 19:46
---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------
● 用生活中的事物来理解面向对象
1)类: 生活中相似的事物分为一类
2)对象:生活中具体存在的事物
3)属性:事物的各种特征
4)方法:事物的各种行为
●面向对象
1)类是抽象的概念,类是对象的类型;对象可以叫做类的实例(Instance);类不占内存,对象占内存;
2)对象的ToString()默认值为:命名空间.类名,可以通过重写(override)ToString()方法进行修改;
3)定义类的语法:
[访问修饰符] [static] class类名
{
//类的成员
}
4)通过类来产生一个对象的过程,叫做类的实例化:
语法:类名实例名=new类名();
在这个过程中,系统会自动对这个对象的属性进行初始化:数字类型的属性被初始化为0/0.0;string类型的属性被初始化为null;char类型的属性被初始化为\0(ASCII码的0);
5)对象的属性:
属性的作用:保护与之相对应的私有字段,保证对该字段的读取和赋值符合要求
定义属性的语法:
private数据类型字段名(小写);
public 数据类型属性名(大写)
{
get{return字段名;}
set{字段名=value;}
}
只读属性:在属性中不写set;
6)构造方法(函数):
(1)构造方法的作用:
对多个属性进行赋值时,不需要重复的写实例名;
可以保证用户在new一个对象的时候必须对某一个属性进行赋值;
可以在new一个对象的时候对只读属性进行初始化;
(2)构造方法定义的语法(方法名与类名相同且没有返回值):
[访问修饰符]类名([参数])
{
//构造方法的成员;(指示代词this表示当前的类)
}
注意:静态的构造方法不能有访问修饰符和参数,定义的语法:
static 类名()
{
//构造方法的成员;
}
(3)要实例化一个类,必须调用该类的构造方法;
当定义好一个类后,如果没有写构造方法,系统会默认加上一个无参数、无成员的构造方法,例如:类名实例名=new类名();
如果自己写了构造方法,则不再有默认的构造方法;
(4)构造方法可以重载
7)了解析构函数(~):
析构函数没有访问修饰符和参数;只能对类使用析构函数,一个类只能有一个析构函数;无法继承或重载析构函数;无法调用析构函数,它是被自动调用的;
8)通用类图:
类名:Person
-name:string
+Name:string
-age:int
+Age:int
+SayHi():void
-Get:int
●访问修饰符
1) private:私有成员,在本类的内部可以访问
2) protected:保护成员,在本类的内部和继承类中可以访问
3) internal:当前程序集内可以访问
4) public:公共成员,完全公开,没有访问限制
在类的级别,不写访问修饰符,默认为internal
在类的里面,方法的外面(包括方法),不写访问修饰符,默认为private
● 命名空间(namespace)
1) 命名空间的作用:解决类重名的问题,可以看做“类的文件夹”;
2) 在同一命名空间下的类可以直接被访问;
访问其它命名空间下的类则有2种方法:
(1) 通过using引用对方的命名空间;
(2) 写全称:命名空间名.类名;
3).net中的命名空间是一种逻辑上的层次关系;System是根命名空间;
---------------------- ASP.Net+Android+IO开发、.Net培训、期待与您交流! ----------------------
- 黑马程序员--面向对象基础
- 黑马程序员-------面向对象基础
- 黑马程序员--Java基础--面向对象基础
- 黑马程序员-----java基础(面向对象基础)
- 【黑马程序员】java编程基础,面向对象
- 黑马程序员_c#面向对象基础:属性
- 黑马程序员—面向对象(基础)
- 【黑马程序员】C#面向对象基础
- 黑马程序员_面向对象基础解读
- 黑马程序员-面向对象编程基础
- 黑马程序员 Java基础 ---> 面向对象(上)
- 黑马程序员 Java基础 ---> 面向对象(下)
- 黑马程序员----JAVA基础之面向对象
- 黑马程序员JAVA基础-面向对象
- 黑马程序员_面向对象基础
- 黑马程序员-基础-面向对象一
- 黑马程序员-基础-面向对象二
- 黑马程序员 java基础<—>--->面向对象
- android基础4——Mainifest
- HTTP协议
- Broadcom fullmac WLAN 驱动解析(2)
- 蓝牙协议栈技术开发市场前景
- 再思linux内核在中断路径内不能睡眠/调度的原因(2010)
- 黑马程序员--面向对象基础
- JS中event.keycode大全
- Oracle 动态查询,EXECUTE IMMEDIATE select into使用方法
- gbk, gb2312,big5,unicode,utf-8,utf-16的区别
- 图片无缝滚动
- ssh服务连接时常见问题
- 最实用的10个重构小技巧排行榜,您都用过哪些呢?
- 在ios中使用soundtouch库实现变声
- 成为IT精英,我奋斗了7年