java面向对象三大特征之一封装(属性的保护神)

简介: java是一门面向对象的语言,其中对象需要什么,类那边就创建什么就好了。关键点在于给类的赋值这边,不能说对象想要对类可以无限制进行操作就可以。

一、为什么要有封装呢?

答案:java是一门面向对象的语言,其中对象需要什么,类那边就创建什么就好了。关键点在于给类的赋值这边,不能说对象想要对类可以无限制进行操作就可以。那样太没有安全感了。所以封装出现了。封装就是正确设计对象的属性和方法。比如说类中的属性年龄,万一对象那边对这个属性年龄赋值-18呢?那样是不是不合理不规范,所以封装(set(赋值输入)和get(赋值输出))两位保护神出现了。封装属性私密隐藏起来实现,只给出set和get让你调用就好。保护属性的数据不能被随便篡改。

封装一般类中的属性使用比较多,类中的方法使用比较少(属性孤零零的,那得封装隐藏保护一下吧)

二、封装的作用:

1.提高程序的安全性、保护数据

2.隐藏代码的实现细节

3.统一接口

4.提高系统的可维护性

三、封装实现步骤:

1.首先你要把自己(属性)私有化(private)

2.具体标准就由set进行赋值把关,然后由get进行输出就好了

生成set和get快捷键的方式在我其他文章中有写

代码例子

被调用的类:

1.加set和get之前


2. 添加私密性privata,生成set和get快捷键后



3.添加限制条件后(后续开发中一般直接生成set,get,不用手动对set里面进行自定义限制)

package three;
public class Girl {
  //2.首,快捷键生成set和get,在我其他文章中有教快捷键生成方式
  public int getAge() {  //生成的get方法
    return age;
  }
  public void setAge(int age) {  //生成的set方法,并且修改set条件限制,修改成女朋友年龄在18到28岁之间
    if (age>=18&&age<=28){
    }else {
      System.out.println("你输入的年龄不合理");//如果超出范围就提示对方不合理
    }
    this.age = age;
  }
  //2.尾
  private int age;//1.先加上private私有化成员变量
}

对象调用:

 package three;
 public class Girlfriend {
     public static void main(String[] args) {
         Girl girl = new Girl();//实例化Girl类
         //set赋值
         girl.setAge(30);
         //get打印输出
         System.out.println(girl.getAge());
     }
 }

运行结果:

你输入的年龄不合理

30

/额外注释:如果想要不输出这个30,直接在类那边的set判断条件后面加上return就好了

题外话:set和get就像安全接口,保护属性的私密性,一个吞一个吐

目录
相关文章
|
11天前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
19 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
29天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
20 2
|
3月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2月前
|
Java
让星星⭐月亮告诉你,Java NIO之Buffer详解 属性capacity/position/limit/mark 方法put(X)/get()/flip()/compact()/clear()
这段代码演示了Java NIO中`ByteBuffer`的基本操作,包括分配、写入、翻转、读取、压缩和清空缓冲区。通过示例展示了`position`、`limit`和`mark`属性的变化过程,帮助理解缓冲区的工作原理。
32 2
|
2月前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
60 2
|
3月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
35 4
|
3月前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
74 1
|
3月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
2月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
17 0
|
2月前
|
Java
Java 集合存在相同属性,其他元素累加
Java 集合存在相同属性,其他元素累加
32 0