前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么Java不是纯面向对象语言?

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

原创
作者头像
淡定的蜗牛
修改2019-09-11 19:00:45
1.1K0
修改2019-09-11 19:00:45
举报
文章被收录于专栏:Java知己

什么是纯面向对象语言?


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

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

正是金九银十跳槽季,为大家收集了2019年最新的面试资料,有文档、有攻略、有视频。有需要的同学可以来在公众号【Java知己】,发送【面试】领取最新面试资料攻略!

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


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

原始数据类型例如对象

Smalltalk是一种“纯粹的”面向对象的编程语言,与Java和C++不同,因为作为对象的值和作为基本类型的值之间没有区别。在Smalltalk中,原始值,例如整数,布尔值和字符也是对象。

在Java中,我们将预定义类型作为非对象(基本类型)。

代码语言:java
复制
int a = 5; 
System.out.print(a);

static关键字

当我们将一个类声明为Static时,可以在不使用Java中的对象的情况下使用它。

包装类

包装类提供了将基元转换为对象和对象转换为基元的机制。在Java中,您可以使用Integer,Float等代替int,float等。我们可以在不调用其方法的情况下与对象使用算术运算符。

代码语言:java
复制
String s1 ="ABC"+"A";

即使使用Wrapper类也不会使Java成为纯OOP语言,因为内部它将使用Unboxing和Autoboxing等操作。因此,如果您不是用int Integer创建并对其执行任何数学运算,那么Java将仅使用基本类型int 。

代码语言:javascript
复制
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一样工作:

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

“不积跬步,无以至千里”,希望未来的你能:有梦为马 随处可栖!加油,少年!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是纯面向对象语言?
  • 为什么Java不是纯面向对象语言?
    • 原始数据类型例如对象
      • static关键字
        • 包装类
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档