• 技术文章 >Java >java教程

    java什么是抽象与封装

    (*-*)浩(*-*)浩2020-09-18 10:32:21原创2351

    抽象是将相同的类的共同特征总结出来,构造成类的过程;只关心成员变量以及成员函数,并不关系具体的实现细节。封装是把数据以及操作方法封装在函数/类里,然后再装起来;也就是把数据以及操作数据的方法绑定起来,对外界提供已经定义好的接口进行访问。

    php入门到就业线上直播课:进入学习

    java的四个基本特征是抽象,封装,多态,继承。今天我们就来讲讲什么是抽象与封装。

    抽象

    抽象:将相同的类的共同特征总结出来,构造成类的过程。包括数据抽象以及行为抽象。数据抽象变成类的成员变量,行为抽象变成类的成员函数。抽象只关心成员变量以及成员函数,并不关系具体的实现细节。

    下面是Person.class,表示与人类相关的数据以及各种活动,只列举部分的属性以及行为。

    public class Person{
        // 年龄(数据抽象)
        public int age;
        // 名字(数据抽象)
        public String name;
    
        public Person(){
    
        }
        public Person(int age,String name){
            this.age = age;
            this.name = name;
        }
        // 吃东西(行为抽象)
        public void eat(){
            System.out.println("I am eating");   
        }
        // 走路(行为抽象)
        public void walk(){
            System.out.println("I am walking");  
        }
    }

    创建一个人类的对象:

    Person person = new Person(18,"张三");

    上面的代码仅仅用来表示简单的抽象,将人共同的属性以及共同的行为抽象出来。

    封装

    封装其实可以理解为:“装”与“封”,就是把数据以及操作方法封装在函数/类里,然后再装起来。也就是把数据以及操作数据的方法绑定起来,对外界提供已经定义好的接口进行访问。面向对象的本质就是将现实世界描绘成一系列的完全自治,封闭的对象。可以理解为我们无论内部实现有多复杂,使用者可以完全不用理,只需要知道怎么使用就可以了。

    举个小例子:下面是学生的类,study的方法其实就是一种封装,外界要是需要学生学习,那就直接调用study()方法即可,不需要知道我如何实现学习这个方法。

    public class Student implements Serializable {
        public String name;
        public String number;
        public int age;
        public Student() {
        }
        public Student(String name, String number, int age) {
            this.name = name;
            this.number = number;
            this.age = age;
        }
        public void study(){
            System.out.println("我是学生"+name+",我今年"+age+"岁。");
            //内部可能有很复杂的操作,但是调用者只需要关注如何调用即可
        }
    }

    以上就是java什么是抽象与封装的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:Java
    上一篇:java类怎么写 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• java抽象方法是什么• java中num是什么意思• java中float是什么意思• class在java里是什么意思
    1/1

    PHP中文网