面向对象之封装
面向对象的程序设计语言通常都包含三大特征:
- 封装
- 继承
- 多态
信息隐藏
信息隐藏是对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问;外界对类内部定义的数据(对象的成员变量)直接操作会导致数据的错误、混乱或安全性问题
封装
封装是面向对象中最常见的一种也是最简单的,java中通过将一个对象的信息(属性和行为)封装到类中,避免让外界过多的关注类中的实现细节,使得外界访问程序时变得更为简洁。
public class Customer {
private int id;
private int vipLevel = 3;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getVipLevel() {
return vipLevel;
}
public void setVipLevel(int vipLevel) {
this.vipLevel = vipLevel;
}
}
类的封装表现形式通常为:将类中的属性通过private私有化,然后提供public方法以此对外提供访问接口
封装的优点
- 提高了对象数据的安全性
- 提高代码的可复用性
- 提高类的内聚性,降低耦合度
##package&import
package(包)
在实际开发中由于一个大型软件项目可能由很多不同的类文件,接口文件等文件构成,为了区分不同的功能模块,通常需要将不同的功能代码存放到不同目录中,因此使用package的结构来分类存储,包还有一个功能在可以防止文件重名
包的命名方式一般使用域名倒置写法,例如:
package com.softeem.oop;
package org.softeem.ssm;
package edu.hubu.comm.entity;
package net.softeem.top.test;
import
一般情况下开发中会涉及到多个类之间的相互调用,但是有可能这些类都位于不同的package中,因此,会涉及到一些跨包访问的问题,所以在java中可以通过import关键字将其他包中的类,接口导入到目标类中。
语法
import com.softeem.lesson05.oop2.*;
import java.util.ArrayList;
public class TestArray2 {
public static void main(String[] args) {
MyArray arr = new MyArray();
ArrayList list = new ArrayList();
}
}
package和import的定义必须在类的定义之前,并且顺序为package->import->class例如:
package com.softeem.lesson05.oop; import com.softeem.lesson05.oop2.*; public class TestArray2 { public static void main(String[] args) { MyArray arr = new MyArray(); } }