栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java面向对象的特性

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java面向对象的特性

文章目录
  • 前言
  • 一、面向对象的特性
    • 1.封装
      • 1.1 封装的个人理解
      • 1.2 封装的优点
      • 1.3 封装的具体实例
    • 2.继承
    • 2.1继承的个人理解
    • 3.多态


前言 一、面向对象的特性 1.封装

封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

1.1 封装的个人理解
  1. 尽可能把数据的具体的内部实现给隐藏起来,外界无法直接访问数据内,进行赋值等操作。
  2. 外界如果想要进行赋值等操作,必须通过提供的公共接口来进行修改赋值操作。
1.2 封装的优点
  1. 减少耦合: 可以独立地开发、测试、优化、使用、理解和修改 减轻维护的负担。 可以更容易被程序员理解,并且在调试的时候可以不影响其他模块
  2. 有效地调节性能 可以通过剖析确定哪些模块影响了系统的性能 提高软件的可重用性 降低了构建大型系统的风险
  3. 即使整个系统不可用,但是这些独立的模块却有可能是可用的
1.3 封装的具体实例
public class Person {

    private String name;
    private int gender;
    private int age;

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender == 0 ? "man" : "woman";
    }

    public void work() {
        if (18 <= age && age <= 50) {
            System.out.println(name + " is working very hard!");
        } else {
            System.out.println(name + " can't work any more!");
        }
    }
}

2.继承
  1. 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
  2. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
2.1继承的个人理解

继承实现了IS-A关系,即子类是父类中的一个实现
当父类的方法,或者属性不能够满足具体使用,需要在父类的基础上进行扩展的时候,就可以使用继承
继承需要遵守里氏替换原则
所谓里氏替换原则
个人觉得是一种规范,
首先子类尽量不要改动父类的东西,
但可以在父类的基础上加东西
当重载父类方法时,参数要比父类更加宽松
返回值要比父类更加严格

向上转型
(Cat 可以当做 Animal 来使用,也就是说可以使用 Animal 引用 Cat 对象。父类引用指向子类对象称为 向上转型 。

Animal animal = new Cat();

)

3.多态

多态分为编译时多态和运行时多态:

编译时多态主要指方法的重载
运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定

运行时多态有三个条件:

继承
覆盖(重写)
向上转型


public class Instrument {
    public void play() {
        System.out.println("Instument is playing...");
    }
}

public class Wind extends Instrument {
    public void play() {
        System.out.println("Wind is playing...");
    }
}

public class Percussion extends Instrument {
    public void play() {
        System.out.println("Percussion is playing...");
    }
}

public class Music {
    public static void main(String[] args) {
        List instruments = new ArrayList<>();
        instruments.add(new Wind());
        instruments.add(new Percussion());
        for(Instrument instrument : instruments) {
            instrument.play();
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275125.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号