【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()方法

封装好处

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

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

相关文章
|
1天前
|
Java 编译器 C语言
Java 程序设计 第2章 Java基本语法 笔记
Java 程序设计 第2章 Java基本语法 笔记
|
2天前
|
Java 编译器 开发者
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(二)
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(二)
6 0
|
2天前
|
存储 Java 索引
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(一)
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(一)
9 0
|
3天前
|
存储 Java
java基本语法(史上最全)
java基本语法(史上最全)
|
8天前
|
存储 Java 程序员
Java入门——基本语法(注释、字面量、变量、使用变量的注意事项、关键字、标识符)
Java入门——基本语法(注释、字面量、变量、使用变量的注意事项、关键字、标识符)
16 2
|
9天前
|
JavaScript Java 索引
Java基础语法注意事项(2)
Java基础语法注意事项(2)
9 0
|
9天前
|
Java
Java基础语法注意事项
Java基础语法注意事项
6 1
|
2天前
|
安全 Java API
Java并发基础-启动和终止线程
Java并发基础-启动和终止线程
12 0
|
2天前
|
Java 调度
Java并发基础-线程简介(状态、常用方法)
Java并发基础-线程简介(状态、常用方法)
8 0
|
7天前
|
安全 Java 编译器
JAVA-多线程知识点总结(二)
JAVA-多线程知识点总结(二)