学习要点

  • 封装
  • 访问控制符

封装

没有封装的代码有何缺陷?

例如:对狗狗的健康值赋值为-100。如何避免?——使用封装。

封装的概念

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

封装的好处

封装的步骤

上机练习:封装电子宠物系统的Dog类和Penguin类

需求描述:宠物的健康值必须在0-100之间,超过范围,则默认设置为60。

类的访问控制

访问控制符

 

private

default

protected

public

同一个类中

同一个包中

子类中

全局范围内

注意:如果一个java源文件里定义的所有类都没有使用public修饰,则这个java源文件的文件名可以是一切合法的文件名;但是一个java源文件中定义了一个public修饰的类,则这个源文件的文件名必须与public修饰的类的类名相同。

封装原则

  • 如果一个Java类的每个实例变量都使用private修饰,并且为每个实例变量提供setter和getter方法,那么这个类就符合JavaBean规范的类。
  • 实例变量尽量采用private修饰。类变量(static修饰),类似全局变量的成员变量,可以考试使用public修饰。
  • 如果某个类主要作为父类使用,该类里的方法仅希望被子类重写,而不想被外部直接调用,则考虑使用protected修饰。
  • 有些方法只是作为类的辅助实现方法,也称为工具方法,这些方法是用private修饰。

java包机制

提供了类的多层命名空间,用于解决类的命名冲突、类文件管理问题。一般把一组功能相同的类放在同一个包下。

包的命名规则

包名的所有字母要小写。

命名规则:倒写的域名.项目名称.模块名称.组件名称

导入包中的类

使用一个包中的类,有两种方式:

第一种:使用类全名

第二种:在包名之后和类名之前使用import相应类

导入指定包中某个类的静态成员变量或者成员方法

import static的用法:

导入静态成员,简化代码书写工作。

上机练习:电子宠物系统包的设计

Java常用的包

常用包

Java的核心类都在java包及其子包下,Java扩展的许多类都放在javax包及其子包下。这些核心类和扩展的类也就是通常所说的API(应用程序接口),通过查询API文档可以获得详细的使用帮助指导。

  • java.lang:该包提供了Java语言进行程序设计的基础类,它是默认导入的包。该包里面的Runnable接口和Object、Math、String、StringBuffer、System、Thread以及Throwable类需要重点掌握。
  • java.util:该包提供了包含集合框架、集合工具类、事件模型、日期和时间实施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。
  • java.io:该包为文件系统、数据流和序列化提供输入与输出相关接口和类。
  • java.NET:该包提供了网络编程相关的类和接口。
  • java.sql:该包提供了使用Java语言进行JDBC数据库编程相关类和接口。
  • java.awt和javax.swing:这两个包提供了GUI设计与开发的类和接口。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。
  • java.text:该包提供了java文本格式化相关类。

API文档的使用

类和封装的总结

使用面向对象的思想开发程序的好处

  • 客户和软件设计开发人员之间、软件设计开发人员内部交流更加顺畅
  • 提高软件设计和开发效率

从现实世界抽象出类

  • 找出名词确定类、属性
  • 找出动词确定方法
  • 剔除与业务无关的属性和方法

方法重载的规则

  • 方法名相同
  • 参数项不同
  • 与访问修饰符和返回值无关

static可以修饰属性、方法、静态块

 

static、非private修饰

 非static、private修饰

属性

类属性、类变量

实例属性、实例变量

方法

类方法

实例方法

调用方式

类名.属性

类名.方法()

对象.属性

对象.方法()

对象.属性

对象.方法()

归属

单个对象

实现封装的步骤

  • 修改属性的可见性
  • 创建公有的getter/setter方法
  • 在getter/setter方法中加入属性控制语句

JavaSE-08 封装的更多相关文章

  1. java新手笔记9 类的封装示例

    1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 ...

  2. java应届生面试考点收集

    回 到 顶 部 这些知识点来自于之前去百度实习.阿里.蘑菇街校园招聘的电话面试 未完待续 JavaSE 面向对象 封装.继承.多态(包括重载.重写) 常见区别 String.StringBuffer. ...

  3. JAVA自学笔记21

    JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...

  4. JavaSE学习总结第08天_面向对象3

      08.01 工具类中使用静态 例: class ArrayTool { //将构造方法私有,外界不能创建该类的对象 private ArrayTool(){} //遍历数组 public stat ...

  5. JavaSE基础之封装

    JavaSE基础之封装 一.Java中的封装 1.字面意思: 包装: 2.专业含义: 面向对象的三大特征之一: 指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所 ...

  6. Javase部分回顾(static (静态修饰符),修饰方法,单利的设计模式, 封装)

    static (静态修饰符)        1.修饰成员变量        静态变量的访问方式:            方式一 : 通过对象访问.                对象.变量名      ...

  7. JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)

    面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...

  8. JavaSE学习总结(五)——封装,继承,多态很简单

    java面向对象的三大特性是:封装.继承与多态,是面向对象编程的核心. 一.封装 简单说封装就是将同一类事物的特性与功能包装在一起,对外暴露调用的接口. 封装:封装也称信息隐藏,是指利用抽象数据类型把 ...

  9. JavaSE(二)之继承、封装、多态

    学习完类与对象终于认识到什么是类,什么是对象了.接下来要看的就是java的三大特征:继承.封装.多态. 一.封装(数据的隐藏) 在定义一个对象的特性的时候,有必要决定这些特性的可见性,即哪些特性对外部 ...

  10. Java 基础入门随笔(7) JavaSE版——面向对象定义、特征:封装、构造函数

    面向对象 面向过程:对于面向过程思想,强调的是过程(动作). 面向对象:对于面向对象思想,强调的是对象(实体). 特点: 1,面向对象就是一种常见的思想.符合人们的思考习惯.2,面向对象的出现,将复杂 ...

随机推荐

  1. 【HDU 2196】 Computer

    [题目链接] 点击打开链接 [算法] 我们知道,一棵树上离某个节点最远的节点,可能是经过它的祖先,再到那个祖先的某个孩子,或者,是它的那颗子树中,离它最远的一个节点,就不难想到以下算法 : 第一遍DF ...

  2. sharepoint2013安装AppFabric出错

    手动安装AppFabric "d:\WindowsServerAppFabricSetup_x64.exe" /i CacheClient,CachingService,Cache ...

  3. 【黑金教程笔记之003】【建模篇】【Lab 02 闪耀灯和流水灯】—笔记

    (1)       扫描频率和闪耀频率? 模块: /**************************************** module name:flash_module function ...

  4. E201700525-hm

    skeleton n. 骨骼; (建筑物等的) 骨架; 梗概; 骨瘦如柴的人(或动物);adj. 骨骼的; 骨瘦如柴的; 概略的; 基本的; cloud   n. 云; 云状物;  invoke   ...

  5. bzoj 2142: 礼物【中国剩余定理+组合数学】

    参考:http://blog.csdn.net/wzq_qwq/article/details/46709471 首先推组合数,设sum为每个人礼物数的和,那么答案为 \[ ( C_{n}^{sum} ...

  6. 基于ssh框架web示例

    基于ssh框架web示例 介绍 Spring Boot Web 开发非常简单,该示例包括包括目前web开发基本都需要用到的内容 - 序列化(json)输出 - 过滤器(filters) - 监视器(l ...

  7. 多选下拉框(select 下拉多选)

    方法一:使用multiple-select.js和multiple-select .css实现 HTML代码: <select id='checkedLevel' style="wid ...

  8. socket servlet webservice 区别及使用场景

    原文地址: http://blog.csdn.net/sdjkjsdh/article/details/51569481 1. Socket:使用TCP/IP或者UDP协议在服务器与客户端之间进行传输 ...

  9. 安装ipython解释器

    安装ipython解释器 1.安装ipython,指定douban源下载 pip3 install -i https://pypi.douban.com/simple ipython 2.安装朱皮特 ...

  10. docker学习教程

    我们的docker学习教程可以分为以下几个部分,分别是: 第一:docker基础学习 第二:docker日志管理 第三:docker监控管理 第四:docker三剑客之一:docker-machine ...