JAVASE(七)面向对象:封装性(特性之一)、构造器、属性、关键字
个人博客网:https://wushaopei.github.io/ (你想要这里多有)
一、封装性
1、为什么要使用封装性?
创建对象以后,可以通过对象.属性名的方法进行赋值。只能限制数据的类型,和数值的范围。但是往往我们需要更多的其它条件的限制。在属性的声明处无法限制。所以我们采用如下的方式。
- 使用权限修饰符对属性进行修饰,在其它的类中就无法直接对属性进行调用和赋值。
- 提供公共的方法,通过方法给属性进行赋值,或者通过方法获取值。在方法的内部我们可以对属性的赋值的进行条件的限制。
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(形参列表)
- this(形参列表) 只能放在构造器的首行
- 一个构造器中只能有一个this(形参列表)
- 如果N个构造器那么最多只能有N-1个 this(形参列表)
- 构造器中不能自己调用自己的构造器
五、关键字:import和package
package作用 : java为了将类进行统一的管理和划分,提供了包的概念。
说明 :
1.包名遵守标识符的规则和规范。xxxyyyzzz
2.每“.”一次代表一层目录
3.不同的包下面的类的类名可以相同
4.组织机构的类型(com.edu) + 组织机构的名称 + 项目名 + 模块名
例 : com.atguigu.chat.login
5.包名可以告诉编译器字节码所需要存放的目录。
6.package只能在源文件的首行
关键字 :import
- 在源文件中使用import显式的导入指定包下的类或接口
- 声明在包的声明和类的声明之间。(声明的位置)
- 如果需要导入多个类或接口,那么就并列显式多个import语句即可
- 举例:可以使用java.util.*的方式,一次性导入util包下所的类或接口。
- 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import语句。
- 如果在代码中使用不同包下的同名的类。那么就需要使用类的全类名的方式指明调用的是哪个类。
- import static组合的使用:调用指定类或接口下的静态的属性或方法 (了解)
- 如果已经导入java.a包下的类。那么如果需要使用a包的子包下的类的话,仍然需要导入。
JAVASE(七)面向对象:封装性(特性之一)、构造器、属性、关键字的更多相关文章
- JavaScript大杂烩3 - 理解JavaScript对象的封装性
JavaScript是面向对象的 JavaScript是一种基于对象的语言,你遇到的所有东西,包括字符串,数字,数组,函数等等,都是对象. 面向过程还是面向对象? JavaScript同时兼有的面向过 ...
- python面向对象-封装-property-接口-抽象-鸭子类型-03
封装 什么是封装: # 将复杂的丑陋的隐私的细节隐藏到内部,对外提供简单的使用接口 或 # 对外隐藏内部实现细节,并提供访问的接口 为什么需要封装 1.为了保证关键数据的安全性 2.对外部隐藏内部的实 ...
- Javascript面向对象三大特性(封装性、继承性、多态性)详解及创建对象的各种方法
Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation).继承(inheritance )和多态(polymorphism ).只不过实现 ...
- Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)
概念: ...
- java面向对象之封装性
面向对象的特征之一:封装和隐藏: 一.问题的引入: 当创建一个类的对象以后,可以通过“对象.属性”的方式,对对象的属性进行赋值.这里,赋值操作要受属性的数据类型和存储范围的制约.除此之外,没有其他制约 ...
- 第2课第2节_Java面向对象编程_封装性_P【学习笔记】
摘要:韦东山android视频学习笔记 面向对象程序的三大特性之封装性:把属性和方法封装在一个整体,同时添加权限访问. 1.封装性的简单程序如下,看一下第19行,如果我们不对age变量进行权限的管控 ...
- Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)
Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...
- Java面向对象的特征一:封装性
1.4 面向对象的特征一:封装性 当创建了类的对象以后,如果直接通过"对象.属性"的方式对相应的对象属性赋值的话,可能会出现不满足实际情况的意外,我们考虑不让对象来直接作用属性,而 ...
- java 面向对象(八):面向对象的特征一:封装性
面向对象的特征一:封装与隐藏1.为什么要引入封装性?我们程序设计追求“高内聚,低耦合”.高内聚 :类的内部数据操作细节自己完成,不允许外部干涉:低耦合 :仅对外暴露少量的方法用于使用. 隐藏对象内部的 ...
随机推荐
- pycharm中的TODO注释用法
pycharm 中可以在# 后面加TODO提示自己后续的开发动作. 点击pycharm又下角的小标签,会弹出一个列表,选择TODO选项. 进入TODO选项,可以看见所以设置的TODO,选择一个TODO ...
- 【HBase】快速了解上手rowKey的设计技巧
目录 为什么要设计rowKey 三大原则 长度原则 散列原则 唯一原则 热点问题的解决 加盐 哈希 反转 时间戳反转 为什么要设计rowKey 首先要弄明白一点,Regions的分区就是根据数据的ro ...
- 明解JAVA 第三章答案
练习3-1 package candle1220; import java.util.Scanner; public class Nightwatch { public static void mai ...
- indexDB解决过的难题
我第一次使用indexDB是1年前(2018年10月),运用这个黑科技,解决过3个异常棘手的问题(如果不是indexDB 几乎找不到其他解决方案)所以我经常强调,前端一定要学indexDB! 难题一: ...
- java中"no enclosing instance of type * is accessible"的解决方法
这种情况一般发生在“在静态方法里面使用内部类” 测试代码: public class Test { public static void main(String[] args) { A a = new ...
- hdoj 1874 dijkstra
在做PAT的甲1003,思考DFS和图什么的,时间紧张直接去看柳神(日后上传柳神的C++版本)的订阅,得知是dijkstra,转去用hdoj 1874练手,写了两天,终于调出来了 题目链接:http: ...
- 洛谷P1027题解
https://www.luogu.org/problem/P1027传送到题目 首先,让我骂一句那没事找事的Car还取一个那么奇怪的名字看到这个题,恕我直言,我们明显可以看出这是一道图的最短路问题. ...
- JQuery踩过的坑,遇到就记下
1 乱用选择器 坑人指数:200 JQuery选择器调用代价很大,反复调用效率更低.应采用缓存对象的方法或采用链式调用的方式. //错误的写法 $("#button").click ...
- jquery监听input
$(function(){ //输入框正在输入时 $("#ipt").on('input',function(){ if(!($('#ipt').val()=='')){ $(&q ...
- maven打包相关配置
1.在pom.xml中进行如下配置: <build> <plugins> <plugin> <groupId>org.springframework.b ...