个人博客网:https://wushaopei.github.io/    (你想要这里多有)

一、封装性

1、为什么要使用封装性?

创建对象以后,可以通过对象.属性名的方法进行赋值。只能限制数据的类型,和数值的范围。但是往往我们需要更多的其它条件的限制。在属性的声明处无法限制。所以我们采用如下的方式。

  1. 使用权限修饰符对属性进行修饰,在其它的类中就无法直接对属性进行调用和赋值。
  2. 提供公共的方法,通过方法给属性进行赋值,或者通过方法获取值。在方法的内部我们可以对属性的赋值的进行条件的限制。

2、封装性思想具体的代码体现:

封装性的体现(狭义上)

1.私有化属性

2.提供公共的set/get方法

封装性的体现(广义上)

1.使用权限修饰符修饰属性。权限修饰符有四种 :private 缺省的 protected public

2.四种权限修饰符可以修饰:属性,方法,构造器,内部类

3.类只能被public和缺省的所修饰

二、类的成员之构造器

作用:①创建对象   ②用来给对象进行初始化
格式:
     权限修饰符 类名(形参列表){
             方法体;
    }
说明:
①如果一个类中没有显示的定义构造器,那么在创建对象的时候会默认的创建一个空参的构造器
②一个类中可以定义多个构造器,多个构造器之间构成重载
③一个类中如果显示的定义了构造器,那么系统就不会再创建空参的构造器了
④通过构造器赋值,只能赋值一次,所以还是需要set方法的。

三、属性的赋值顺序

赋值方式 :
1.默认值   2.显示赋值    3.构造器赋值   4.对象名.方法名/对象名.属性名  
赋值顺序 :1 ->  2 -> 3 -> 4

四、关键字: this

this关键字表示:当前的对象

this可以用来调用 :属性,方法,构造器

this调用属性和方法:
在方法和构造器中调用属性和方法,往往我们会省略掉"this."。如果构造器和方法中,局部变量名和属性名相同。那么我们必须使用"this."来区分局部变量和属性。

this调用构造器 :
格式 :this(形参列表)

  1. this(形参列表) 只能放在构造器的首行
  2. 一个构造器中只能有一个this(形参列表)
  3. 如果N个构造器那么最多只能有N-1个 this(形参列表)
  4. 构造器中不能自己调用自己的构造器

五、关键字:import和package

package作用 : java为了将类进行统一的管理和划分,提供了包的概念。
说明 :
1.包名遵守标识符的规则和规范。xxxyyyzzz
2.每“.”一次代表一层目录
3.不同的包下面的类的类名可以相同
4.组织机构的类型(com.edu) + 组织机构的名称 + 项目名 + 模块名
 例 : com.atguigu.chat.login
5.包名可以告诉编译器字节码所需要存放的目录。
6.package只能在源文件的首行

关键字 :import

    1. 在源文件中使用import显式的导入指定包下的类或接口
    2. 声明在包的声明和类的声明之间。(声明的位置)
    3. 如果需要导入多个类或接口,那么就并列显式多个import语句即可
    4. 举例:可以使用java.util.*的方式,一次性导入util包下所的类或接口。
    5. 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import语句。
    6. 如果在代码中使用不同包下的同名的类。那么就需要使用类的全类名的方式指明调用的是哪个类。
    7. import static组合的使用:调用指定类或接口下的静态的属性或方法 (了解)
    8. 如果已经导入java.a包下的类。那么如果需要使用a包的子包下的类的话,仍然需要导入。

JAVASE(七)面向对象:封装性(特性之一)、构造器、属性、关键字的更多相关文章

  1. JavaScript大杂烩3 - 理解JavaScript对象的封装性

    JavaScript是面向对象的 JavaScript是一种基于对象的语言,你遇到的所有东西,包括字符串,数字,数组,函数等等,都是对象. 面向过程还是面向对象? JavaScript同时兼有的面向过 ...

  2. python面向对象-封装-property-接口-抽象-鸭子类型-03

    封装 什么是封装: # 将复杂的丑陋的隐私的细节隐藏到内部,对外提供简单的使用接口 或 # 对外隐藏内部实现细节,并提供访问的接口 为什么需要封装 1.为了保证关键数据的安全性 2.对外部隐藏内部的实 ...

  3. Javascript面向对象三大特性(封装性、继承性、多态性)详解及创建对象的各种方法

    Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation).继承(inheritance )和多态(polymorphism ).只不过实现 ...

  4. Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)

    概念:                                                                                                 ...

  5. java面向对象之封装性

    面向对象的特征之一:封装和隐藏: 一.问题的引入: 当创建一个类的对象以后,可以通过“对象.属性”的方式,对对象的属性进行赋值.这里,赋值操作要受属性的数据类型和存储范围的制约.除此之外,没有其他制约 ...

  6. 第2课第2节_Java面向对象编程_封装性_P【学习笔记】

    摘要:韦东山android视频学习笔记  面向对象程序的三大特性之封装性:把属性和方法封装在一个整体,同时添加权限访问. 1.封装性的简单程序如下,看一下第19行,如果我们不对age变量进行权限的管控 ...

  7. Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)

    Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 ​ 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...

  8. Java面向对象的特征一:封装性

    1.4 面向对象的特征一:封装性 当创建了类的对象以后,如果直接通过"对象.属性"的方式对相应的对象属性赋值的话,可能会出现不满足实际情况的意外,我们考虑不让对象来直接作用属性,而 ...

  9. java 面向对象(八):面向对象的特征一:封装性

    面向对象的特征一:封装与隐藏1.为什么要引入封装性?我们程序设计追求“高内聚,低耦合”.高内聚 :类的内部数据操作细节自己完成,不允许外部干涉:低耦合 :仅对外暴露少量的方法用于使用. 隐藏对象内部的 ...

随机推荐

  1. Vue实现靠边悬浮球(PC端)

    我想把退出登录的按钮做成一个悬浮球的样子,带动画的那种. 实现是这个样子: 手边没有球形图.随便找一个,功能这里演示的为单机悬浮球注销登录 嗯,具体代码: <div :class="[ ...

  2. python工业互联网应用实战1—SQL与ORM

    从sql到ORM应该说也是编程体系逐步演化的结果,通过类和对象更好的组织开个过程中遇到的各种业务问题,面向对象的解耦和内聚作为一套有效的方法论,对于复杂的企业应用而言确实能够解决实践过程中很多问题. ...

  3. 三分钟快速搭建分布式高可用的Redis集群

    这里的Redis集群指的是Redis Cluster,它是Redis在3.0版本正式推出的专用集群方案,有效地解决了Redis分布式方面的需求.当单机内存.并发.流量等遇到瓶颈的时候,可以采用这种Re ...

  4. [hdu5313]二分图性质,dp

    题意:给定二分图,求添加的最多边数,使得添加之后还是二分图 思路:如果原图可以分成X,Y两个点集,那么边数最多为|X||Y|条.由于|X|+|Y|==n,所以需要使|X|与|Y|尽量接近.先对原图进行 ...

  5. json 格式要求

    json 格式中, 字符串类型需要使用双引号,不能为单引号

  6. 在linux下执行git clone、git pull 、git push等操作免密

    1. 通过ssh密钥实现 ssh-keygen -t rsa -C "你的邮箱" -f "自己定义的目录" 打开: id_rsa.pub ,将文件内容复制到 g ...

  7. Zabbix-部署

    目录 一. apt安装 Zabbix 部署结构图和主机环境 1.1 Zabbix-server 安装配置 1.1.1 安装zabbix仓库 1.1.2 安装Zabbix server.web前端.ag ...

  8. 数据分析之Numpy、Matplotlib库

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 菜鸟教程:https://www.run ...

  9. scrapy实现数据持久化、数据库连接、图片文件下载及settings.py配置

    数据持久化的两种方式:(1)基于终端指令的持久化存储:(2)基于管道的持久化存储 基于终端指令的持久化存储 在爬虫文件的parse方法中必须要return可迭代对象类型(通常为列表或字典等)的返回值, ...

  10. Djano之ORM多表查询操作

    # 把 model 转化为 迭代器去循环 MODEL.objects.all().iterator() # 等同于 values, values_list, 但是 only 这种方式 获取字段属性依旧 ...