现在的位置: 首页 > 综合 > 正文

关于java面向对象概念的知识点总结

2013年09月05日 ⁄ 综合 ⁄ 共 2179字 ⁄ 字号 评论关闭

面向对象的特点是,程序员可以根据具体问题设计出需要的类,用于解决问题。它有封装,继承,多态等特征,包括面向对象分析,面向对象设计,面向对象编程等方面。

1〉封装就是把对象的属性和方法组合在一起,统一对外提供访问权限。封装可以将程序的使用者和设计分开,设计者设计出可供外部操作和内部操作的内容,使用者只使用设计好的外部操作内容。封装可有效地保护程序中的数据和方法操作。

修饰符public:用public修饰的属性和方法,其他任何类都可以自由访问,

        private:用private修饰的属性和方法,除所在的当前类内部,其他任何类都无法直接访问,

        protect:用protect修饰的属性和方法,允许同包中的其他类或非相同包的子类访问,

        缺省修饰符的属性和方法允许相同包中的其他类访问,不允许其他包中的类(包括子类)访问。

 

2〉继承用,extends关键字实现,子类继承父类除构造方法外的所有属性和方法,使用super关键字调用父类的构造方法。在用super调用父类的构造方法是应写在子类构造方法的最前。子类方法中的权限不能比访问的父类方法中的权限更弱

    java.lang.Object类是所有类的父类,当一个类没有使用extends显示继承关系时,该类默认继承Object类

    java中只允许单继承,不允许多重继承,即:a如若继承了b,就不可再继承其他的类

    java中有多层继承,即:a可继承b,b可继承c,c又可以继承别的类,包括间接继承a

 

3〉多态是把子类的对象赋值给父类,用父类的引用调用方法的时候,具体执行方法的是子类的对象

 

4〉内部类是指在一个类内部再定义的一个类。使用内部类可以使代码块紧凑,模块性增强。

    内部类可以访问外部类变量,而外部类的函数却不能访问内部类函数中的变量

 

5〉构造方法与类名相同,前不加任何返回类型(包括void)。使用构造方法可方便的实现对象的初始化。如若自定义了构造方法,则编译器就不再自动产生不带参数的构造方法。故在main函数中产生类的对象前应先定义一个空的构造方法。

    构造方法中this和super只能只能出现一个,并且this和super应作为第一句出现

 

6〉对象的比较有"=="与"equals"两种方法,前者用于比较变量的值是否相等,
    后者用于比较两个对象中的内容是否相等,用法如下:
    a==b    a.equals(b)

 

7〉在方法中定义的内部类只能访问方法中的final类型的局部变量,用fianl定义的局部变量相当于是一个常量,它的生命周期超出方法运行的

    生命周期

 

8〉final定义的变量即视为常量,对final定义的变量赋值可直接赋值或在下面的构造方法中对其赋值(如若在构造方法中对final定义的变量进行赋值,则需要在该类中其他的构造方法也做同样的工作)

 

9〉抽象类,如若一个类中有一个(或一个以上)的抽象方法,该类就为抽象类。

    抽象类中可定义非抽象的方法。

    抽象类不可产生任何实例对象,也就是不能用new关键字去产生对象
    抽象类的子类一定要覆盖所有的抽象方法后才能被实例化,否则这个字类还是个抽象类

 

10〉接口,如若一个抽象类中的所有方法都为抽象的,这个类可定义为一个接口。java不允许多重继承,所以如若要实现多个类的功能,则可以通过实现多个接口来实现。

      一个类可以继承一个父类的同时,实现一个或多个接口,extends关键字一定位于implements关键字之前

 

11〉抽象类和接口的比较:1)abstract class在java中表示的是一种继承关系,一个类只能使用一次继承关系,但是一个类却可以实现多个接口
                              2)在抽象类中可以有自己的数据成员,非abstract的成员方法和abstract方法。而在接口中,只能有静态的不能被修改的数据成员(即static final的),所有的成员方法都是public abstract的
                              3)实现抽象类和接口的类一定实现其中所有的抽象方法。抽象类中可以有非抽象的方法实现,而接口中不能有方法实现
                              4)一般情况下,在使用继承的时候,有先考虑定义接口

                              5)实现接口时,接口中的所有方法一定全部实现,如若部分实现,应定义为抽象类

 

12〉对可能出错的函数应提前用throws Exception为后来的程序员提醒

 

13〉父包和子包在使用上没有人和联系,即子包要使用父包中的类,应写上详细的包名,反之亦然
      用import语句声明包名后,下面的调用可省去要调用的包名

 

14〉编译器报错说找不到类,可从三方面分析:1)类名大小写

                                                       2)包名是否写对或是否'import'

                                                       3)path否正确设置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

抱歉!评论已关闭.