学习-封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习-封装相关的知识,希望对你有一定的参考价值。

  封装就是把对象的属性,行为组装成一个类,并对其内部细节加以隐藏.

  一 组装类

  public class 类名{

  初始化块

  属性

  构造方法

  行为

  }  

  1.属性

  属性在定义时先要书写访问修饰符,确定外界是否有访问它的权限(一般都是private).

  只能是变量和常量,可以是基础数据类型也可以是引用数据类型;如果确定所有对象都共有一个确定值的属性时,则定义为常量,常量一般定义为 public 因为无法更改,随便看;变量定义时是自动初始化的,基础数据类型初始化为0,引用数据类型初始化为null.也可以手动赋值.

  类也是一种引用数据类型,所以一个类可以是另一个类的属性,这是类与类中的has a关系

  属性变量又叫做成员变量,整个类都能对其进行操作,属性常量也是.

  2.行为

  行为,就是对象所共有的方法,代表这对象所具有的功能.

  声明与实现与基础语法不违背,只是可选修饰符一般是不写的.

  注意:另一个类是可以作为形参传入方法,或者可以在方法实现部分直接创建对象,这是类与类关系中的use a关系.

  3.构造方法

  构造方法又叫做构造器,用于是产生对象.

  特点:a.如果不写构造方法,会默认为公共的,无参的构造方法.有写构造方法则默认构造方法自动无效.

     b.构造方法的方法名必须和类名一致.

     c.没有返回类型

     d.构造方法可以重载.根据外界创建对象传入的参数确定调用对应的构造方法.

  4.初始化块

  语法:

  动态初始化块:                                                                                   静态初始化块:

  {                                                                                                                        static{

  //语句                                                                                                                           //语句

  }                                                                                                                          }

  动态初始化块执行时机是父类构造方法之后,子类构造方法之前,所以通常不被使用,语句可以直接写进构造方法中,在此做个了解;静态初始化块执行时机是在类加载期并且只执行这一次,所以常作资源的准备工作.

  二 信息隐藏

  目前只学到了一种信息隐藏的方式,就是访问修饰符

  本类 同包 不同包  
  子类 非子类 子类 非子类  
private-私有的 × × × ×  
默认 × ×  
protected-受保护的 ×  
public-公共的  

 

  可以看到public是对外部公开的;protected则是只有同包和子类才能访问;默认既是同包;private只有自己能访问自己.访问修饰符可以修饰属性,行为,构造方法.但是如果构造方法设置为private,外界就没有办法创建对象了.

  在设计上,所有的属性都应该是私有的,但是要对外提供get()方法个set()方法;好处是,让属性更加可控,如果只想给外界看,就可以只设置get()方法,get()输出的也可以不是属性的数据类型;set()方法是需要接收数据的,可以在实现部分对数据加以限制,符合标准才允许修改.

  行为的访问修饰符,取决于这个行为需不需要被外部调用.

  三 使用类

  类是不能直接被使用的,因为抽象.需要通过类实例化一个对象.对对象进行操作.使用new关键字

  语法: 类名 对象名 = new 构造方法名();

  这句话构造方法的执行步骤:1.在内存划分空间.

           2.在该空间划分属性.

           3.对属性初始化.

           4.执行构造方法实现部分

  =号左边在栈空间划分一块空间,四个字节.用于存储创建好的对象赋值过来的引用.

 

 

 

 

 

  

以上是关于学习-封装的主要内容,如果未能解决你的问题,请参考以下文章

python学习13类2之封装

js学习cookie封装之删除

Hbase学习——对表操作进行封装

python学习 面向对象封装

[javase学习笔记]-6.7 封装

Python学习之旅---封装与反射(类的相关知识,面向对象三大特性:继承-多态-封装)