day08

面向对象的基本特征

    1,封装   2,继承   3,多态

一,封装

   概念:狭义---属性的私有化

             广义---方法(封装了一个功能,隐藏了方法体的实现代码)

                    ---类(封装了一类事物的特征)

                    ---组件(封装了一组类)

                    ---系统(封装了一个完整的系统)

   属性的私有化

     (1)在属性声明前加private

     (2)为私有属性提供公共的get/set方法(看情况),无特殊情况,一般都要提供标准的get/set

               get:让使用者获取该属性的值

               set:让使用者设置该属性的值,即赋值或修改

               标准的get/set方法

                  public xxx的类型 getXxx(){

                           return xxx;

                     }

                   public void setXxx(xxx的类型 y){

                            xxx=y;

                     }

                  注:xxx标识属性名

    权限修饰符

         作用:限定某个类型成员的可访问范围,可见性范围

           

        可修饰什么:

            private:成员(属性、方法、构造器、内部类)

            缺省:外部类、成员(属性、方法、构造器、内部类)

            protected:成员(属性、方法、构造器、内部类)

            public:外部类、成员(属性、方法、构造器、内部类)

            注:当public修饰外部类时,类名必须与源文件名一致,即一个源文件只能有一个外部的public

   return关键字:用于方法中

         形式:(1)return;

                            只能用于返回值是void的方法中,可用可不用,当需要提前结束方法执行

                   (2)return 返回值;

                            只能用于返回值不是void的方法中,而且必须使用

         作用:(1)结束当前方法(2)可以返回结果给调用者

类的第三个成员:构造器,又称构造方法

     1,构造器的作用:

            (1)和new一起用于创建对象 (2)在创建对象的同时,为属性初始化

     2, 声明构造器:

             【修饰符】 class 类名{  

                     【修饰符】 类名(){

                         }  

                     【修饰符】 类名(形参列表){  

                         } 

                 }

      ,3,构造器的特点:

          (1)每一个类都有构造器, 如果没有手动声明构造器,那么编译将会自动添加一个无参构造器;

                   如果已经手动声明了构造器,那么编译就不会自动添加无参构造,如果你需要,自己编写;

          (2)构造器可以重载 (3)构造器的名称必须与类名一致,并且没有返回值类型。

this关键字:当前对象

     用法:

       (1)this.属性
           当成员变量与局部变量重名时,可以在成员变量的前面加"this."
    (2)this.方法(..)
           当访问当前对象的成员方法时,可以加"this.",也可以省略
    (3)this()或this(实参列表)
           当需要访问本类的其他构造器时,可以使用,必须在构造器的首行

           例:

          

   1, 包的作用:

         (1)避免类的重名 (2)限定某些类、成员的可见范围 (3)组织管理类和资源文件

    ,2,包的声明格式

            package 包名; 必须在源文件的代码首行;

     3,包的命名规范和习惯:

          (1)所有单词都小写,单词之间用.分割 (2)习惯用公司的域名倒置 + 模块名

   ,4,  如何使用其他包的类?前提:该类是在其他包是可见

            (1)使用类的全名称,包.类名 (2)使用import语句先导包,然后在代码中就可以使用简名称

                     import 包.类名; import 包.*;

      

        

posted @ 2019-09-17 09:23  zzz222zzz  阅读(265)  评论(0编辑  收藏  举报