面向对象编程全面认识
2010-11-07 12:09
309 查看
面向对象编程与面向过程编程的区别:
过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。
面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。
掌握面向对象的困难之处在于思路的转换:
我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。
n
面向过程的程序设计:
编写一个方法,void drivecar();
面向对象的程序设计:
将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法void drive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。
new关键字的作用:
·为对象分配内存空间。
n
·为对象返回一个引用。
·引起对象构造方法的调用。
n
各种数据类型的默认值为:
数值型 0
boolean false
char ‘/0’
对象 null
特殊变量this:
·使用this简化构造函数的调用。
·this变量代表对象本身
n
n·当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。
·关于实例方法和实例数据成员的进一步说明
一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在着一份拷贝。this变量允许相同的实例方法为不同的对象工作。每当调用一个实例方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。
关键字static:
n·静态方法和静态变量是属于某一个类,而不属于类的对象。
n·静态方法和静态变量的引用直接通过类名引用。
n·在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。
n
·可以用类的对象obj去调用静态的方法method(),如:obj.method()。
常量的定义:
n
·使用关键字final定义常量,例如: final double PI=3.1415926;
n·作为一种约定,在定义常量时,通常采用大写形式。
n
·为了节省内存,我们通常将常量声明为静态的(static)。
·final常量可以在声明的同时赋初值,也可以在构造函数中赋初值。
n
类的继承:
n·理解继承是理解面向对象程序设计的关键。
n·在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。
n·在Java中,不允许多继承。
方法的覆盖(override):
n
·覆盖发生在子类与父类之间。
·在子类中定义一个与父类同名、返回类型、参数类型均相同一个方法,称为方法的覆盖。
n
特殊变量super:
n
·特殊变量super,提供了对父类的访问。
n
·每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
·可以使用super访问父类被子类隐藏的变量或覆盖的方法。
n
多态:
通过覆盖父类的方法来实现,在运行时根据传递的对象引用,来调用相应的方法。
过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。
面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起。
掌握面向对象的困难之处在于思路的转换:
我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。
n
面向过程的程序设计:
编写一个方法,void drivecar();
面向对象的程序设计:
将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法void drive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。
new关键字的作用:
·为对象分配内存空间。
n
·为对象返回一个引用。
·引起对象构造方法的调用。
n
将一个对象的引用指向这个对象的实例,然后用对象的这个引用来操作类的实例。 创建一个文件,文件名Test.java 然后输入以下内容 class test{ public int i=0; } //test类有了那么怎么样操作这个类呢,先要创建对象,并让一个引用指向这个实例对象 public class Test{ public static void main(String[] s){ test t=new test(); //这时new test();就得到了test这个类实例的引用了。 //然后操作这个类 System.out.println(t.i); } }
各种数据类型的默认值为:
数值型 0
boolean false
char ‘/0’
对象 null
特殊变量this:
·使用this简化构造函数的调用。
·this变量代表对象本身
n
n·当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。
·关于实例方法和实例数据成员的进一步说明
一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在着一份拷贝。this变量允许相同的实例方法为不同的对象工作。每当调用一个实例方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。
关键字static:
n·静态方法和静态变量是属于某一个类,而不属于类的对象。
n·静态方法和静态变量的引用直接通过类名引用。
n·在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。
n
·可以用类的对象obj去调用静态的方法method(),如:obj.method()。
常量的定义:
n
·使用关键字final定义常量,例如: final double PI=3.1415926;
n·作为一种约定,在定义常量时,通常采用大写形式。
n
·为了节省内存,我们通常将常量声明为静态的(static)。
·final常量可以在声明的同时赋初值,也可以在构造函数中赋初值。
n
类的继承:
n·理解继承是理解面向对象程序设计的关键。
n·在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。
n·在Java中,不允许多继承。
方法的覆盖(override):
n
·覆盖发生在子类与父类之间。
·在子类中定义一个与父类同名、返回类型、参数类型均相同一个方法,称为方法的覆盖。
n
特殊变量super:
n
·特殊变量super,提供了对父类的访问。
n
·每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
·可以使用super访问父类被子类隐藏的变量或覆盖的方法。
n
多态:
通过覆盖父类的方法来实现,在运行时根据传递的对象引用,来调用相应的方法。
相关文章推荐
- 让你全面认识系统 svchost 进程
- 全面认识JUnit4.0
- CSS之Position全面认识
- 全面认识网页中附加码的作用
- 全面认识敏捷建模思想(1)
- 从TCP/IP模型全面认识FTP
- 浅谈你对面向对象编程的认识
- 全面深入认识C变量
- 全面认识F5负载均衡(1)
- 人际关系要全面的认识。
- 全面认识Svchost.exe进程
- 全面认识UML-类图元素(java)
- 全面认识JAVA(转载)
- 并发编程1:全面认识 Thread
- 全面认识思科交换机产品
- 并发编程1:全面认识 Thread
- 全面认识Perl进程处理函数
- 全面认识桥接、交换和路由等相关知识以及网线和电话线
- 全面认识桥接、交换和路由等相关知识
- [基础知识]全面认识AndroidManifest.xml文件(二)