学习-封装

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

  一 组装类

  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.执行构造方法实现部分

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

  

时间: 2024-10-10 05:19:13

学习-封装的相关文章

[js高手之路]javascript腾讯面试题学习封装一个简易的异步队列

这道js的面试题,是这样的,页面上有一个按钮,一个ul,点击按钮的时候,每隔1秒钟向ul的后面追加一个li, 一共追加10个,li的内容从0开始技术( 0, 1, 2, ....9 ),首先我们用闭包封装一个创建li元素的函数. 1 var create = (function(){ 2 var count = 0; 3 return function(){ 4 var oLi = document.createElement( "li" ); 5 oLi.innerHTML = co

JQuery学习—封装,让这个世界变得更简单

1.编者寄语 小编认为,JQuery就是用JavaScript封装成的一些js方法,又将这些方法封装在一起,称为JQuery.除此之外,js还有两个库就是Prototype.MooTools,这里不再多做介绍. 在之前学过的js中知道,js中的函数和方法都是需要我们自己亲自编写的,但是有些方法是我们经常要用到的,由此就产生了JQuery库,就好比生产汽车,飞机,大炮等,之前我们得先用钢材造螺丝,铁板等,然后再去造我们需要的汽车,飞机等,而现在是直接用造好的螺丝,铁板等做我们想做的东西. 这种思想

Java学习之面向对象一

1 面向对象 1.1     理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. l  面向过程的程序设计方式,是遇到一件事时,思考"我该怎么做",然后一步步实现的过程. 例如:公司打扫卫生(擦玻璃.扫地.拖地.倒垃圾等),按照面向过程的程序设计方式会思考"打扫卫生我该怎么做,然后一件件的完成",最后把公司卫生打扫干净了. l  面向对象的程序设计方式,是遇到一件事时,思考"我该让谁来做",然后那个"

0908 封装继承

学习封装继承首先了解访问修饰符: 我们最常用的就两个:public.private 不常用的:protected.internal(系统默认) public:公共的,只要引用命名空间(程序集,项目中的文件夹)就可以使用. private:私有的,只有在本类内部才能使用. internal:内部的,当前程序集内可以访问,程序集就是命名空间,此修饰符是默认的. protected:被保护的,只有本类和它的子类才能使用. ----------------------------------------

Altium designer软件如何设计原理图库封装图库以及交互式布局

欢迎大家关注http://www.raymontec.com(个人专博) Altium Designer学习-认识界面以及PCB设计整体要求 http://www.raymontec.com/altium-designer-%e5%ad%a6%e4%b9%a0-%e8%ae%a4%e8%af%86%e7%95%8c%e9%9d%a2%e4%bb%a5%e5%8f%8apcb%e8%ae%be%e8%ae%a1%e6%95%b4%e4%bd%93%e8%a6%81%e6%b1%82/ Altium

JS学习笔记-事件绑定

一.传统事件模型 传统事件模型中存在局限性. 内联模型以HTML标签属性的形式使用,与HTML混写,这种方式无疑造成了修改以及扩展的问题,已经很少使用了. 脚本模型是将事件处理函数写到js文件中,从页面获取元素进行对应事件函数的绑定以触发执行.但也存在不足之处: 1.一个事件绑定多个事件监听函数,后者将覆盖前者. 2.需要限制重复绑定的情况 3.标准化event对象 二.现代事件绑定 DOM2级事件定义了两个方法用于添加.删除事件:addEventListener().removeEventLi

学习Python+selenium自动化感想

终于,我踏入了学习自动化的道路.原本是排斥代码的,可是没想到真的认真去学了的时候,发现他是有意思的,完成作业以后觉得好有成就感.学习过程中,也遇到不少问题,就试着去找解决问题的办法,找不到解决办法了,也有同事可以请教.这样的学习机会,好难得啊. 现在已经学习了环境搭建.Python基础语法.元素定位(元素定位专门讲了几个课程,作业也做了3.4次,从切换iframe.切换句柄.返回上级,找到元素所在页面,再根据ID.name.text.CSS.class.XPATH等定位方式,找到所在元素,再对其

1 类、封装

类与对象 对象在需求中的使用 ? 对面向对象有了了解之后,我们来说说在具体问题中如何使用面向对象去分析问题,和如何使用面向对象. ? 我们把大象装冰箱为例进行分析. ? 在针对具体的需求,可以使用名词提炼的办法进行分析,寻找具体的对象. ? 需求:把大象装冰箱里 ? 对象:大象.冰箱 ? 分三步: ? 1.打开冰箱门 ? 2.将大象装进去 ? 3.关闭冰箱门 分析发现打开.装.关闭都是冰箱的功能.即冰箱对象具备如下功能: ? 冰箱打开 ? 冰箱存储 ? 冰箱关闭 用伪代码描述,上述需求中有两个具

python26 封装 多态 常用的内置函数 `__str__` `__del__` 反射 动态导入模块

今日内容: 1. 封装 2.多态 3. 常用的内置函数 `__str__ `__del__` 4.反射 5.动态导入模块 #1. 封装 ##1.1 什么是封装 ?(what) 对外部隐藏内部的属性,以及实现细节  , 给外部提供使用的接口 注意:封装有隐藏的意思,但不是单纯的隐藏 1.2学习封装的目的. 就是为了能够限制外界对内部数据的访问 1.3python中属性的权限分为两种 1.公开的 ?           没有任何限制 谁都能访问 2.私有的 ?          只有当前类本身能够访