Java面向对象的特征一:封装性

简介: Java面向对象的特征一:封装性

面向对象的特征一:封装与隐藏

一、问题的引入:

当我们创建一个类的对象以后,我们可以通过“对象.属性”的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们住往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLength)

同时,我们需要避免用户再使用"对象.属性”的方式对属性进行赋值。则需要将属性声明为私有的(private)

–>此时,针对于属性就体现了封装性。

二、封装性的体现:

  • 我们将类的属性xxx私有化(private),同时,提供公共的(public)方法来获取(getxXxx)和设置*(setXxx)*此属性的值。
  • 拓展:封装性的体现:
    1 如上 2 不对外暴露私有的方法 3 单例模式…

三、封装性的体现,需要权限修饰符来配合。

  1. Java规定的4种权限:(从小到大排列):
    private、缺省(default)、protected、public




  1. 4种权限可以用来修饰类即类的内部结构:属性、方法、构造器、内部类
  2. 具体的,4种权限可以用来修饰类即类的内部结构:属性、方法、构造器、内部类
    修饰类的话,只能使用:缺省、public

四、代码

在B站学习java写的代码*

代码如下:

/*
 * 面向对象的特征一:封装与隐藏
 * 一、问题的引入:
 *  当我们创建一个类的对象以后,我们可以通过“对象.属性”的方式,对对象的属性进行赋值。这里,赋情操作要受到
 *  属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们住往需要给属性赋值
 *  加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLength)
 *  同时,我们需要避免用户再使用"对象.属性”的方式对属性进行赋值。则需要将属性声明为私有的(private)。
 *  -->此时,针对于属性就体现了封装性。
 *
 *  二、封装性的体现:
 *  我们将类的属性xxx私有化(private),同时,提供公共的(public)方法来获取(getxXxx)和设置(setXxx)此属性的值。 
 * 
 *  拓展:封装性的体现:1 如上 2 不对外暴露私有的方法 3 单例模式 ...
 * 
 * 三、封装性的体现,需要权限修饰符来配合。
 * 1.Java规定的4种权限:(从小到大排列):private、缺省(default)、protected、public
 * 2.4种权限可以用来修饰类即类的内部结构:属性、方法、构造器、内部类
 * 3.具体的,4种权限可以用来修饰类即类的内部结构:属性、方法、构造器、内部类
 *    修饰类的话,只能使用:缺省、public
 * 
 * 
 */ 
package com.day0122_1;
public class AnimalTest {
  public static void main(String[] args) {
    Animal a=new Animal();
    a.name="大黄";
    a.age=1;
//    a.legs=4;//The field Animal.legs is not visible
    a.setLegs(-6);
    a.show();
//    a.legs=-4;
    a.setLegs(6);
//    a.legs=-4;//The field Animal.legs is not visible
    a.show();
  }
}
class Animal {
  String name;
  int age;
  private int legs;
  //对于属性的设置
  public void setLegs(int l) {
    if(l>0&&l%2==0) {
      legs=l;
    }else {
      legs=0;
//      抛出一个异常(暂时没有讲)
    }
  }
  //对属性的获取
  public int getLegs() {
    return legs;
  }
  public void eat() {
    System.out.println("动物进食");
  }
  public void show() {
    System.out.println("name:"+name+"\tage:"+age+"\tlegs:"+legs);
  }
}
相关文章
|
23天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
22 1
|
1月前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
25 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
38 2
|
3月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2月前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
95 2
|
3月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
38 4
|
3月前
|
SQL 安全 Java
JAVA代码审计SAST工具使用与漏洞特征
JAVA代码审计SAST工具使用与漏洞特征
97 1
|
3月前
|
安全 Java 开发者
Java修饰符与封装:理解访问权限、行为控制与数据隐藏的重要性
Java中的修饰符和封装概念是构建健壯、易维护和扩展的Java应用程序的基石。通过合理利用访问权限修饰符和非访问修饰符,开发者能够设计出更加安全、灵活且高效的代码结构。封装不仅是面向对象编程的核心原则之一,也是提高软件项目质量和可维护性的关键策略。
38 1
|
3月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
2月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
25 0