面向对象的特征之一:封装和隐藏:

一、问题的引入:

  当创建一个类的对象以后,可以通过“对象.属性”的方式,对对象的属性进行赋值。这里,赋值操作要受属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,往往需要给属性赋值加入额外的限制条件,这个条件就不能再属性声明时体现,所以只能通过方法进行限制条件的添加。(比如:setxxx()方法)。同时:我们需要避免用户再使用“对象.属性”的方式对属性进行赋值。则需要将属性声明为私有的

  >>>此时,针对属性就体现了封装性。

二、封装性的体现:

我们将类的属性xxx私有化,同时,提供公共的方法来获取(getxxx)和设置(setxxx)。

扩展:封装性的体现有很多:1、如上。2、不对外暴露的私有的方法。3、单例模式.....后面会说到。

三、封装性的体现,需要权限修饰符的配合。

1.java规定的4种权限修饰符,用来限定访问的权限。具体如下图:

2.四种权限可以用来修饰类和类的内部结构:属性、方法、构造器和内部类。

对于class的权限修饰只可以用public和default(缺省)。

  pubilic类可以在任意地方被访问。

  default类只可以被同一个包内部的类访问。

构造器(或构造方法、constructor)的使用:

一、构造器的作用

1.创建对象

2.初始化对象的信息

二、说明:

1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器。

2.定义构造器的格式:权限修饰符 类名(形参列表){}

3.一个类中定义多个构造器,构成重载。

4.一旦显式的定义了类的构造器之后,系统就不在提供默认的空参构造器,如果我们想用空参构造器,那么需要自己手写一个。

5.一个类中,至少有一个构造器。

贴士:属性赋值的先后顺序:

1.默认初始化:int a;

2.显式子初始化:int a = 1;

3.构造器中初始化:XXX xx = new XXX(2);

4.通过“对象.方法”或者“对象.属性”的方式,赋值:xx.a = 3;

以上操作的顺序:1<2<3<4

JavaBean的概念:

JavaBean是一种java语言写成的可重用组件。

所谓JavaBean,是指符合如下标准的java类:

  1.类是公共的

  2.有一个无参的公共的构造器

  3.有属性,且有对应的get、set方法

this关键字的使用:

1.this可以用来修饰:属性、方法、构造器

2.this修饰属性和方法:

  this理解为:当前对象(构造器中具体应该叫当前正在创建的对象)

  在类的方法中,我们可以使用“this.属性”或“this.方法”的方式,调用当前对象属性或者方法。但是,一般情况下,我们都选择省略“this.”。特殊情况下,如果方法的形参和类的属性重名时,必须显式的使用“this.变量”的方式,表示此变量是属性,用来区分形参。

3.this调用构造器:

  3.1我们在类的构造器中,可以显式的使用“this(形参列表)”的方式,调用本类中指定的其他构造器。

  3.2构造器中不能通过“this(形参列表)”方式调用自己。

  3.3如果一个类中有n个构造器,最多有n-1构造器中使用了“this(形参列表)”。

  3.4规定:“this(形参列表)”必须声明在当前构造器的首行

  3.5构造器内部,最多只能声明一个“this(形参列表)”

4.import关键字的使用

import:导入

1.在源文件中显式的使用import结构导入指定包下的类、接口

2.声明在包的声明和类的声明之间

3.如果需要使用“xxx.*”的方式,表示可以导入xxx包下的所有结构。

4.如果需要导入多个结构,并列写出也可。

5.如果使用的类或者接口是java.lang包下定义的,则可以省略import结构

6.如果使用的类或者接口是本包下定义的,则可以省略import结构

7.如果在源文件中,使用了不同包下的同名的类,则必须至少有一个类需要以全名的方式显示。

8.如果使用“xxx.*”方式表明可以调用xxx包下的所有结构。但是如果使用xxx子包下的结构,则需要显式导入。

9.import static:导入指定类或接口中的静态结构。

java面向对象之封装性的更多相关文章

  1. Java面向对象(封装性概论)

     Java面向对象(封装性概论) 知识概要:                   (1)面向对象概念 (2)类与对象的关系 (3)封装 (4)构造函数 (5)this关键字 (6)static关键 ...

  2. java面向对象(封装,继承,多态,抽象,接口的定义和实现)

    1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...

  3. Java面向对象的封装

    封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些 ...

  4. php面向对象的封装性

    面向对象编程 1:封装性 访问修饰符,作用为封装,防止外部访问. public 公有的 private 私有的 protected 受保护的 一开始具体也没搞明白是怎么回事,搞个小的Demo就出来了 ...

  5. JAVASE(七)面向对象:封装性(特性之一)、构造器、属性、关键字

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.封装性 1.为什么要使用封装性? 创建对象以后,可以通过对象.属性名的方法进行赋值.只能限制数据的类 ...

  6. Java面向对象之封装

     面向对象的三个特征:封装.继承和多态. Java开发的过程就是找合适的库对象使用,没有对象创建新对象.找对象,建立对象,使用对象并维护对象之间的关系. 类就是对现实生活中事物的描述,而对象就是这类事 ...

  7. java面向对象(封装-继承-多态)

    框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...

  8. 03_Java面向对象特征: 封装性

    1. 面向对象的概念 面向对象是相对面向过程而言,面向对象和面向过程都是一种思想 面向过程• 强调的是功能行为面向对象• 将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象 ...

  9. 【Demo 0004】Java基础-类封装性

    本章学习要点:       1.  Java封装特性;       2.  掌握类的定义:       3.  掌握类的调用方法; 一.封装特性        Java 纯面向对象语言,面向对象语言遵 ...

随机推荐

  1. WebSocket 教程(转载)

    WebSocket 教程   作者: 阮一峰 日期: 2017年5月15日 WebSocket 是一种网络通信协议,很多高级功能都需要它. 本文介绍 WebSocket 协议的使用方法. 一.为什么需 ...

  2. asp.net web api 2框架揭秘文摘

    第一章 概述 URI 统一资源标识符 URL 统一资源定位符 http方法:get,post,put,delete,head等 状态码:100-199,请求已被接受: 200-299,成功状态: 30 ...

  3. kubernetes使用ceph

    一.有一个ceph cluster,假设已经准备好了,文档网上一大堆 二.开始集成ceph和kuberntes 2.1 禁用rbd features rbd image有4个 features,lay ...

  4. jQuary总结2: jQuery选择器

    1  什么是jQuery选择器 获取页面元素,并且把页面元素包装成jQuery对象的方式 2 为什么要学习jQuery选择器 为了更加方便的获取页面上的元素,并且将元素包装起来,使我们编写程序时更加便 ...

  5. 设计模式23:Visitor 访问者模式(行为型模式)

    Visitor 访问者模式(行为型模式) 动机(Motivation)在软件构造过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的修改,将会给子类带来繁重的 ...

  6. Vc6.0 编译发生致命链接错误 :不能打开exe的文件

    错误: fatal error LNK1104: cannot open file "Debug/CeshiToolBar1.exe" 解决方法:打开任务管理器,找到对应的exe应 ...

  7. nginx中级应用-续

    1.server下配置的每个location,都需要有自己的一套代理配置 即要么加入: root  某个目录 要么加入 proxy_pass 某个地址;  proxy_redirect off; # ...

  8. Delphi xe5如何使用Bluestacks模拟器(用真机或者用猩猩,夜神模拟器,自带的不好用)

    首先,关于这个模拟器问题比较纠结,这是一个关于adb的问题. Delphi XE5会自动识别模拟器和真机,但是你必须先打开模拟器在打开Delphi IDE(Delphi开发环境),否则还得麻烦一会儿. ...

  9. Arcgis Android 坐标转换

    http://spatialreference.org/首先,在上面的网站查出现有的坐标srid,然后查出目标Srid. 参考api 示例代码 Point point = new Point(120. ...

  10. Mathcad操作tips:函数、符号计算

    函数 1. 利用“:”进行函数定义,如 2. 函数支持range variable输入,如 3. 常用数学函数可以在Insert - Function菜单中寻得. 4. 当不确定某个名字是否是函数名时 ...