个人博客网: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. ActiveMQ 事务、集群、持久订阅者、ActiveMQ监控

    JMS介绍 JMS是什么? JMS的全称Java Message Service,既Java消息服务. JMS是SUN提供的旨在统一各种MOM(Message-Oriented Middleware) ...

  2. Lottery

    0x01 修改金币到8位,才能买东西 robots.txt中发现.git泄露 下载附件,得到源码 审计api.php 我们传入的值与随机生成的值进行比较, 按照相同的个数,得到不同的钱 if($num ...

  3. 学习笔记:平衡树-splay

    嗯好的今天我们来谈谈cosplay splay是一种操作,是一种调整二叉排序树的操作,但是它并不会时时刻刻保持一个平衡,因为它会根据每一次操作把需要操作的点旋转到根节点上 所谓二叉排序树,就是满足对树 ...

  4. xpython操作excel之xlwt与xlrd

    xlwt与xlrd只能针对xls格式的excel进行操作!!!(openpyxl操作excel) xlwt写excel # pip install xlwt下载导入xlwt写xls格式的excel操作 ...

  5. Django之请求生命周期

    settings.py中间件执行 自定义中间件的配置: (1)任意新建一个py文件,导入模块from django.utils.deprecation import MiddlewareMixin ( ...

  6. 疯狂VirtualBox实战讲学录 以及 virtualbox完全学习手册 之我见

    都是是很专业,并钻石得很深的内容,但,有些事情是交替进行着的深入,太专注于VIRTUAL BOX就必要要牺牲其它的东西.

  7. HDU3746 Cyclic Nacklace

    题目链接:https://vjudge.net/problem/HDU-3746 知识点: KMP 解题思路: 论如何用 \(Next[]\) 数组求循环节. AC代码: #include <b ...

  8. ShoneSharp语言(S#)软件更新13.7版

    ShoneSharp语言(S#)编辑解析运行器 软件更新13.7版 作者:Shone 近期在写博客过程中对S#进行增强,把语法规则更新到2.0版,并同步更新软件到ShoneSharp.13.7.exe ...

  9. 【Mac】pip自定义源【永久有效】

    鉴于国内网络环境,pip安装比较慢已成为不争的事实,通过以下几步轻松解决 1.创建文件夹   mkdir -/.pip 2.创建配置文件  vim -/.pip/pip.conf mkdir ~/.p ...

  10. python list 与 String 互相转换

    str0 = '127.0.0.1' list0 = str0.split('.') print(list0) #['127', '0', '0', '1'] str1 = '#'.join(list ...