java编程笔记7 面向对象二

2011-03-03 22:37

1,            包的定义 

package必须作为java源文件的第一条语句: 

package       packagename;

如果省略了package语句,将放入默认包中,默认包没有名字。包以目录的形式组织 

 

引入包中的类:import语句

 

java.lang包是java语言的核心类库,是java程序运行必不可少的系统类库,系统会自动引入,不需要使用import再引入。

 

 

2,            类中变量和方法的访问权限

注意:类前面的的权限修饰符只能是public或者没有(缺省),缺省的类只能在本包中使用,public的类可以在所有包中使用。

这里要说的是类中成员变量和方法的访问权限,它们可以用publicprotected,缺省,private修饰

 

访问权限            同一类中            该类的子类        同一包中            其他包

 

public                  可以                    可以                    可以                    可以

protected            可以                    可以                    可以                    子类可以

缺省                    可以                    可以                    可以                    不可以(子类也不行)

Private                 可以                    不可以                不可以                不可以

 关于访问权限,http://wenku.baidu.com/view/526b0babd1f34693daef3e83.html总结的相当详细,已下载下来了,这里贴不上去

垃圾啊,文章长一点就得分两次

3,            类的继承

Class ChildClassextends FatherClass

{

       //继承父类的部分成员变量和方法,不用重复代码

       ……扩展的的成员变量或方法

}

规则:

子类和父类在同一个包中:

子类继承父类中publicprotected,友好型(即缺省,对本包友好)的成员变量和方法,不能继承私有的成员变量和方法

子类和父类不在同一个包中

子类继承父类的publicprotected成员变量和方法,不能继承私有和友好的成员变量和方法

 

 

覆盖:指子类拥有跟父类相同的的成员变量或成员方法。

覆盖可以隐藏父类中的成员变量和方法,覆盖的目的是通过在子类中重新定义变量和方法来扩展父类的功能,注意这里的重新定义指的是:返回类型,名字,参数完全完全相同,只有这样,才叫做覆盖了。(父类被遮盖了),覆盖方法的访问权限不能比原方法的低。

 

在子类的对象调用的时候,首先看扩展的方法中有没有,没有的话才去调用从父类继承的方法(事实上有了覆盖之后,被覆盖的从父类继承来的方法就看不见了

 

 

4,            类的多态性

当子类从某个父类继承来时,可能要修改父类中某个方法的实现方式(覆盖),当子类的方法被调用时,启用的是子类的方法。当方法被不同的对象调用时,产生不同的行为,这就是多态。

 

5,            抽象类

抽象类是专门用作其他类的父类来使用的,抽象类不能创建对象。

包含抽象方法的类叫做抽象类(可能也含有非抽象方法)

抽象方法指只有声明没有具体实现的方法。

 

abstract classClassName

{

       …..

       abstractreturnType method();

       …..

       ….

}

 

6,            接口

interface 接口名

{

       //接口体中的变量和方法

}

 

注意:

1)       interface只能被public修饰或者不修饰,public修饰的可以被任意一个类使用,不修饰的称为友好接口,只能被本包中类使用。

2)       接口中的变量全部是static常量,即static final的,这是默认的,省略static final也可以。

3)       接口中的方法全部是抽象方法abstract也可写可不写。(只能用public修饰或者缺省)

4)       一个类通过关键字implements声明自己使用(实现)一个或多个接口:

class ClassName implements interface1interface2

{

                     //实现接口中的所有方法,方法必须和接口中的声明完全一致

}

5)       接口的继承:

利用extends,接口也可以继承另一个接口,语法与类相同,当一个类实现了一个接口,而这个接口继承了另一个接口时,这个类必须实现所有接口中的方法。


posted @ 2011-03-15 12:58  jinmengzhe  阅读(230)  评论(0编辑  收藏  举报