java种与对象的理解

java类与对象的理解

                     ========正文========
    java编程是完全基于面向对象的编程,所以每一个初学者,特别是刚学习过C语言或是其他基于过程化编程的语言的人,一开始都会对其中的对象理解存在多多少少的误区或是模糊印象,所以我想通过自己的理解在此将我的对于对象编程的理解记下来供初学者参考。不过毕竟我也是个初学者,说不上会有多精辟的理解,但会代表某些初学者的心声。

    接下来的从基础开始谈,对象,世界上每一个事物,无论是什么物体,都可以将之抽象为对象,你只需要关注该物体中所要用到的特点或功能,也就是对应于java中的对象属性和方法。

    、重载:
    在java中,提供了类机制来创建对象,用构造函数来对一个对象的属性进行初始化,在类中,系统会默认一个无参数的构造函数可以使用,但我们自己可以通过自定义构造函数来达到创建对象时的某些目的,比如说对对象的某些属性进行初始化。需要注意的是,一旦自定义了构造函数,默认的无参数构造函数将被覆盖,即不能再通过无参数构造函数创建对象。也就是说:构造函数是用来创建、初始化对象的。自定义构造函数时方法名相同,但参数类型、参数个数必须不同,才能保证创建对象时能正确创建我们所想要的对象。 

    、重写:
    当对象创建完成后,系统会在内存上分配一定的空间去存放该对象相关的数据,理论上一个类可以创建无数个对象,只要你的内存足够大。现在我们已经能创建对象了,并且能在创建对象时通过自定义构造函数来实现不同对象的初始化,但是我们还不满足,因为每个对象要实现的功能不一样,即使是双胞胎,来自同一对父母的最相近的两个子类,行为也是不一样的。那么有什么办法呢?
    答案肯定是有的,java的设计者已经帮我们想好了,java允许我们对于同一个方法可以利用“重写父类中的方法”来实现我们的目的。java中每个对象都可以定义自己的方法,也可以通过重写父类中的方法去改变自己的行为,可以通俗地理解为他们都能有自己的行为。就是通过方法,对象才能有“生命力”,才能做事情,更是通过重写方法,我们才能使每个对象能按自己的“意志”行事。就像开车,同一辆车,同一条路,有人稳稳当当地开,有人喜欢刺激,就一路狂飙,甚至还漂一下移,摆摆角度。总之即使是同一个方法,不同对象实现的途径也不一样。不过我们又发现在方法重写后,在调用同名的方法时,系统是怎么知道我们调用的究竟是父类的方法还是子类的方法呢?
    重写方法时要注意:方法名、方法的参数类型、参数个数必须完全相同,系统通过对象名判断该对象是属于父类还是子类,从而知道我们调用的是哪个方法的。(只有在运行的时候系统才知道我们调用的是哪一个方法,在创建对象时系统并不知道调用的是哪一个方法)。