Java 的小白学习笔记十一(面向对象-封装和接口)

封装

封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

Java封装看做是一个保护屏障,放置一个类中的代码和数据被外部类定义的代码随机访问。

优点

1. 良好的封装能减少耦合

2. 类内部结构可以自由修改

3. 可以对成员变量更精确的控制

4. 隐藏信息,实现细节

实现封装

1. 修改属性的可见性来限制对属性的访问

public class Person{

   // public String name;

    private String name; //改为私有属性,外部不能直接访问

}

2. 对要控制的额值提供对外的公共方法访问,也就是创建一对取值赋值的方法(getter和setter),用于对私有属性的访问

public class Person{

    private String name;

    public void setName(String name){

        this.name = name;

    }

    public String getName(){
        return name;

    }

}

接口

接口是一个抽象类型,是抽象方法的集合,通常用interface来声明,类通过继承接口的方式,来继承接口的抽象方法。

接口的编写方式跟类很相似,但不是同一概念。接口包含要实现的方法,而类描述对象的属性和方法。

除非实现接口的类是抽象类,否则要定义接口中所有的方法。

接口与类的区别

接口不能实例化对象

接口没有构造方法

接口中所有方法必须是抽象方法

接口不能包含除了static和final外的成员变量

接口不是要被类继承,而是要被类实现

接口支持多继承

声明语法格式

【可见度】interface 接口名称 【extends 其他类名】{

    //声明变量

    //抽象方法

}

接口特性

声明接口不用使用abstract关键字

接口中的方法不用使用abstract关键字,且都是共有的。

interface Animal{

    public void eat();

}

//接口可以继承接口

interface Dog extends Animal{

    public void bark();

}

interface Fish{

    public void breath();

}

public class A implements Dog,Fish{

    public void eat(){};

    public void bark(){};

    public void breath(){};

}

标记接口

没有任何方法的接口被称为标记接口,它不包含任何方法和属性,仅仅标明它的类属于一个特定的类型,供其他代码来测试允许做一些事情

标记接口目的

1. 建立一个公共的父接口

2. 向一个类添加数据类型

public interface EventListener{}

你可能感兴趣的:(Java 的小白学习笔记十一(面向对象-封装和接口))