Java 封装

封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问

要访问该类的代码和数据,必须通过严格的接口控制

封装最主要的功能在于能够修改自己的实现代码,而不用修改那些调用代码的程序片段

封装的优点

良好的封装能够减少耦合、类内部的结构可以自由修改、可以对成员变量进行更精确的控制、隐藏信息,实现细节

实现Java封装的步骤

public class EncapTest{

// 修改属性的可见性来限制对属性的访问(一般限制为`private`)

private String name;

private String idNum;

private int age;

//对每个值属性提供对外的公共方法访问,即创建一对赋取值方法,用于对私有属性的访问

public int getAge() {

return age;

}

public String getName() {

return name;

}

public String getIdNum() {

return idNum;

}

public void setAge(int newAge) {

age = newAge;

}

public void setName(String newName) {

name = newName;

}

public void setIdNum(String newId) {

idNum = newId;

}

}

//变量如何被访问

public class RunEncap{

public static void main(String args[]) {

EncapTest encap = new EncapTest();

encap.setName("James");

encap.setAge(20);

encap.SetIdNum("1234");

System.out.print("Name:" + encap.getName() + "Age:" + encap.getAge());

}

}

接口

接口是一个抽象类型,是抽象方法的集合,接口通常以interface来声明;一个类通过继承接口的方式,从而来继承接口的抽象方法

接口并不是类,编写接口的方式和类很相似,但是它们属于不同概念。类描述对象的属性和方法;接口则包含类要实现的方法

除非实现接口放入类是抽象类,否则该类要定义接口中的所有方法

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类

接口与类相似点

一个接口可以有多个方法

接口文件保存在.java结尾的文件中,文件名使用接口名

接口的字节码文件保存在.class结尾的文件中

接口相应的字节码文件必须在与包名称相匹配的目录结构中

接口与类的区别

接口不能用于实例化对象

接口没有构造方法

接口中所有的方法必须是抽象方法

接口不能包含成员变量,除了static和final变量

接口不是被类继承了,而是要被类实现

接口支持多继承

接口的声明

[可见度] interface 接口名称 [extends 其他的类名] {

//声明变量

//抽象方法

}

实例

interface Animal {

public void eat ();

public void traval ();

}

接口的实现

当类实现接口的时候,类要实现接口中所有的方法;类使用implements关键字实现接口

public class MammalInt implements Animal{

public void eat() {

System.out.println("Mammal eats");

}

public void traval() {

System.out.println("Mammal travels");

}

public int noOfLegs() {

return 0;

}

public static void main(String args[]) {

MamamlInt m = new MammalInt();

m.eat();

m.traval();

}

}

重写接口中声明的方法时,需要注意以下规则

类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常

类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型

如果实现接口的类是抽象类,那么就没必要实现该接口的方法

在实现接口的时候,需要注意

一个类可以同时实现多个接口

一个类只能继承一个类,但是能实现多个接口

一个接口能继承另一个接口

接口的继承--使用extends关键字,子接口继承父接口的方法

// Sport.java

public interface Sports

{

public void setHomeTeam(String name);

public void setVisitingTeam(String name);

}

// Football.java

public interface Football extends Sports

{

public void homeTeamScored(int points);

public void visitingTeamScored(int points);

public void endOfQuarter(int quarter);

}

// Hockey.java

public interface Hockey extends Sports

{

public void homeGoalScored();

public void visitingGoalScored();

public void endOfPeriod(int period);

public void overtimePeriod(int ot);

}

接口的多继承

public interface Hockey extends Sports, Event

java 接口封装_Java-封装 接口相关推荐

  1. java 文件封装_Java 封装

    在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随 ...

  2. java map 教程_Java Map接口

    Java Map接口 在本教程中,我们将学习Java Map接口及其方法. Java collections框架的Map接口提供了Map数据结构的功能. 它实现了Collection接口. map的工 ...

  3. java 如何封装类_Java封装一个类怎么实现?

    封装 将某些东西包装在一起,然后以新的完整形式呈现出来: 隐藏属性.方法或实现细节的处理方式称为封装: 封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题. 构建对象的方法 和数组相似 ...

  4. java集合框架中抽象有序列表的接口是_JAVA基础接口集合框架

    接口 -------------------------------------------------------------------------------- 一.接口(是一种规范) 1.接口 ...

  5. java interface 实例_Java - Interface 接口的实现方式实例

    在程序的开发中,需要完成两个数的求和运算和比较运算功能的类非常多.那么可以定义一个接口来将类似的功能组织在一起.下面创建一个示例,具体介绍接口的实现方式. 1)创建一个名称为 IMath 的接口,代码 ...

  6. java 请求响应_java http接口请求响应 request response

    接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...

  7. java model 封装_Java封装统一的Result Model案例

    在开发过程中,有时候会需要使用错误码+错误信息的形式,来返回某些业务操作的错误结果信息,来代替效率较低的异常传递. 这样就需要封装一个统一的Result model作为返回值,代替直接返回数据等结果. ...

  8. java 内部类传值_Java 封装(内部类)

    可以将一个类的定义放在另一个类的定义内部,这就是内部类.而包含内部类的类被称为外部类. 主要作用 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类. 内部类的方法 ...

  9. java 继承重写_java 封装 继承 重写 多态

    封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: 将变化隔离.便于使用.提高重用性.提高安全性 封装原则: 将不需要对外提供的内容都隐藏起来.把属性都隐藏,提供公共方法对其访问. ...

  10. java 微信多媒体文件_java微信接口之三—上传多媒体文件

    一.微信上传多媒体接口简介 1.请求:该请求是使用post提交from来实现的,我们可以在网页上进行表单提交来实现.地址为: http://file.api.weixin.qq.com/cgi-bin ...

最新文章

  1. 贝叶斯网络之父Judea Pearl:新因果科学与数据科学、人工智能的思考
  2. hdu 1046 完数
  3. SQL Server 2000查询n到m条记录
  4. WebServlet 4.0
  5. SAP 电商云 Spartacus UI 产品搜索结果的设计明细
  6. 虚拟网络的组建和应用课后习题答案
  7. iOS Social框架
  8. 突发!暂停新用户注册,微信这样回应
  9. 做春节海报没有思路?传统节日年味十足,PSD分层模板,给你灵感!
  10. 如何在命令行下运行kettle的作业(job)和转换(transform)
  11. GD32(6)中文字库
  12. 7大排序时间复杂度对比、以及优化
  13. 日常搜集的勒索病毒解密工具的汇总
  14. android studio创建和安装虚拟机
  15. 信息报送不及时整改措施_意见建议及整改措施
  16. 全开源二次元风格发卡
  17. JXLS导出Excel表格实战教程
  18. matlab动态电路仿真,基于Simulink建立的RLC串联动态电路仿真模型
  19. 真是无语二手房可以这样逃税
  20. 快速入门快应用——quickapp构建与发布

热门文章

  1. Python数据结构与算法篇(五)-- 二分查找与二分答案
  2. 【概率论基础进阶】随机事件和概率-随机事件、事件间的关系与运算
  3. mysql复合主键_mysql怎么添加复合主键?
  4. CSS3 RGBA颜色
  5. 基于javaweb+mysql的火车票网上订票系统(前台、后台)
  6. Problem A. MUV LUV EXTRA(kmp求最小循环节)
  7. friend bool operator的friend FLY
  8. 电压互感器的基础知识原理及注意事项-安科瑞薛炯毅
  9. 投稿开奖丨云服务器ECS征文活动(23月)奖励公布
  10. 数学建模森林着火问题Matlab,数学建模森林救火问题.doc