三大特性之一:封装

本贴最后更新于 1673 天前,其中的信息可能已经事过境迁

封装概述

将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。

封装的步骤

  • 使用 private 关键字来修饰成员变量。
  • 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

封装的操作——private 关键字

private 的含义

  • private 是一个权限修饰符,代表最小权限。
  • 可以修饰成员变量和成员方法。
  • 被 private 修饰后的成员变量和成员方法,只在本类中才能访问。

private 的使用格式

private 数据类型 变量名 ;
  1. 使用 private 修饰成员变量,代码如下:
public class Student {
	private String name;
	private int age;
}
  1. 提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下:
public class Student {
	private String name;
	private int age;
	public void setName(String n) {
		name = n;
	}
	public String getName() {
		return name;
	}
	public void setAge(int a) {
		age = a;
	}
	public int getAge() {
		return age;
	}
}

封装优化 1——this 关键字

this 的含义

  • this 代表所在类的当前对象的引用(地址值),即对象自己的引用。

记住 :方法被哪个对象调用,方法中的 this 就代表那个对象。即谁在调用,this 就代表谁。

this 使用格式

this.成员变量名;

使用 this 修饰方法中的变量,解决成员变量被隐藏的问题,代码如下:

public class Student {
	private String name;
	private int age;
	public void setName(String name) {
		//name = name;
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setAge(int age) {
		//age = age;
		this.age = age;
	}
	public int getAge() {
		return age;
	}
}

方法中没有重复变量名时,默认也是使用 this 修饰,可以省略不写。

封装优化 2——构造方法

  • 当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。

无论你与否自定义构造方法,所有的类都有构造方法,因为 Java 自动提供了一个无参数构造方法, 一旦自己定义了构造方法,Java 自动提供的默认无参数构造方法就会失效。

构造方法的定义格式

修饰符 构造方法名(参数列表){
	// 方法体
}

构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要 void。使用构造方法后,举例如下:

public class Student {
	private String name;
	private int age;
	// 无参数构造方法
	public Student() {}
	// 有参数构造方法
	public Student(String name,int age) {
		this.name = name;
		this.age = age;
	}
}

注意事项

  1. 如果你不提供构造方法,系统会给出无参数构造方法。
  2. 如果你提供了构造方法,系统将不再提供无参数构造方法。
  3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数。
  • 面向对象
    13 引用 • 28 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • 三大特性
    1 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...