码迷,mamicode.com
首页 > 其他好文 > 详细

06 面向对象(上)

时间:2015-01-29 17:28:50      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

作者:thoughtInShare 出处:http://www.cnblogs.com/thoughtInShare 欢迎转载,也请保留这段声明。谢谢!

 
类可以理解为自定义的数据类型,可以用来定义变量,定义的变量都是引用变量;

Java的三大特征:封装,继承,多态;使用private,protected,public修饰符来实现封装,提供extend来继承父类;

构造器用于对类实例进行初始化,构造器支持重载;如果多个构造器包含相同的初始化代码,则可以把这些初始化放在普通的初始化块里完成,初始化块总在构造器执行之前被调用;

另外,还有一种静态初始化,用于初始化类,在类初始化阶段被执行。

如果继承树里面某一个类需要初始化,系统将同时会初始化该类的所有父类;

 

(1)类定义

[修饰符] class 类名{

  构造函数定义;

  Field,

  method,}

static修饰的成员不能调用没有static修饰的成员;构造器用于构造该类的实例;使用new来调用构造函数,返回该类的实例;

构造器是创建对象的根本途径,如果一个类没有构造器,将无法创建实例;

Field可以理解为成员变量,包括实例变量和类变量;

(2)static修饰的成员变量表明它属于这个类本身,而不属于该类的单个实例;static真正的作用急速用于区分Field,方法,内部类,初始化块是属于类本身,还是属于实例;

(3)构造器是一个特殊的方法,

[修饰符]  构造器名(形参列表)

{

  //

}

 构造器必须和类名相同;

构造器没有返回类型;其返回值是隐式的;

(4)this关键字

this关键字总是指向该方法的对象;即谁在调用这个方法,this就指向谁;

(5)如果要在静态方法中访问另一个普通方法,则只能重新创建一个对象;

(6)Java方法的参赛传递方式只有一种,值传递;所谓值传递,就是将实际参数的副本(复制品)传入方法内,而参数本身不会受到影响;

(7)方法重载,Java允许同一个类里定于多个同名方法,只要形参列表不同即可;返回值类型不能用于区分重载方法;

(8)一个类在使用之前要经过 类架子,类验证,类准备,类解析,类初始化等几个阶段;成员变量不用显式初始化,局部变量除形参外,都必须显式初始化;

当系统加载类或创建类的实例时,系统自动为成员变量分配内存空间,并为成员变量指定初始值;

局部变量不属于任何类或实例,它总是保存在其所在方法的栈内存中;

(9)package import import static关键字

package机制,提供多层的命名空间,用于解决类的名字冲突问题;
import 用于导入某个指定宝层次下的某个类;

import static 用于导入静态field,或方法;

(10)构造器是一个特殊的方法,用于创建实例执行初始化。

构造器创建对象的模式= 使用工程模式+反射

构造器不能被直接调用,构造器必须使用new关键字来调用;为了使构造器B可以调用构造器A的初始化代码,可以使用this关键字来调用相应的构造器;但是必须作为构造器执行体的第一条语句;

(11)继承的特点

Java继承使用extend关键字,具有单继承的特点,即一个子类只有一个直接父类;

子类包含于父类同名方法的现象被称作方法重写,也称作方法覆盖;

方法的重写遵循规则,方法名相同,形参列表相同,子类返回类型比父类方法返回类型更小或相等;子类方法的访问权限比父类更大或相等;

当子类覆盖了父类的方法后,子类对象将无法访问父类中被覆盖的方法,但是可以在子类的方法中调用父类被覆盖的方法;使用super关键字;

super用于限定该对象调用它从父类继承得到的Field或方法;

(12)重载发生在同一个类的多个同名方法,而重写发生在子类和父类的同名方法之间;

(13)如果子类定义的Field和父类同名,则会发生子类隐藏父类Field的情形,可以用Super来访问;

(14)子类不会继承父类的构造器,但是可以使用super来父类的构造器;

系统会在执行子类构造器之前,隐式条用父类的无参构造器;

(15)多态

子类是一种特殊的父类,因此可以把一个子类对象直接赋给父类的引用变量;当调用该引用变量的方法时,其方法行为总是表现出子类方法的行为特征,这就是多态;

与方法不同的是,父类的Field则不具有多态性特征;

(16)组合

继承破坏类的封装,组合则可以提供更好的封装性;组合即把该类当做另外一个类的组合部分,从而允许直接复用该类的Public方法;

继承是对已有的类做一番改造,而组合则是有明显的整体和部分的关系;

(17)初始化块

定义

修饰符{

  //

}

初始化块没有名字,没有标识符,修饰符只能是static,修饰时称作静态初始化块;

当创建Java对象时,系统总是先调用该类里定义的初始化块,有几个调用几个,依序执行;隐式执行,而且在执行构造器之前;

初始化块对所有对象的处理完全相同;

静态初始化块是类相关的,系统将在类初始阶段执行静态初始化块,在创建对象则不再执行;

06 面向对象(上)

标签:

原文地址:http://www.cnblogs.com/thoughtInShare/p/4259533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!