黑马程序员-面向对象基本知识复习(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培训、期待与您交流! -------
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培训、期待与您交流! -------
相关文章推荐
- 黑马程序员_面向对象知识总结
- 黑马程序员—面向对象知识总结(二)
- 黑马程序员--面向对象基础知识学习笔记
- 黑马程序员_JAVA面向对象三大基本特征
- 黑马程序员--C#面向对象基础知识
- 黑马程序员——Objective-C语言知识整理——类与对象基本知识
- 黑马程序员_C#面向对象学习知识总结1
- 黑马程序员_C#面向对象知识总结3
- 黑马程序员————面象对象的基本知识要点
- 黑马程序员学习log第六篇基础知识:JAVA的面向对象之IO总结
- 面向对象的基本知识
- 黑马程序员_面向对象中继承的相关知识
- 黑马程序员——C#面向对象基础复习日记
- 黑马程序员-面向对象基础知识
- 黑马程序员_C#面向对象学习知识总结2
- 黑马程序员—面向对象知识汇总
- JavaSE复习之二 基础知识:面向对象 补充(6)
- 黑马程序员--面向对象基础知识(01)
- 黑马程序员学习log第七篇基础知识:JAVA的面向对象之GUI总结
- 黑马程序员-面向对象基础知识1