面向对象的程序设计语言通常都包含三大特征:
封装继承多态 信息隐藏是对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问;外界对类内部定义的数据(对象的成员变量)直接操作会导致数据的错误、混乱或安全性问题
封装是面向对象中最常见的一种也是最简单的,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 com.softeem.oop; package org.softeem.ssm; package edu.hubu.comm.entity; package net.softeem.top.test;一般情况下开发中会涉及到多个类之间的相互调用,但是有可能这些类都位于不同的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(); } }