封装和可扩展性
比如你有一个写好的代码,是否适应于将来的需要(将来只有一种需要就是维护)
增加可扩展性
可以使用封装来降低藕和(类和类直间的关系就是藕和)
藕和呢越低越好
封装是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节
封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性
作用:
彻底消除了传统结构方法中数据与操作分离所带来的种种问题提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担
对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Show{ public static void show(String str){ System.out.println(str); } } //上面就是对 System.out.println();的封装。 //调用的时候 public class Use{ public static void main(String[] args){ Show.show( "封装" ); } } //这样用的时候就不用使 System.out.println( "封装" ); |
1.
public class Person { String name; int age; public void speak(){ System.out.println("我叫:"+name+"今年"+age+"岁"); } } public class PersonT { public static void main(String[] args) { Person person = new Person(); person.name="张三"; person.age=-18; person.speak(); } }
上面的年龄为-18也是会打印出来的在现实生活中明显是不合理的
在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问,如果外界想要访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getXxx()方法和设置属性值的setXxx()方法
public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int a) { if (a<0||a>200){ System.out.println("你输入的不合法"); }else { age=a; } } } public class PersonT { public static void main(String[] args) { Person person = new Person(); person.setName("张三"); person.setAge(-18); //获取 String name = person.getName(); int age = person.getAge(); System.out.println("我叫:"+name+"今年"+age+"岁"); } }
可以使用接口来实现聚合
可扩展性高就是当添加新内容时,其他内容不需要随之改变
给一个类实现一个新方法,把方向的细节都彻底的影藏在那个类内部了
以后方向如何实现就和外部无关了
那个类的方向
新的功能可以很容易的加入到系统中去,这就是可扩展性,突然有一天客户的需求变了,需要增加新的功能,我这项目要增加新的功能,但是我这项目的主结构不变,这叫做可扩展性好
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix