为何 Java 不是纯面向对象语言?

什么是纯面向对象语言?

纯面向对象语言或彻底面向对象语言是指彻底面向对象的语言,它支持或具备将程序内的全部内容视为对象的功能。它不支持原始数据类型(如 int,char,float,bool 等)。编程语言知足七种标准能够就能够称为纯粹的面向对象语言,他们是:java

  1. 封装 / 数据隐藏
  2. 继承
  3. 多态性
  4. 抽象化
  5. 全部预约义类型都是对象
  6. 全部用户定义的类型都是对象
  7. 对对象执行的全部操做必须仅经过对象公开的方法

为何 Java 不是纯面向对象语言?

Java 支持属性 1,2,3,4 和 6 但不支持上面给出的属性 5 和 7. Java 语言不是纯面向对象语言,由于它包含如下属性:面试

原始数据类型例如对象:编程

Smalltalk 是一种 “纯粹的” 面向对象的编程语言,与 Java 和 C++ 不一样,由于做为对象的值和做为基本类型的值之间没有区别。在 Smalltalk 中,原始值,例如整数,布尔值和字符也是对象。在 Java 中,咱们将预约义类型做为非对象(基本类型)。app

int a = 5;  
System.out.print(a);

static 关键字:编程语言

当咱们将一个类声明为 Static 时,能够在不使用 Java 中的对象的状况下使用它。code

包装类:视频

包装类提供了将基元转换为对象和对象转换为基元的机制。在 Java 中,您能够使用 Integer,Float 等代替 int,float 等。咱们能够在不调用其方法的状况下与对象使用算术运算符。
即便使用 Wrapper 类也不会使 Java 成为纯 OOP 语言,由于内部它将使用 Unboxing 和 Autoboxing 等操做。所以,若是您不是用 int Integer 建立并对其执行任何数学运算,那么 Java 将仅使用基本类型 int 。对象

public class BoxingExample  { 
	public static void main(String[] args){ 
			Integer i = new Integer(10); 
			Integer j = new Integer(20); 
			Integer k = new Integer(i.intValue() + j.intValue()); 
			System.out.println("Output: "+ k); 
	} 
}

在上面的代码中,有两个问题,Java 没法像纯 OOP 同样工做:blog

  1. 在建立 Integer 类时,您使用的是基本类型 “int”,即数字 10,20。
  2. 在使用加法时,Java 使用原始类型 “int”( jdk1.5 须要拆箱操做,jdk1.5 及之后添加了新特性:自动装箱和拆箱)。

“不积跬步,无以致千里”,但愿将来的你能:有梦为马 随处可栖!加油,少年!继承

正是金九银十跳槽季,为你们收集了 2019 年最新的面试资料,有文档、有攻略、有视频。

有须要的同窗能够来在公众号【Java 知己】,发送【面试】领取最新面试资料攻略!

到底如何才能 new 出这个对象?在线等...

相关文章
相关标签/搜索