zoukankan      html  css  js  c++  java
  • JAVA的三大特性

    众所周知,java的三大特性为:封装继承多态

    一、 封装

    1. 封装就是将类的信息隐藏在类内部,不允许外部程序直接访问,而是通过该类的方法实现对隐藏信息的操作和访问。

    2. 封装是怎么实现的呢?

       a. 需要修改属性的访问控制符(修改为private);

       b. 创建getter/setter方法(用于属性的读写);

       c. 在getter/setter方法中加入属性控制语句(用于判断属性值的合法性);

    public class Student {
        private String id;
        private int score;
        
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public int getScore() {
            return score;
        }
        public void setScore(int score) {
            this.score = score;
        }
    }

    封装不是简单地将类的属性进行封装,还可以对方法进行封装。

    说道这里,我就一直很奇怪为什么要封装,封装的好处是什么。

    至于为什么需要封装,因为面向对象中所有的实体都是以对象为基本单位的,以宏观世界的实体来映射到计算机世界中,每个对象有它自己的属性和自己的行为,我们用类来将这些属性和行为封装到一起,当它实例化出来一个对象的时候,我们可以说这个对象具有这些属性和行为。不同类别的对象正是因为这些特性的不同,我们才可以将它们区分开,而这也正反映了我们现实生活中不同种类个体的不同。

    举个例子,比如现在有一个Int类型的数据a,它的初始值为0,通过这个变量可以表达出学生的考试成绩。但是仅仅只能表达出学生的成绩为0分,不能表达出学生缺考的情况。但是如果我们现在成绩的类型变为Integer ,那么就不一样了,现在有一个Integer类型的数据b,它的初始值为null,通过null和0我们就能区分出来学生是0分还是缺考的两种不同状态。显然这就是分装的好处,能够更好地模拟现实情况。

    二、 继承

    继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,允许连续继承。

    java继承的特性:

    (1)继承关系是传递的。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。

    (2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。

    (3)继承提供了软件复用功能,能减小代码和数据的冗余度,大大增加程序的重用性。

    (4)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。

    class Person {
        public Person() {
             //person的属性
        }
    }
     
    class Man extends Person {
        public Man() {
              //man的属性
        }
    }
    
    class Woman extends Person {
        public Woman () {
              //woman 的属性
        }
    }

    如上可以看出,Person类有Man和Woman的共同属性,但是Man和Woman又有不同的属性,这样既方便了代码的书写有增强了代码的可读性。继承就是当写一个类时,虽然这个类满足了某些功能但是又想拓展它的功能,此时就可以使用继承机制在写一个该类的子类,来完成需要的功能,一旦子类继承了父类就拥有了父类的方法与域(除私有方法和私有域),在子类中也可以重写父类的方法,覆盖父类中同名的方法,定义与父类相同的域,隐藏父类同名的域,实现子类需要的功能。继承的优点是提高了代码的效率,避免了代码重写。

    三、 多态

    多态指的是对象的多种形态。多态有两种:引用多态和方法多态。从一定角度来看,封装和继承几乎都是为多态而准备的。

    多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)。

    它的作用是去耦合。

    多态存在的三个必要条件:1,要有继承;2,要有重写;3,父类引用指向子类对象。

    Java中多态的实现方式接口实现,继承父类进行方法重写,同一个类中进行方法重载。

    public class Person {
            public void haircut() {
                 System.err.println("我要剪发!"); 
            }
    }
    public class Man extends Person {
        public void haircut() {
              System.err.println("我要剪短发!");
        }
    }
    public class Woman extends Person {
        public void haircut () {
              System.err.println("我要剪长发!");
        }
    }

    如上的方法,同样是剪发,man和woman都是继承自person,并且重写了haircut()方法。

    yian
  • 相关阅读:
    能成大事儿的人,都具备这5个特质
    元气森林唐彬森:苦了10年我发现,发大财首先要会选
    反者道之动,亿万富翁查理芒格受用一生的逆向思维
    解决不了bug先放着,这里有40条提升编程技能小妙招
    理解maven命令package、install、deploy的联系与区别
    每日一则
    《穷查理年鉴》贪嗔痴 & 懒贪装(关于败坏)
    C++构造函数
    C++类的定义和封装
    C++访问控制限定符
  • 原文地址:https://www.cnblogs.com/xiangpeng/p/9564760.html
Copyright © 2011-2022 走看看