java OOP第二章_封装
一、 封装:
属性通过private访问修饰符将其设置为私有的,只有当前类中可以访问,同时提供通过public访问修饰符的公共方法可以给任何类中访问。
通常针对属性提供公共的setter方法进行赋值,提供公共的getter方法进行取值,若需要的情况下可以在方法中添加一些逻辑判断代码保证数据的安全性。
代码参见:
com.oop.ch02.Dept
com.oop.ch02.Emp
1、八种基本数据类型对应的有八种引用数据类型(包装数据类型),
* byte short int long loat double char boolean
* Byte Short Integer Long Float Double Character Boolean
注:当基本数据类型的值转为引用数据类型的值(包装数据类型)时称为“自动装箱”,反之为“自动拆箱”。
2、实体需要满足的条件:
实体是一种特殊的Java类,主要用于对象模型和关系模型之间的关系传递的媒介,他要满足如下几个条件。
1) 要有与数据表字段相对应的属性
2) 提供属性对应的getter和setter方法
3) 提供有参和无参的构造方法
4) 重写toString()方法,方便在输出对象时以字符串的形式显示属性,方便我们调试程序。
二、 构造方法:
1、 为什么要使用构造方法:
构造方法是用于创建对象的特殊方法,只有通过构造方法才能创建对象。
2、 构造方法的特点:
a) 构造方法的名称必须与类名相同(首字母大写)
b) 构造方法不能写返回值类型,也不能写void
c) 构造方法也可以重载
d) 当定义一个类时,他就有一个默认不带参数的构造方法,但当定义了带参数的构造方法后,他就会自动消失,
因此当定义了带参数的构造方法的时候,都需要再定义一个带参数的构造方法。
三、 方法的重载(Overload):和参数有关,与返回值无关
方法名称相同,参数不同的方法称为重载的方法,参数不同指的是参数的“类型”、“个数”、“顺序”不同,因为系统在比较时是“按位比较”的。
重载是发生在同一个类的多个方法之间,重写(override)是发生在多个类的方法之间。 重写是子类方法重写父类的方法,重写的方法名不变,而类的构造方法名必须与类名一致,假设父类的构造方法如果能够被子类重写则子类类名必须与父类类名一致才行,
所以 Java 的构造方法是不能被重写
的。而重载是针对同一个类的,所以构造方法可以被重载
。 重写是父子之间的关系,重载发生在同一个类中。 四、 This关键字:
This是第一人称代词,当一个对象在调用某个属性或者方法时,this表示该对象(Dept)本身,通过this就能区分不同对象拥有的属性或方法。
五、 Static关键字:
1、Static是“静态的“,可以修饰类、属性、方法、代码块。
2、使用static修饰的属性和方法是类级别的,可以通过“类名.属性名“或”类名.方法名“直接访问静态属性或静态方法。
3、在静态方法或静态代码块中只能访问静态的属性或静态的方法,而不能访问非静态的属性或非静态的方法,
但非静态的方法中既可以访问静态的属性和静态的方法,也可以访问非静态的属性或非静态方法。
4、Static修饰的代码块称为静态代码块,是在类被加载时会自动调用一次;而构造方法是在每创建一个对象时都会被调用一次。
5、static可以定义静态常量,该常量是变量的一种特例,他的值必须在定义时就赋值,以后就不能再被更改。
六、 Final关键字:
Final是“最终“的意思,final修饰类表示该类不允许其他类来继承;
final修饰属性(成员变量)表示该变量是一个常量,它的值不允许再改变;
final修饰方法表示该方法不能被重写。
七、 成员变量和局部变量:
成员变量:定义在类中方法外的变量,从范围上来说是该类中所有方法都能访问的变量;成员变量在定义时可以不赋值,系统会自动根据类型赋默认值。
局部变量:定义在类的方法之中的变量,从范围上来说只有本方法才能访问的变量;局部变量在定义时可以不赋值,但在使用前必须要赋值。
java OOP第二章_封装的更多相关文章
- Java OOP——第二章 继承
1. 继承: ●继承是面向对象的三大特征之一,是JAVA实现代码重用的重要手段之一: ●继承是代码重用的一种方式,将子类共有的属性和行为放到父类中: ●JAVA只支持单继承,即每一个类只有一个父类,继 ...
- “全栈2019”Java多线程第二章:创建多线程之继承Thread类
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java异常第二章:如何处理异常?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- JAVA基础第二章-java三大特性:封装、继承、多态
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- Java编程思想_笔记_第二章_一切都是对象
第二章对于知识只是点到,会在以后章节会详细展开. 笔记的侧重会偏向记录自己知识模糊的地方.比如 xxx 很重要很难很实用,但是已经熟练使用就没有记录,而 “使用对象.成员名称来使用成员变量”,较简单而 ...
- 深入理解java虚拟机_第二章_读书笔记
1.本章内容目录: 概述 运行时数据区域 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 直接内存 HotSpot虚拟机对象探秘 对象的创建 对象的内存布局 对象的访问定位 ...
- Java OOP——第一章 对象和封装
1.软件出现的目的: 用计算机的语言描述现实世界 用计算机解决现实世界的问题 ◆面向对象设计和开发程序的好处: 交流更加流畅 提高设计和开发效率 计算机语言的发展向接近人的思维方式演变 ...
- JAVA 入门第二章 (面对对象)
本渣渣鸽了一个月终于有时间更新.因为有c++基础,学起来这章还是比较简单的,本章我觉得是程序猿质变课程,理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装 ...
- Upgrading to Java 8——第二章 Method References(方法引用)
概述 很多java 方法会使用函数式接口作为参数.例如,java.util.Arrays类中的一个sort方法,就接受一个Comparator接口,它就是一个函数式接口,sort方法的签名如下: pu ...
随机推荐
- on() 不支持hover事件
因为 .hover() 是 jQuery 自己定义的事件… 是为了方便用户绑定调用 mouseenter 和 mouseleave 事件而已,它并非一个真正的事件,所以当然不能当做 .bind() 中 ...
- 3. Python基础语法
注释 我们在文言文中经常会看到注释,注释可以帮助读者对文章的理解.代码中的注释也是一样,优秀的代码注释可以帮助读者对代码的理解.当然在代码编写过程中,注释的使用不一定只是描述一段代码,也可能的是对代码 ...
- UVA 1525 Falling Leaves
题目链接:https://vjudge.net/problem/UVA-1525 题目链接:https://vjudge.net/problem/POJ-1577 题目大意 略. 分析 建树,然后先序 ...
- 剑指offer——58数组中数值和下标相等的元素
题目三: 数组中数值和下标相等的元素. 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素.例如,在数组{-3,-1,1,3,5}中,数 ...
- No parameter name specified for argument of type
在使用SpringMVC绑定基本类型(如String,Integer等)参数时,应通过@RequestParam注解指定具体的参数名称,否则,当源代码在非debug模式下编译后,运行时会引发Handl ...
- nginx新增简单下载站点
配置nginx server { autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时 ...
- 第一章 Linux是什么
Linux是核心与系统调用接口两层中间的操作系统 不同硬件的功能函数并不相同,IBM的Power CPU与Inter的x86架构不同,所以同一套操作系统是不能在不同的硬件平台上面运行的.也就是说,每种 ...
- python调用tushare获取A股上市公司基础信息
接口:stock_company 描述:获取上市公司基础信息 积分:用户需要至少120积分才可以调取,具体请参阅最下方积分获取办法 注:tushare库下载和初始化教程,请查阅我之前的文章 输入参数 ...
- pytest_fixture-----conftest共享数据及不同层次共享
场景:你与其他测试工程师合作一起开发时,公共的模块要在不同文件中,要 在大家都访问到的地方. 解决:使用conftest.py 这个文件进行数据共享,并且他可以放在不同位置起 着不同的范围共享作用. ...
- RTL_PROCESS_MODULE_INFORMATION
typedef struct _RTL_PROCESS_MODULE_INFORMATION { HANDLE Section; // Not filled in PVOID MappedBase; ...