【Java面向对象编程(中)】- 探索封装的秘密

简介: 【Java面向对象编程(中)】- 探索封装的秘密

回顾

上次我们学习了Java 面向对象编程的 类,方法及属性

以及Java中静态成员方法和变量,实例成员方法和变量的使用

若有遗忘点击👉🔗http://t.csdnimg.cn/xp3Ls


今天我们学习Java面向对象编程的特性 - 封装和this的使用

封装

封装是面向对象编程中的一种重要概念,是将数据和操作数据的方法包装在一起的机制

Java中的封装可以通过访问控制修饰符(public、private、protected、default)来实现

通过将数据私有化(使用private关键字)只能通过公共的方法(getters和setters)来访问和修改数据,从而保证了数据的安全性和可控性。

封装也是实现信息隐藏的重要方式,避免了对外暴露实现细节。同时,通过封装还可以提高代码的重用性和可维护性,因为修改数据的实现细节只需要在类的内部进行,不会影响到类的外部使用

如果一个类的属性或方法被private修饰以后,只能在类里面被使用


为什么进行封装

如果name是共有的不进行封装,实现者若改了属性name的名字,调用者完全不知道实现者改了属性,所以我们才要进行封装.


如何调用私有的变量

如果调用者想要调用实现者的私有变量,可以通过get和set方法,或者get + set + this进行私有变量的调用

this写在哪个类里面,就表示哪个类对象的引用

方法变成private,那么这个方法也只能在当前类里面使用

1.get + set方法(当形参和成员变量不同名时)

/**
 * 
 */
package Test;
/**
 * 
 * 封装: 用 private 来修饰属性 或者 方法
 * 限定你只能在类当中被使用
 * 
 * 
 */
class Student{
  public int age;//实例变量
  //封装 name  限定你只能在类当中进行访问
  private String MyName;//实例变量
  //首先通过set方法设置传入的名字
  public void setMyName(String name) {
    MyName = name;
  }
  //然后提供一个公开的接口
  public String getMyName() {
    return MyName;
  }
  public void funcl() {
    System.out.println("func1()");
  }
  public void show() {
    System.out.println("我叫" + MyName + ",今年" + age + "岁"); 
  }
}
// 
public class TestDemo1 {
  public static void main(String[] args) {
    Student student = new Student();//person为对象的引用
    student.setMyName("🐖");//方法--->传参
    String str = student.getMyName();
    System.out.println(str);
  }
 }

2. get + set + this(形参名不小心与成员变量名相同时)

this引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过该 引用去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。

/**
 * 
 */
package Test;
/** 
 * 封装: 用 private 来修饰属性 或者 方法
 * 限定你只能在类当中被使用
 *
 * this: 当前对象的 引用
 * 要习惯使用this
 */
class Student{
  public int age;//实例变量
  //封装 name  限定你只能在类当中进行访问
  private String MyName;//实例变量
  //首先通过set方法设置传入的名字
  public void setMyName(String MyName) {
    this.MyName = MyName;//其实就是 自己给自己赋值 并没有赋值属性 局部变量优先
    //this.MyName 指的是 Student 这个的对象的 private成员变量MyName~
  }
  //然后提供一个公开的接口
  public String getMyName() {
    return this.MyName;
  }
  private void funcl() {
    System.out.println("func1()");
  }
  public void show() {
    System.out.println("TA叫" + this.MyName + ",今年" + this.age + "岁"); 
  }
}
public class TestDemo1 {
  public static void main(String[] args) {
    Student student = new Student();//person为对象的引用
    student.setMyName("🐖");//方法--->传参
    String str = student.getMyName();
    System.out.println(str);
    student.show();
  }
 }

📝总结

本文主要是介绍Java面向对象编程中封装是什么以及它的作用,还有关键字this的作用

目录
相关文章
|
3月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
42 7
|
3月前
|
Java 开发者
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
那些年,我们一同踏入Java编程的大门,多态,这个充满魔法的名字,曾无数次点亮我们探索面向对象编程的热情。
49 5
|
3月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
2月前
|
安全 Java 编译器
Java的封装详解
封装和多态是面向对象编程(OOP)的重要概念。封装通过私有属性和公共方法实现数据隐藏和保护,使类的内部细节对外部不可见;多态则通过方法重载和重写实现同一方法在不同对象上的不同表现形式,增强了代码的灵活性和可维护性。两者结合使用,可以使Java程序更加安全、灵活且易于维护。
|
2月前
|
Java
Java的封装详解
封装是Java中实现数据隐藏和保护的核心机制。它通过将对象的状态和行为结合并限制外部直接访问,确保类的内部细节对外不可见,仅能通过公共方法访问和修改对象状态。封装带来了数据隐藏、提高代码可维护性和增强安全性等好处。在Java中,封装主要通过将属性设为私有并提供getter和setter方法来实现。这种方式不仅保护了数据完整性,还允许在修改类内部实现时不影响外部代码,从而提升程序的健壮性和可读性。
|
2月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2月前
|
SQL Java 编译器
Java——类与对象(封装)
封装是面向对象编程中的概念,指将数据(属性)和相关操作(方法)组合成独立单元(类),使外部无法直接访问对象的内部状态,只能通过提供的方法进行交互,从而保护数据安全。例如,手机将各种组件封装起来,只暴露必要的接口供外部使用。实现封装时,使用`private`关键字修饰成员变量,并提供`get`和`set`方法进行访问和修改。此外,介绍了包的概念、导入包的方式及其注意事项,以及`static`关键字的使用,包括静态变量和方法的初始化与代码块的加载顺序。
47 10
Java——类与对象(封装)
|
2月前
|
安全 Java 数据安全/隐私保护
Java 封装怎么理解
封装是Java中的一种重要机制,它将对象的状态(数据)和行为(方法)打包在一起并控制外部访问权限,以保护数据不被随意修改。封装的主要目的包括数据保护、接口设计和增强模块性。通过使用`private`、`protected`及`public`等访问控制修饰符,结合getter和setter方法,可以有效隐藏对象内部实现细节。下面是一个简单的`BankAccount`类示例,展示了如何通过封装保护类的内部状态,确保数据安全和一致性,简化类的使用。理解封装有助于编写高质量代码和设计优秀程序架构。
|
2月前
|
Java 数据安全/隐私保护
Java 封装详解
在 Java 中,封装是面向对象编程的关键特性,通过将对象的状态(数据)和行为(方法)结合并利用访问控制保护数据,防止外部随意访问和修改。主要特点包括访问控制(如 `private` 和 `protected`)、数据隐藏及方法暴露(如 getter 和 setter)。封装的优点在于保护数据、隐藏实现细节、易于维护以及提高代码可读性。下面是一个简单的 `Person` 类封装示例,展示了如何通过 getter 和 setter 控制对类内部状态的访问,并进行合法性检查。总结而言,封装有助于构建清晰、易用且可维护的代码结构,是编写高质量 Java 程序的重要原则。
|
2月前
|
安全 Java 开发者
Java修饰符与封装:理解访问权限、行为控制与数据隐藏的重要性
Java中的修饰符和封装概念是构建健壯、易维护和扩展的Java应用程序的基石。通过合理利用访问权限修饰符和非访问修饰符,开发者能够设计出更加安全、灵活且高效的代码结构。封装不仅是面向对象编程的核心原则之一,也是提高软件项目质量和可维护性的关键策略。
21 1
下一篇
无影云桌面