资讯专栏INFORMATION COLUMN

Java封装

VPointer / 3202人阅读

摘要:封装什么是封装封装可以认为是一个保护屏障,防止代码和数据被外部类定义的代码随机访问。封装最主要的功能在于我们可以修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

Java封装 1.什么是封装

封装可以认为是一个保护屏障,防止代码和数据被外部类定义的代码随机访问。封装最主要的功能在于我们可以修改自己的实现代码,而不用修改那些调用我们代码的程序片段。封装加强了代码的安全性。

2.封装的优点

1.良好的封装能够减少耦合性
2.类内部的结构可以自由修改
3.隐藏信息,增强安全性

3.实现封装的步骤

修改属性的可见性来限制对属性的访问private

</>复制代码

  1. public class Person {
  2. private String name;
  3. private int age;
  4. }

2.对每个值属性提供对外的公共方法访问,使用get,set方法

</>复制代码

  1. public class Person{
  2. private String name;
  3. private int age;
  4. public int getAge(){
  5. return age;
  6. }
  7. public String getName(){
  8. return name;
  9. }
  10. public void setAge(int age){
  11. this.age = age;
  12. }
  13. public void setName(String name){
  14. this.name = name;
  15. }
  16. }
代码实例

</>复制代码

  1. public class Dog {
  2. // 静态变量
  3. private String name;
  4. private int health;// 健康值
  5. private int love;
  6. private String strain;// 宠物的品种
  7. public void show() {
  8. System.out.println("我叫" + name + ",现在健康值是:" + health + ",亲密度是:" + love + ",品种是:" + strain);
  9. }
  10. public Dog() {
  11. }
  12. public Dog(int health, int love, String strain) {
  13. this.health = health;
  14. this.love = love;
  15. this.strain = strain;
  16. }
  17. // 不能够轻易的可以通过对象名.属性名来修改数据 只提供一个方法给他 具体参数合法性判断由我们自己来决定
  18. public void setHealth(int health) {
  19. if (health < 0 || health > 100) {
  20. System.out.println("健康值是0-100,默认值是60");
  21. this.health = 60;
  22. return;
  23. }
  24. this.health = health;
  25. }
  26. public int getHealth() {
  27. return this.health;
  28. }
  29. public void setName(String name) {
  30. this.name = name;
  31. }
  32. public String getName() {
  33. return this.name;
  34. }
  35. }

</>复制代码

  1. public class Demo02 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. Dog dog = new Dog();
  5. // 封装属性 外部观察不到 只能看到相对应的方法 并且可以在方法里面实现控制
  6. dog.setHealth(1001);
  7. dog.setName("哈哈");
  8. System.out.println(dog.getName());
  9. System.out.println(dog.getHealth());
  10. // 没有封装属性 可以随意的查看对象的属性
  11. Dog2 dog2 = new Dog2();
  12. dog2.health = -100;
  13. dog2.show();
  14. }
  15. }

</>复制代码

  1. public class Demo01 {
  2. public static void main(String[] args) {
  3. // TODO Auto-generated method stub
  4. // 人有姓名 年龄 身高 体重 使用封装思想来创建类
  5. Person person = new Person();
  6. person.setName("张三");
  7. person.setAge(18);
  8. person.setHeight(175);
  9. person.setWeight(130);
  10. System.out.println(person.toString());
  11. }
  12. }
  13. class Person {
  14. private String name;
  15. private int age;
  16. private int height;
  17. private int weight;
  18. public String getName() {
  19. return name;
  20. }
  21. public void setName(String name) {
  22. this.name = name;
  23. }
  24. public int getAge() {
  25. return age;
  26. }
  27. public void setAge(int age) {
  28. this.age = age;
  29. }
  30. public int getHeight() {
  31. return height;
  32. }
  33. public void setHeight(int height) {
  34. if (height < 0) {
  35. this.height = 0;
  36. return;
  37. }
  38. this.height = height;
  39. }
  40. @Override
  41. public String toString() {
  42. return "Person [name=" + name + ", age=" + age + ", height=" + height + ", weight=" + weight + "]";
  43. }
  44. public int getWeight() {
  45. return weight;
  46. }
  47. public void setWeight(int weight) {
  48. if (weight < 0) {
  49. this.weight = 0;
  50. return;
  51. }
  52. this.weight = weight;
  53. }
  54. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72842.html

相关文章

  • 乐字节Java|JavaBean封装、继承与权限修饰

    摘要:本文继续讲封装。上一篇乐字节垃圾回收机制和语句这次讲述继承与权限修饰。通过继承,子类自动拥有了基类的所有成员成员变量和成员方法。一览无遗子承父业儿子自己使用家庭和睦占为已有。 本文继续讲Java封装。上一篇:乐字节Java|GC垃圾回收机制、package和import语句 这次讲述JavaBean、继承与权限修饰。showImg(https://segmentfault.com/im...

    mylxsw 评论0 收藏0
  • 面向对象之三个基本特征(javaScript)

    摘要:对象是公布其接口。节选自百度百科我对于封装的理解,可能还有一个步骤就是抽离,首先你要清楚在一个对代码中你应该抽离那些属性方法,有了这些为基础才能更好的做好封装。节选自百度百科因为是没有重载的概念的所以要自己编写逻辑完成重载。 1. 前言 2. 封装 3. 继承 4. 多态 5. 总结 1. 前言 了解过面向对象的同学应该都知道,面向对象三个基本特征是:封装、继承、多态,但是对于这三...

    IamDLY 评论0 收藏0
  • Java学习笔记——封装

    摘要:声明本文首发于我的个人微信公众号编程社区,查看更多文章与学习资源请移步我的公众号编程社区今天我们来看看面向对象的三大特征之一封装下来我们从现实生活中的例子来聊聊封装的特性我们日常使用的电脑主机,把内存主板等等都封装到机箱里面去。 声明:本文首发于我的个人微信公众号【Java编程社区】,查看更多文章与学习资源请移步我的公众号Java编程社区 今天我们来看看面向对象的三大特征之一——封装 ...

    linkFly 评论0 收藏0
  • java入门第二季--封装--什么是java中的封装

    封装 showImg(https://segmentfault.com/img/bVbnAOR?w=1293&h=679); showImg(https://segmentfault.com/img/bVbnAOU?w=1149&h=722); 代码get,set /javaDemo2/src/com/imooc/Telphone.java package com.imooc; import c...

    wslongchen 评论0 收藏0
  • Java知识点总结(JDBC-封装JDBC)

    摘要:知识点总结封装知识点总结封装目录下新建一个文件,用于封装数据库连接信息把获取数据库连接对象和关闭连接的操作封装到这个类中读取和处理资源文件的信息只需要加载一次,所以写成静态代码块。 Java知识点总结(JDBC-封装JDBC) @(Java知识点总结)[Java, JDBC] 封装JDBC src目录下新建一个db.properties文件,用于封装数据库连接信息 showImg(ht...

    null1145 评论0 收藏0
  • Chapter10 Java封装

    摘要:封装的实现封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问即隐藏对象信息的同时要留出访问的接口封装的特点只能通过规定的方法访问数据隐藏类的实例细节,方便修改和实现封装代码的实现修改属 Lecture1 封装的实现 封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问(即隐...

    xorpay 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<