JavaSE基础——面向对象1:类与对象—–005

JavaSE基础——面向对象1:类与对象

一、编程思想

一般来说,计算机语言要处理的就两个方面的内容:数据和算法数据是程序使用和处理的信息;算法是程序使用的方法。

1.面向过程编程(POP, Procedure Oriented Programming)

核心思想:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

举例说明:以把大象放入冰箱为例,我们首先定义一个拿到大象的函数,然后定义一个开冰箱的函数,然后定义一个放大象的函数,然后定义一个关冰箱的函数,最后依次调用就可以实现功能了。

代表语言:C语言

面向过程编程在考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现,因此比较强调算法方面

2.面向对象编程(OOP,Object Oriented Programming)。

核心思想:通过将现实世界中的物体抽象成一个具体的类,通过调用类的相关方法来完成一系列行为。

举例说明:以把大象放入冰箱为例,我们先定义一个人的,有拿大象、放大象、开冰箱、关冰箱的方法(也就是人可以做这些事情),再定义一个大象类,再定义一个冰箱类,然后创建相应的对象调用相关的方法即可。**

代表语言:C++、C#、Java等等。

关于面向对象

  • 以类的方式组织代码,以对象的方式组织(封装)数据
  • 面向对象的三大特征是:封装、继承和多态。
  • 从认识的角度上来说,是先有对象后有类。对象是具体的事物,类是抽象的,是具体事物的抽象概括(属性:对象是什么样子的;方法:对象能干些什么。属性+方法= 类)。
  • 从代码运行角度来说,是先有类后有对象,类是对象的模板,有了类才能实例出对象。

在考虑问题时,以对象为单位,考虑它的属性及方法。因此面向对象编程更多的是强调数据

3.面向接口编程(IOP,Interface Oriented Programming)

**定义(规范,约束)与实现(名实分离的原则)**的分离。

接口的本身反映了系统设计人员对系统的抽象理解。

4.面向切面编程(AOP,Aspect Oriented Programming)

通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。

AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

5.函数式编程(Function Programming)

函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。主要思想是把运算过程尽量写成一系列嵌套的函数调用

代表语言:Python、JavaScript语言等。

二、类与对象

类是对象的抽象,对象是类的实例化。

1.初识类与对象

类是什么/strong>

类是引用类型的一种。

类是一种抽象的数据类型,它是对某一类事物的整体抽象性的概括/定义。但并不能代表某一个具体的事物。

属性+方法= 类

属性:对象是什么样子的;方法:对象能干些什么

对象是什么/strong>

对象是抽象概念的具体实例,能够体现出特点,展现出功能。

2. 构造器(构造方法)

构造器也称为构造方法,是在创建对象的时候必须要调用的,使用new关键字来创建对象的本质就是在调用构造方法。构造方法常用来初始化对象

2.1 构造方法的特点

构造器(构造方法)有以下特点:

  • 构造方法的方法名必须与类名一样

  • 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

  • 构造方法可以重载,以参数的个数,类型,或排序顺序区分。

  • 所有的类都有构造方法。当未定义构造方法时, Java 会自动提供一个默认的构造方法,默认构造方法的访问修饰符和类的访问修饰符相同(类为 public,构造函数也为 public;类改为 protected,构造函数也改为 protected)。

    一旦自定义了构造方法,默认构造方法就会失效

2.2 有参构造与无参构造

在使用new关键字实例化一个对象的时候,会分配内存空间、调用构造方法并进行对象的初始化。

构造方法的主要功能就是完成对象的初始化,根据是否有参数分为有参构造和无参构造。

1. 无参构造

无参构造方法就是构造方法没有任何参数。构造方法在创建对象调用,无参构造方法中一般用于给属性赋值默认值

当未定义构造方法的时候,JVM会默认给类分配一个无参构造,默认的无参构造方法里什么也没有,参数还是数据类型的默认值。

当未定义构造方法的时候,JVM会默认给类分配一个无参构造,形如:

2. 有参构造

当构造/实例化一个对象时,可以向构造方法中传递参数,这样的构造方法称为有参构造。

3. 有参构造的问题

如果一个类提供了有参构造方法,JVM就不会给类自动分配无参构造方法了。因此,需要显式地提供一个无参的构造方法。

当定义了有参构造方法的时候,应该习惯于再定义一个无参的构造方法

  • IDEA生成构造方法的快捷键:(insert 在F2旁边)
  • 可以有多个构造方法,它们之间属于方法重载的关系。

来源:墨苒孤

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月11日
下一篇 2021年3月11日

相关推荐