【JavaSE】Java基础语法(九):封装

简介: ☔1. private关键字概述 : private是一个修饰符,可以用来修饰成员(成员变量,成员方法)特点 : 被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

☔1. private关键字

概述 : private是一个修饰符,可以用来修饰成员(成员变量,成员方法

特点 :  被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他

类使用,提供相应的操作


提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰

提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

示例代码

clasclass Student {
  //成员变量
  String name;
  private int age;
  //提供get/set方法
  public void setAge(int a) {
    if(a<0 || a>120) {
      System.out.println("你给的年龄有误");
    } else {
      age = a;
    }
  }
  public int getAge() {
    return age;
  }
  //成员方法
  public void show() {
    System.out.println(name + "," + age);
  }
}

测试类

public class StudentDemo {
  public static void main(String[] args) {
    //创建对象
    Student s = new Student();
    //给成员变量赋值
    s.name = "刘亦菲";
    s.setAge(30);
    //调用show方法
    s.show();
  }
}

☔2. private关键字的使用

需求

定义标准的学生类,要求name和age使用private修饰

并提供set和get方法以及便于显示数据的show方法

测试类中创建对象并使用,最终控制台输出 刘亦菲,20

示例代码class Student {

//成员变量

private String name;

private int age;

//get/set方法

public void setName(String n) {

 name = n;

}

public String getName() {

 return name;

}

public void setAge(int a) {

 age = a;

}

public int getAge() {

 return age;

}

public void show() {

 System.out.println(name + "," + age);

}

}

学生类

 class Student {
  //成员变量
  private String name;
  private int age;
  //get/set方法
  public void setName(String n) {
    name = n;
  }
  public String getName() {
    return name;
  }
  public void setAge(int a) {
    age = a;
  }
  public int getAge() {
    return age;
  }
  public void show() {
    System.out.println(name + "," + age);
  }
}

学生测试类

public class StudentDemo {
  public static void main(String[] args) {
  //创建对象
  Student s = new Student();
  //使用set方法给成员变量赋值
  s.setName("刘亦菲");
  s.setAge(20);
  s.show();
  //使用get方法获取成员变量的值
  System.out.println(s.getName() + "---" + s.getAge());
  System.out.println(s.getName() + "," + s.getAge());
  }
}

☔3. this关键字


概述 :

this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)

  • 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
  • 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

代码实现 :

public class Student {
  private String name;
  private int age;
  public void setName(String name) {
    this.name = name;
  }
  public String getName() {
    return name;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public int getAge() {
    return age;
  }
  public void show() {
    System.out.println(name + "," + age);
  }
}

☔4. this内存原理

注意 : this代表当前调用方法的引用,哪个对象调用的方法,this就代表哪一个对象

图解

3801ec38f76147248cb1b1dd5c26a71f.png

5100e1cf1cd14a8e929f839d483a46fd.png

☔5. 封装思想

  1. 封装概述
    是面向对象三大特征之一(封装,继承,多态)
    是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的

封装原则

将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏

信息的操作和访问

成员变量private,提供对应的getXxx()/setXxx()方法

封装好处

通过方法来控制成员变量的操作,提高了代码的安全性

把代码用方法进行封装,提高了代码的复用性

相关文章
|
2天前
|
安全 Java
Java 面向对象之旅:封装——让代码更加“接地气”的秘诀。
【6月更文挑战第16天】**Java面向对象的封装秘籍:**将数据和操作打包成类,如`Student`和`Car`,隐藏内部详情,只通过`get/set`方法交互。封装提升代码清晰度,便于管理和保护安全性,就像整理工具箱,让每个功能一目了然,操作自如。
|
2天前
|
安全 Java 数据安全/隐私保护
一探 Java 封装究竟:为何它让代码更加“高大上”?
【6月更文挑战第16天】Java中的封装如城堡般迷人,它确保数据安全(如`UserInfo`类的私有属性),增强代码结构(如`Order`类的操作封装),并提升复用性与扩展性(如`Shape`类的抽象设计)。封装是打造高质量、易维护代码的关键,让代码既安全又高效。
|
2天前
|
Java 数据安全/隐私保护
Java 封装:打破传统,创新你的编程思维!
【6月更文挑战第16天】Java中的封装是将数据和操作数据的方法封装在类中,隐藏内部细节,通过公共接口交互。这样保证了数据安全,降低了耦合度,便于验证(如`Shape`类中构造函数的类型检查)和控制(如`setType`方法中添加额外操作)。封装使代码更清晰、可维护,鼓励创新编程思维。
|
2天前
|
Java 开发者
那些年,我们追过的 Java 封装:从新手到专家的必经之路
【6月更文挑战第16天】Java初学者到专家的旅程中,封装是关键一环。封装隐藏实现细节,提供简洁接口,保护数据并确保代码整洁、可维护。以`Person`类为例,私有变量与公共方法展示了封装原则,助力团队协作和问题解决,成为编程路上的宝贵经验。封装,从新手到高手的不解之缘,持续塑造更高效、可靠的软件。
|
2天前
|
存储 安全 Java
深入探讨 Java 封装机制:为何它是面向对象编程的核心?
【6月更文挑战第16天】Java的封装是OOP核心,它将数据和操作数据的方法打包在类中,隐藏实现细节并提供公共接口。例如,`Student`类封装了私有属性`name`和`age`,通过`get/set`方法安全访问。封装提升代码稳定性、可维护性和复用性,防止外部直接修改导致的错误,确保数据安全。它是面向对象编程优于传统编程的关键,促进高效、可靠的开发。
|
3天前
|
安全 Java
Java 面向对象之旅:在封装的港湾中,找到代码的安宁。
【6月更文挑战第15天】封装是Java面向对象的核心,它保护了类的内部数据,如`Book`和`Student`类中的属性。通过设定私有成员和公共方法,代码更有序,防止直接访问导致的混乱。封装提供了一种控制数据交互的方式,确保安全,如`setGpa()`方法验证输入。这使得代码结构清晰,如同港湾中的船只,井然有序,赋予编程过程美感和安全感。在面向对象的旅程中,封装是我们的庇护所,助力我们构建更美好的程序世界。
|
3天前
|
Java
谁说 Java 封装很难?跟我学,秒变编程大神!
【6月更文挑战第15天】Java封装,就是将数据和相关操作打包,保护数据免受非法访问。比如`SuperHero`类,它的属性用`private`隐藏,通过`get/set`方法控制访问。这样提高了数据安全性和稳定性。就像超级英雄的超能力,不能随意使用。掌握封装,编程就变得更简单,助你成为Java大神!开始征服代码高峰吧!💪🎉
|
3天前
|
安全 Java 数据安全/隐私保护
Java 封装:对象的“面纱”下,隐藏着怎样的世界?
【6月更文挑战第15天】Java封装是对象的隐私保护,它隐藏类的内部细节并设定访问接口。`Person`类展示了如何用`private`字段和公共getter/setter方法实现封装,确保数据安全性和代码可维护性。例如,`BankAccount`类封装了余额,只允许通过`deposit`、`withdraw`和`getBalance`方法操作。封装减少了外部干扰,增强安全性,提高可扩展性,是Java面向对象编程的核心原则之一。
|
4天前
|
存储 Java
震惊!关系运算符在 Java 基本语法中竟然这么重要!
【6月更文挑战第14天】Java 中的关系运算符在编程中扮演关键角色。通过案例展示了它们的用法:比较数值大小、判断字符串相等、执行多重关系判断、在循环和条件语句中的应用,以及与其他运算符结合使用。理解并熟练运用这些运算符,能有效控制程序流程,实现复杂逻辑,是构建 Java 代码基础的重要部分。
|
4天前
|
Java
哇塞!Java 基本语法的运算符,你真的懂了吗?算术运算符篇
【6月更文挑战第14天】Java中的算术运算符是编程基础,包括加法`+`(用于数字相加和字符串拼接)、减法`-`、乘法`*`、除法`/`(需防除数为零)和取余`%`。它们在计算位移、周期性问题等场景中广泛应用。理解并熟练掌握这些运算符,能提升编程效率和代码质量。现在就开始实践,发掘它们的更多可能性吧!