您的位置:首页 > 职场人生

黑马程序员--Java基础语法之面向对象

2015-03-18 22:10 288 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
-------

1、面向对象的三个特征: 封装(ncapsulation)   继承(Inheritance)   多态(Polymorphism)

2、对象的构造函数特点:1.函数名与类名相同、2.不用定义返回值类型、3.不可以写return语句。

      当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个无参的构造函数,当在类中自定义了有参构造函数后,默认的无参构造函数就没有了,所以有时需要显示的把无参构造函数在类中写出来。

3、构造代码块的作用:给对象进行初始化。对象一建立就运行,而且优先于构造函数运行。

和构造函数的区别:1、构造代码块是给所以对象进行初始化;2、而构造函数是给对应的对象初始化。

构造代码块中定义的是不同对象共性的初始化内容。

4、this的两种用法:1、用于区分同名变量的情况,主要是成员变量和局部变量同名的时候;2、用于构造函数间调用。

5、static特点:1、随着类的加载而加载。静态会随着类的消失而消失,说明它的生命周期最长。

        2、优先于对象存在。明确一点:静态是先存在。对象是后存在。

        3、被所有对象所共享。

        4、可以直接被类名所调用。

       由于静态成员可以直接被类名调用,故静态成员变量又称为类变量,而非静态成员变量又被称为实例变量。

实例变量和类变量的区别:

        1、存放位置: 类变量随着类的加载而存在于方法区中;实例变量随着对象的建立而存在于堆内存中。

        2、生命周期: 类变量生命周期最长,随着类的消失而消失;实例变量生命周期随着对象的消失而消失。

静态使用注意事项:

        1、静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态。

        2、静态方法中不可以定义this,super关键字。因为静态优先于对象存在。所以静态方法中不可以出现this。

        3、主函数是静态的。

静态代码块:

            static {

                           静态代码块中的语句。

              }

特点:随着类的加载而执行,执行一次,并优先于主函数用,于给类进行初始化。

6、对象的初始化过程,new一个新对象做以下几件事情:

   
    1、把类名.class文件加载到内存中

        2、执行该类中的static代码块,如果有得话,给该类进行初始化

        3、在堆内存中开辟空间,分配内存地址给对象

        4、在堆内存中建立对象的特有属性,并进行默认初始化

        5、对属性进行显示初始化

        6、对对象进行构造代码块初始化

        7、对对象进行对应构造函数初始化

        8、将内存地址赋给栈内存中的对象名变量

7、接口与抽象类

       相同点:都是不断向上抽取出来的抽象的概念。

       区别:1、抽象类体现继承关系,一个类只能单继承;接口体现实现关系,一个类可以多实现,同时接口与接口之间有继承关系。

                2、抽象类是继承,是 "is a "关系;接口是实现,是 "like a"关系。

                3、抽象类中可以定义非抽象方法,供子类直接使用;接口的方法都是抽象,接口中的成员都有固定修饰符。

                4、抽象类中可以私有变量或方法;接口中的常量和方法都是public修饰的权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: