您的位置:首页 > 职场人生

黑马程序员-面向对象基本知识复习(1)

2013-10-16 10:42 330 查看
-------
Windows Phone 7手机开发、.Net培训、期待与您交流! -------

1.面向对象的概念:

描述一个对象:

特征——属性(或字段)

每个对象 的 每个属性 都有 一个特定值

行为——方法(成员函数)

类是对象的类型(共性的概括) 例如:人类是张三这个对象的类型

对象是类的实例(个性的描述)

类不占内存,类的实例生成后才开始占用内存(一般情况)

 

2.定义类的语法:

访问修饰符 class 类名:{

成员变量(可以赋值);

方法:

}

四种访问修饰符:

Public:公共

Internal:项目内

Private:私有的,一个类中

Protected:有继承关系的父子类中

默认不加访问修饰符,类的访问权限是internal

 

Public class person{

Public String name;

Public Int age;

Public char sex;

 

Public Void sayhello(){

Console.writeline(...);

}

}

 

Person aaa;

创建了一个对象的引用(定义了一个变量),但还未分配内存和初始化(类似于空的结构体指针)

Person aaa=new person();

初始化一个引用名叫aaa的对象,并调用类的 构造方法进行初始化。

没有new初始化的类实例不能赋值

 

*Static关键字:

有static关键字修饰的方法,只能够访问类中的静态成员,使用static方法时不需要实例化,用类名.方法名来访问

没有static关键字修饰的方法,能够访问类中的静态和动态方法,需要实例化,用实例名.方法名来访问

static变量和方法的内存空间都只创建一次,而动态的变量和方法每个实例都有一块内存空间

一个类中,静态的方法是属于类的,动态的方法是属于特定实例的,大部分情况下动态方法和类的属性关系密切。

 

*Main方法为什么必须是静态的? Main方法必须是静态的,因为包含Main方法的类不应该也不会被实例化(程序运行既存在于内存当中,程序结束才被销毁)。

 

*一个类中是否允许声明自己的实例?

一般情况下可以:

如:

Class person{

Person aaa=new person();

}

aaa是一个引用指向内存另外一块空间

但注意不要产生嵌套循环:

class person{

Person(){

Person aaa=new person();

}

}

aaa自动调用构造方法产生另一个实例,另一个aaa又产生更多的名叫aaa的实例,编译器不检查此种错误,但最后程序被抛出堆栈溢出的异常。

 

*其他的类可以调用main方法吗?

如同下面代码:

class program{

Main{

...

program.Main();

}

}

可以调用,main方法中的代码会被再次执行,应该把含有Main方法的类作为和其他类同等地位来看待

-------
Windows Phone 7手机开发、.Net培训、期待与您交流! -------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: