Java面向对象

面向对象的核心思想

对象、封装、可重用性和可扩展性

面向对象程序设计(Object Oriented Programming,OOP)是一种程序设计范式,同时也是一种程序开发方法。

它将对象看作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

面向过程、面向对象以及函数式编程被人们称为编程语言中的三大范式(实际上,面向过程和面向对象都同属于命令式编程),是三种不同编码和设计风格。其中面向对象的核心思想是对象、封装、可重用性和可扩展性

类是对象的抽象组织,对象是类的具体存在。

类是我们对一组对象的描述,类定义了一系列的属性和方法,并提供了实际的操作细节,这些方法可以用来对属性进行加工。

对象含有类属性的具体值,这就是类的实例化。
类与对象的关系类似一种服务被服务、加工与被加工的关系。

封装

概念

封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。

面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

封装是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装。

什么是封装?

封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。

作用

① 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担。

②对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的

 

继承、封装、多态、抽象是面向对象编程的四大基本概念,其中封装尤为重要,因为从我们学习JAVA开始,就基本上接触了封装,因为JAVA中的所有程序都是写在类中的,类也能当做一种封装。

  在面向对象中封装是指隐藏对象的属性和实现的细节,仅对外提供公共访问方式。

在类定义中用private关键字来实现封装。封装有什么好处?

  一、是用private把类的细节与外界隔离起来,从而实现数据项和方法的隐藏,而要访问这些数据项和方法唯一的途径就是通过类本身,类才有资格调用它所拥有的资源(方法,数据项属性等等)。所以第一个好处就是数据的安全性提高了

  二、是通过隐藏隔离,只允许外部对类做有限的访问,开发者可以自由的改变类的内部实现,而无需修改使用该类的那些程序。只要那些在类外部就能被调用的方法保持其外部特征不变,内部代码就可以自由改变,各取所需,利于分工。

  三、就是提高了代码的重用性,封装成工具类以后能够减少很多繁琐的步骤。

class Book {
    private String title;
    //要求页数不能少于200页,否则输出错误信息,并赋予默认值200,可以写个构造方法
    private int pageNum;

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        if (pageNum < 200){
            System.out.println("页数太少,系统默认将页数设置为200");
            this.pageNum = 200;
        }else {
            this.pageNum = pageNum;
        }
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public void showBook(){
        System.out.println("此书名称为:"+this.title+",书本页数为:"+this.pageNum+".");
    }
}

要修改和查看书的信息必须通过SETXXX、和GETXXX来实现。 这是能初步体现封装的的例子。我们也能在SET方法中加些判断限制,大大的减少了垃圾信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值