一、    封装:
    属性通过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第二章_封装的更多相关文章

  1. Java OOP——第二章 继承

    1. 继承: ●继承是面向对象的三大特征之一,是JAVA实现代码重用的重要手段之一: ●继承是代码重用的一种方式,将子类共有的属性和行为放到父类中: ●JAVA只支持单继承,即每一个类只有一个父类,继 ...

  2. “全栈2019”Java多线程第二章:创建多线程之继承Thread类

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  3. “全栈2019”Java异常第二章:如何处理异常?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  4. JAVA基础第二章-java三大特性:封装、继承、多态

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  5. Java编程思想_笔记_第二章_一切都是对象

    第二章对于知识只是点到,会在以后章节会详细展开. 笔记的侧重会偏向记录自己知识模糊的地方.比如 xxx 很重要很难很实用,但是已经熟练使用就没有记录,而 “使用对象.成员名称来使用成员变量”,较简单而 ...

  6. 深入理解java虚拟机_第二章_读书笔记

    1.本章内容目录: 概述 运行时数据区域 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 直接内存 HotSpot虚拟机对象探秘 对象的创建 对象的内存布局 对象的访问定位 ...

  7. Java OOP——第一章 对象和封装

    1.软件出现的目的: 用计算机的语言描述现实世界 用计算机解决现实世界的问题   ◆面向对象设计和开发程序的好处:    交流更加流畅    提高设计和开发效率 计算机语言的发展向接近人的思维方式演变 ...

  8. JAVA 入门第二章 (面对对象)

    本渣渣鸽了一个月终于有时间更新.因为有c++基础,学起来这章还是比较简单的,本章我觉得是程序猿质变课程,理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装 ...

  9. Upgrading to Java 8——第二章 Method References(方法引用)

    概述 很多java 方法会使用函数式接口作为参数.例如,java.util.Arrays类中的一个sort方法,就接受一个Comparator接口,它就是一个函数式接口,sort方法的签名如下: pu ...

随机推荐

  1. Dubbo入门到精通学习笔记(十四):ActiveMQ集群的安装、配置、高可用测试,ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

    文章目录 ActiveMQ 高可用集群安装.配置.高可用测试( ZooKeeper + LevelDB) ActiveMQ高可用+负载均衡集群的安装.配置.高可用测试 准备 正式开始 ActiveMQ ...

  2. socket API CSocket CAsyncSocket 用法及区别

    要进行网络编程就要和Socket打交道,Socket有同步阻塞方式和异步非阻塞方式两种使用,事实上同步和异步在我们编程的生涯中可能遇到了很多,而Socket也没什么特别.虽然同步好用,不费劲,但不能满 ...

  3. APP接口测试和功能测试点

  4. springcloud中config启动时候报错Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'config.info' in value "${config.info}"

    -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jm ...

  5. 2018-10-31-WPF-在触摸线程等待主线程窗口关闭会让主线程和触摸线程相互等待

    title author date CreateTime categories WPF 在触摸线程等待主线程窗口关闭会让主线程和触摸线程相互等待 lindexi 2018-10-31 9:30:9 + ...

  6. C# Func和匿名方法 简单使用

    今天敲代码遇见一个问题,解决中用到了C#的Func和匿名方法,发现挺好用的 定义一个这样的方法可以避免重复写try catch 这里用到了Func<int,string> ,它其实就是一个 ...

  7. 链表list

    Don't  lost link! list与vector不同之处在于元素的物理地址可以任意. 为保证对列表元素访问的可行性,逻辑上互为前驱和后继的元素之间,应维护某种索引关系.这种索引关系,可抽象地 ...

  8. nodejs mysql 连接数据库

    1.设计数据库 2.设计数据库表 3.下载MySQL模块 npm install --save mysql 4.编写代码 const mysql=require('mysql'); //1.连接 // ...

  9. leetcode-168周赛-1295-统计位数为偶数的数字

    题目描述: 方法一:O(N) class Solution: def findNumbers(self, nums: List[int]) -> int: ans=0 for num in nu ...

  10. List<Map<String,Object>> 中文排序

    @RequestMapping(value = "/getBaseCodess", method = RequestMethod.GET) public ModelAndView ...