您的位置:首页 > 编程语言 > Java开发

Java——面向对象(二)

2016-03-07 19:44 295 查看
一、Java中的关键字

 (一)this关键字

            1.在类的方法定义中使用的this关键字代表使用该方法的对象的引用

            2.当必须指出当前使用方法的对象是谁时要使用this关键字

            3.有时使用this可以处理方法中成员变量和参数重名的情况

            4.this可以看做是一个变量,他的值是当前对象的引用。(就近声明原则—确定不了声明的同名的变量是哪个变量的时候,找离他最近的声明)

            5.this后面加括号代表他调用了自己类的另外一个构造方法

    (二)static关键字

             1.在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。

             2.用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员(静态方法不再是针对于某个对象的调用,所以不能访问非静态成员)

             3.可以通过对象引用或类名(不需要实例化)访问静态成员

                   (静态变量,字符串常量放在data seg(数据区)

                   动态方法针对某一个对象来调用

                   静态方法没有对象也可以调用)

     (三)final关键字

               1.final的变量的值不能够被改变(成员变量。局部变量)
               2.final方法不能够被重写
               3.final类不能够被继承
   
 (四)super关键字
              java类中使用super来引用基类的成分(引用父类方法中的所有成分,然后还可以再添加一些新的应用)

二、Java中的封装、重载、重写、继承、多态

     (一)abstract(抽象)

               
1.用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。
                2.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

                3.抽象类不能被实例化
                4.抽象方法只需声明,而不需实现。

     (二)overload(重载)

               1.方法重载(overload)指一个类中可以定义有相同的名字,相同返回值,但参数不同(个数或者类型)的多个方法。
                2.调用时,会根据不同的参数表选择对应的方法。
                3.构造方法也可以重载

   
  (三)overwrite/override(重写)
                1.在子类中可以根据需要对从基类中继承来的方法进行重写,重写后可以对方法进行修改
                2.重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
                3.重写方法不能使用比被重写方法更严格的访问权限(比如如果父类方法的访问权限是private,那么子类重写的方法就不可以是default)

     
(四)extends(继承)

                 java中使用extends关键字实现类的继承机制。语法

                                            


                通过继承,子类自动拥有了superclass(基类)的所有成员(成员变量和方法);Java只支持单继承,不允许多继承(一个子类只能有一个基类,一个基类可以派生出多个子类)
                 继承中的构造方法:
                        1.子类的构造的过程中必须调用其基类的构造方法
                        2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法
                                 a、可以使用this(argument_list)调用本类的另外的构造方法
                                 b、如果调用super,必须写在子类构造方法的第一行
                         3.如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用无参数的构造方法
                         4.如果子类构造方法中既没有显式的调用基类中的构造方法,而基类中又没有无参的构造方法,则编译会出错

         
(五)多态
                  1.动态绑定(多态或延迟绑定):指“在执行期间”(而非编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。(使得程序的可扩展性达到最好)
                    调用方法时,只要这个方法重写了,实际当中调用哪个,要看实际中new的对象
                  2.应用的条件:要有继承、重写、父类引用指向子类对象

三、Java中的语句与访问控制

        (一)package和import语句

              为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引用包(package)机制,提供类的多重类命名空间。如果想将一个类放入包中,Package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包,若缺省该语句,则指定为无名包,格式:

                                            


               Java编译器把包对应于文件系统的目录管理,package语句中,用‘.’来指明包(目录)的层次

               使用包的注意事项:

                       1.如果包里面第一句话写package,package里面可以跟很多层包,但是有一点需要注意,所编译出来的Class文件,必须位于正确的目录(和包的层次要完全的一致)下面。

                        2.如果在另外一个类里面调用包里面的类,必须使用该类的全名,java编译器才会找到该类

                        3.除了使用全名路径的引用外还可以使用import语句在文件的开头引入要使用到的类,可以是单个类或者所有包中的类

                               


                        4.访问同一个包中的类不需要引入

                        5.class文件的最上层包的父目录必须位于环境变量classpath下

                        6.执行一个类需要写全包名

                           生成自己的java包方法:在命令提示符要打包文件的上一层目录下:

                                  


                            (XX代表打包的名称,*.*至该文件中的所有类)

        (二)访问控制

             Java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该成员的访问权限。

                         


              对于class的权限修饰只可以用public(可以在任意地方被访问)和default(只可以被同一个包内部的类访问)。

三、Java中的类、对象类型与接口

            (一)Object类

                     1.object类是所有java类的根基类

                     2.如果在类的声明中为使用extends关键字指明其基类,则默认其基类为object类

                                                   


                   toString方法

                       Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息。

在进行String与其他类型数据的连接操作时,如(System.out.prin tln("info"+person)),将自动调用该该对象类的toString()方法

                      可以根据需要在用户自定义类型中重写toString()方法。

                   equals方法:

                        Object类中定义有:

                                 


             (二)对象类型

                       1.一个基类的引用类型变量可以“指向”其子类的对象

                       2.一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)

                       3.可以使用引用变量 instanceof 类名 来判断该引用型变量所“指向”的对象是否属于该类或该类的子类(instanceof 它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。)

                        4.子类的对象可以当做基类的对象来使用称向上转型(upcasting),反之称为向下转型(downcasting)

             (三)接口

                      定义:接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

                                 


                      原则:

                           1.多个无关的类可以实现同一个接口

                           2.一个类可以实现多个无关的接口

                           3.与继承关系类似,接口与实现类之间存在多态性

                           4.定义Java类的语法格式:

                                  


                     特性:

                          1.接口可以多重实现implements

                          2.接口中声明的属性默认为public static final的;也只能是public static final的;

                          3.接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的。

                          4.接口可以继承其它的接口,并添加新的属性和抽象方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: