您的位置 首页 > 装修房产

【封装有什么好处】java中的封装,继承,多态,这3个在程序中起着重要作用

一.封装

1. 封装概述

面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。

封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

原则

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

2. 封装的步骤

1. 使用 private 关键字来修饰成员变量。

2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

3. 封装的操作——private关键字

private的含义

1. private是一个权限修饰符,代表最小权限。

2. 可以修饰成员变量和成员方法。

3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。

private的使用格式

private 数据类型 变量名 ;

1. 使用 private 修饰成员变量,代码如下:

public class Student {

private String name;

private int age;

}

2. 提供 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;

}

}

4 .封装优化——构造方法

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

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

构造方法的定义格式

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

// 方法体

}

构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。

使用构造方法后,代码如下:

public class Student {

private String name;

private int age;

// 无参数构造方法

public Student() {}

// 有参数构造方法

public Student(String name,int age) {

= name;

= age;

}

}

注意事项

1. 如果你不提供构造方法,系统会给出无参数构造方法。

2. 如果你提供了构造方法,系统将不再提供无参数构造方法。

3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数。

5 . 标准代码——JavaBean

JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无参数的构造方法,提供用来操作成员变量的 set 和 get 方法。

public class ClassName{

//成员变量

//构造方法

//无参构造方法【必须】

//有参构造方法【建议】

//成员方法

//getXxx()

//setXxx()

}

编写符合 JavaBean 规范的类,以学生类为例,标准代码如下:

public class Student {

//成员变量

private String name;

private int age;

//构造方法

public Student() {}

public Student(String name,int age) {

= name;

= age;

}

//成员方法

publicvoid setName(String name) {

= name;

}

public String getName() {

return name;

}

publicvoid setAge(int age) {

= age;

}

publicint getAge() {

return age;

}

}

测试类,代码如下:

public class TestStudent {

public static void main(String[] args) {

//无参构造使用

Student s= new Student();

s.setName("柳岩");

s.setAge(18);

Sy()+"‐‐‐"+s.getAge());

//带参构造使用

Student s2= new Student("胡歌",18);

Sy()+"‐‐‐"+());

}

}

二、 继承

1. 继承

概述

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。如图所示:

其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。

继承描述的是事物之间的所属关系,这种关系是: is -a 的关系。例如,图中兔子属于食草动物,食草动物属于动物。可见,父类更通用,子类更具体。我们通过继承,可以使多种事物之间形成一种关系体系。

定义

继承 :就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

好处

1. 提高代码的复用性。

2. 类与类之间产生了关系,是多态的前提.

2.接口

概述

接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。

接口的定义

它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。

引用数据类型:数组,类,接口。

接口的使用

它不能创建对象,但是可以被实现( implements ,类似于被继承)。一个实现接口的类(可以看做是接口的子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。

三.多态

概述

多态是继封装、继承之后,面向对象的第三大特性。

生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态。

定义

多态 : 是指同一行为,具有多个不同表现形式。

前提【重点】

1 . 继承或者实现【二选一】

2. 方法的重写【意义体现:不重写,无意义】

3. 父类引用指向子类对象【格式体现】

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐