二. 类与对象的初步了解



    面向对象是由IBMsmalltalk语言最先推广的,编程语言的进化:C C++ JavaC一般是用于底层内核部分开发,C++一般是用于封装核心内核,例如前期做的系统开发项目,中间层框架的开发都是用的C++,封装底层的接口提供给上层App使用;Java则是业务开发后台封装,前端只需要用简单的脚本语言调用后台即可。

    编程语言的发展阶段,面向过程:指的是针对某一个问题单独出解决方案及代码开发。但是随着软件规模的扩大,过程语言在解决实际问题时出现了力不从心,人们希望编写出易维护、易扩展和易服用的代码。面向过程语言缺少了一个最本质的概念,那就是“对象”。现实生活中,行为往往归结为某个具体的“主体”所拥有,即某个对象所拥有,并且该对象负责产生这样的行为。面向对象:以一种组件化的形式进行代码的设计,最核心的内容就是“对象”

    面向对象的三大特征:

封装

将数据和对数据的操作封装在一起,保护内部定义的结构的安全性。

继承

在已有的程序结构上,继续扩充新的功能

多态

主要包括方法重载和方法覆写。

方法重载(overload):函数名字相同,但是方法参数类型或者个数不同。即向操作传递不同的参数,对象可以根据参数产生一定的行为;

方法覆写(override):和继承有关,子类重写父类的方法,方法的名字、参数个数、参数的类型、返回类型一致或者是父类方法返回类型的子类。即同一操作被不同类型的对象调用时可能产生不同的行为。

    总结下来,经历的几个过程为:

         OOA(Object-Oriented Analysis):面向对象分析;

         OOD(Object-Oriented Design):面向对象设计;

         OOD(Object-Oriented Programming):面向对象编程.

  1. 类与对象

    类是共性的集合,对象是一个性的产物,除了属性还有功能。类是模板,对象是实例。

    类的格式为:

class Book{

  private String title;

  private double price;

  public Book(String title,double price) {

     this.title = title;

     this.price = price;

  }

  public String getTitle() {

     returntitle;

  }

  public void setTitle(String title) {

     this.title = title;

  }

  public double getPrice() {

     returnprice;

  }

  public void setPrice(double price) {

     this.price = price;

  }

}

   对象是类的一个实例,对象的定义格式为:

        类名 对象名= new类名();

Book book = new Book(“Oracle”, 39.22);

   类是引用数据类型,需要用户用new为其开辟内存空间。内存分为堆内存(heap,主要保存对象属性内容,需要用new进行开辟;栈内存(stack),主要保存每一块堆内容的地址,

  1. 备注

    如果对象可以在外部直接访问类中属性,会造成各种问题。所以类的一个特性发挥了作用,那就是封装性,让属性不可见就行了,这样对象就不可以直接访问属性。

    所有类中定义的属性都要求定义为private,对象如要访问就在类中定义set()get()方法。

  2. 构造方法

    构造方法是为对象属性初始化服务的,使用new()生成对对象先执行的是构造方法。

  3. 引用传递:

     把对象A赋值给B Book book2 = book;

     两个对象指向同一块堆内存空间,任一修改两者都变化。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值