第14章 封装

在程序设计中,封装就是将某些方法和属性封闭到某个类中,使得其他的类无法访问它们。
在一个类中通过private关键字定义的方法,只能通过该类的public关键字定义的类进行访问后,将结果返回。

public class packages{
  public static void main(String[] args){
    flower f1 = new flower();
    f1.setname("牡丹");
    f1.setcolor("红色");
    f1.setlocation("云南");
    System.out.println(f1.tostring());
  }
}

class flower{
  private String name;
  private String color;
  private String location;

  public void setname(String name){
    this.name = name;
  }
  public void setcolor(String color){
    this.color = color;
  }
  public void setlocation(String location){
    this.location = location;
  }
  public String getname(){
    return name;
  }
  public String getcolor(){
    return color;
  }
  public String getlocation(){
    return location;
  }

  private void print(){
    System.out.println("这个就是" + name);
  }
  public String tostring(){
    String info = "花的名称:" + name + ";" + " " + "花的颜色:" + color + ";" + " " + "花的出产地:" + location + " ";
    print();
    return info;
  }
}

在实际的开发工作中,一个应用程序基本上由很多个不同的程序员设计出来的,彼此之间通过接口程序,将它们衔接起来成为一个完整的应用程序,这种情况下,程序员本身不希望其他的程序员知道自己是如何实现一个方法函数或一个属性变量的。通常程序员会将方法设置为一个类中的私有方法。

getter与setter 的区别,用代码讲解一下:

public class Student {
  String name;
  public String getName(){
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }

  public static void main(String[] args) {
    Student s1=new Student();
    s1.setName("小明");
    System.out.println("学生的姓名为:"+s1.getName());
  }
}
上面的意思是创建一个学生类,声明一个name变量,并给了它getter和setter方法。
先说setter方法,刚开始创建name变量时没有赋值,后面用这个方法给他赋值“小明”
再说getter方法,name变量有了值“小明”后就可以用这个方法把它调出来。

时间: 2024-11-25 22:38:54

第14章 封装的相关文章

第14章 命令模式(Command Pattern)

原文 第14章 命令模式(Command Pattern) 命令模式(Command Pattern) 概述   在软件系统中,"行为请求者"与"行为实现者"通常呈现一种"紧耦合".但在某些场合,比如要对行为进行"记录.撤销/重做.事务"等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将"行为请求者"与"行为实现者"解耦?将一组行为抽象为对象,可以实现二者之间的松耦合[李建

设计模式之第14章-命令行模式(Java实现)

设计模式之第14章-命令模式(Java实现) “小明,滚出去.”“小明,这个问题怎么做?”(可怜的小明无奈躺枪.小明:老师,我和你有什么仇什么怨,我和你有什么仇什么怨啊到底...老师:小明,滚出去.习惯了而已.小明:...)对于这种现象,有请命令模式来做一下解说. 命令模式之自我介绍 知道高内聚么?不知道吧,其实我也不知道.(作者按:某模式开启装逼模式,装逼模式正在开启中...开启失败,回滚.)所以让作者大大给我们科普一下(苦命的我啊~),所谓高内聚是软件工程的一个概念,主要是面向对象的设计,说

【二代示波器教程】第14章 uCOS-III操作系统版本二代示波器实现

第14章      uCOS-III操作系统版本二代示波器实现 本章教程为大家讲解uCOS-III操作系统版本的二代示波器实现.主要讲解RTOS设计框架,即各个任务实现的功能,任务间的通信方案选择,任务栈,系统栈以及全局变量共享问题.同时,工程调试方法也专门做了说明. 14.1  注意事项(重要必读) 14.2  任务功能划分 14.3  用户任务优先级设置 14.4  全局变量分配,系统堆栈和任务堆栈 14.5  任务间通信和全局变量共享问题 14.6  uCOS-III系统调试 14.7  

《TCP/IP详解卷1:协议》第14章 DNS:域名系统---读书笔记

<TCP/IP详解卷1:协议>第14章 DNS:域名系统---读书笔记 1.引言 5.指针查询 DNS中一直难于理解的部分就是指针查询方式,即给定一个IP地址,返回与该地址对应的域名. 当一个组织加入Internet,并获得DNS域名空间的授权,如noao.edu,则它们也获得了对应IP地址的in-addr.arpa域名空间的授权.在noao.edu这个例子中,它的网络号是140.252的B类网络.在DNS树中结点in-addr.arpa的下一级必须是该IP地址的第一字节(例中为140),再下

JavaScript高级程序设计(第三版)学习笔记13、14章

第13章,事件 事件冒泡 IE的事件叫做事件冒泡:由具体到不具体 <!DOCTYPE html> <html> <head> <title>Event Bubbling Example</title> </head> <body> <div id="myDiv">Click Me</div> </body> </html> 如果你单击了<div>

&lt;&lt;精通iOS开发&gt;&gt;第14章例子代码小缺陷的修复

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 首先推荐大家看这本书,整本书逻辑非常清晰,代码如何从无到有,到丰满说的很有条理. 说实话本书到目前为止错误还是极少的,不过人无完人,在第14章前半部分项目的代码中,作者在MasterVC到DetailVC中又直接添加了一个segue,该segue的ID为"masterToDetail",作用是当新建一个tinyPix文档时可以直接跳转到DetailV

第 14 章 迭代器模式【Iterator Pattern】

以下内容出自:<<24种设计模式介绍与6大设计原则>> 周五下午,我正在看技术网站,第六感官发觉有人在身后,扭头一看,我C,老大站在背后,赶忙站起来, “王经理,你找我?” 我说. “哦,在看技术呀.有个事情找你谈一下,你到我办公室来一下.” 老大说. 到老大办公室, “是这样,刚刚我在看季报,我们每个项目的支出费用都很高,项目情况复杂,人员情况也不简单,我看着 也有点糊涂,你看,这是我们现在还在开发或者维护的103 个项目,你能不能先把这些项目信息重新打印一份 给我,咱们好查查到

C++ primer plus读书笔记——第14章 C++中的代码重用

第14章 C++中的代码重用 1. 使用公有继承时,类可以继承接口,可能还有实现(基类的纯虚函数提供接口,但不提供实现).获得接口是is-a关系的组成部分.而使用组合,类可以获得实现,但不能获得接口.不继承接口是has-a关系的组成部分. 2. C++还有另一种实现has-a关系的途径——私有继承.使用私有继承,基类的公有成员和保护成员都将称为派生类的私有成员.这意味着基类方法将不会称为派生类对象公有接口的一部分,但可以在派生类的成员函数中使用它们. 3. 包含将对象作为一个命名的成员对象添加到

14章类型信息之使用类字面常量

14章类型信息-之类型转换前先做检查--之使用类字面常量--类名.class--以及动态instanceof(isInstance方法)----递归计数(计算各个类的个数) 实例代码: 实体类父类: //: typeinfo/pets/Individual.javapackage typeinfo.pets; public class Individual implements Comparable<Individual> {  private static long counter = 0;