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 ...
随机推荐
- MFS分布式文件系统【1】概述
注:以下内容来自互联网 MFS文件系统概论 MFS是linux下的开源存储系统,是由波兰人开发的.MFS文件系统能够实现RAID的功能,不但能够节约存储成本,而且不逊于专业的存储系统,能够实现在线扩展 ...
- 高级UI晋升之常用View(三)中篇
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从ViewPager来介绍常用View:文章目录 一.简介 二.基本使用 ...
- 使用SpringMVC<mvc:view-controller/>标签时踩的一个坑
<mvc:view-controller>标签 如果我们有些请求只是想跳转页面,不需要来后台处理什么逻辑,我们无法在Action中写一个空方法来跳转,直接在中配置一个如下的视图跳转控制器即 ...
- bigger is greater
题目: Lexicographical order is often known as alphabetical order when dealing with strings. A string i ...
- pytest-文件名类名方法名执行部分用例
pytest test_class_01.py 执行文件名 pytest -v -s test_class_01.py 执行文件名 pytest -v test_class_01.py::TestCl ...
- 编写Storm程序
- unlocked - 非锁定的标准输入输出函数
SYNOPSIS 总览 #include <stdio.h> int getc_unlocked(FILE *stream); int getchar_unlocked(void); in ...
- 15_TLB中的G属性
> TLB 是为了增加访问内存的效率 即 如果 是 29 9 12 分页 请求数据 可能需要访问 4次内存:为了解决这个问题:出现了 TLB (虚拟地址到物理地址的转换关系),如果目标地址在TL ...
- 分布式版本控制工具Mercurial------Linux下hg命令的使用
1.关于hg命令选项: 每一个每一个命令选项都有一个长的名称,如hg log 命令会使用 –rev选项; 大多数选项拥有一个短的名称,如—rev有一个-r的短名: 长名称以两条横线(–)作为起始,短名 ...
- boost 实现读写锁
#include <boost/thread/shared_mutex.hpp> #include <boost/thread/locks.hpp> using BoostMu ...