Java封装

MyEclipse 快捷键

  1. 自动生成构造方法和setter/getter方法
    Shift + Alt +S
  2. 保存所有文件
    Ctrl + shift +S---保存所有文件
  3. 自动代码提示
    Alt + /

封装的概念和原则

  • 将类的尽可能多的成员隐藏起来,防止外部类去随意修改它们,但是它提供公共的
    setter/getter方法给外部类使用
  • 将类的所有属性隐藏起来

使用封装的步骤

  1. 将类的所有属性使用关键字private去修饰,把它们变成私有的,不允许外部类直接访问
  2. 生成或者提供公共的setter/getter方法去操作这些被隐藏起来的属性
  3. 在类自己的 setter/getter方法中加入逻辑控制,以确保数据访问的有效性和安全性

封装的好处

  • 便于使用者正确使用系统,防止错误修改属性
  • 有助于系统之间的松耦合,提高系统独立性
  • 提高软件的可重用性
  • 降低了构建大型系统的风险

包的概念与作用

  • java使用包作为最小单元来管理项目中的类文件,将项目中的类文件按照类型进行分类管理,易于查找和维护
  • 解决java中同名类文件的命名冲突
  • 可以实现访问权限的控制 【包访问级别】

包的创建

  1. 先建包,再建类 【在eclipse下使用new->package创建包】
  2. 先建类,再建包 使用package 包名;指令去建立包,其实是将创建好的类指定到哪个包下面去。

注意:package 语句只能是除去注释以外的第一条语句

包的命名的规则

  • 包名以小写字母开头,且不能以点开头和结尾
    com.zbit.demo
  • 包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名
    com.zbit.demo1 //表示商业机构

cn.zbit.demo1 //表示中国地区
net.zbit.demo1 // 表示网络机构
gov.zbit.demo1 //表示政府机构
edu.zbit.demo1 //表示教育机构

  • 包名后续部分依不同机构内部的规范不同而不同
    com.zbit.hr.project1 //人事部门

com.zbit.it.project2 //信息技术部门
com.zbit.rd.project3 //研发部门 research and development

JDK提供基本包

java.lang:虚拟机自动引入
java.util:提供一些实用类
java.io: 输入、输出

包的导入

  • import java.util.Scanner; //导入util包下的指定的Scanner类
  • import java.util.*; //导入util包下的所有类

注意:import语句一定得在package语句之后

  • 如果想在同一个类使用另外两个包里的同名类,需要使用这个同名类的全名 【包名+类名】
    com.zbit.demo1.Pet pet1 =new com.zbit.demo1.Pet("哈哈", 100, 80);

com.zbit.demo2.Pet pet2 =new com.zbit.demo2.Pet("旺财", 90, 77, "哈士奇");

注意:使用类的全名的时候import语句可以省略

  • 每个包都是独立的,顶层包不会包含子包的类
  • package和import的顺序是固定的,package必须位于第一行(忽略注释行)
    只允许有一个package语句,其次是import,接着是类的声明

类的权限控制

  • 使用默认修饰的类只能在本包中的其它类使用
  • 使用public修饰的类能在任何地方使用 【需要的时候导包就可以了】

类的成员修饰符

  • 使用private修饰的成员只能在本类中使用,其它地方无法访问
  • 使用默认修饰的成员能在本类中使用,能在本包中的其它类使用,但是不能跨包使用
  • 使用protected修饰的成员能在本类中使用,能在本包中的其它类使用,不能在跨包的其它类使用,但是可以在子类中使用,无论这个子类是否在同一个包
  • 使用public修饰的成员能在任何地方使用【需要的时候导包就可以了】

static 修饰符的作用

  • 修饰成员变量,使得它成为静态变量,让本类的实例对象共享,此时可以通过类名直接访问
  • 修饰成员方法,使得它成为静态方法,让本类的实例对象共享,此时可以通过类名直接调用

Calc.属性

Calc.方法();

发表评论

发表评论