纯面向对象语言或完全面向对象语言是完全面向对象的语言,它支持或具有将程序内部的一切都视为对象的特性。它不支持原始数据类型(如int、char、float、bool等)。纯面向对象编程语言需要满足七个条件。他们是:
null
- 数据隐藏/封装
- 遗产
- 多态性
- 抽象
- 所有预定义类型都是对象
- 所有用户定义的类型都是对象
- 对对象执行的所有操作只能通过对象上公开的方法执行。
例子:Smalltalk
为什么Java不是一种纯粹的面向对象语言?
Java支持属性1、2、3、4和6,但不支持上面给出的属性5和7。Java语言不是纯粹的面向对象语言,因为它包含以下属性:
- 基本数据类型,例如int、long、bool、float、char等作为对象: Simultalk是一种纯的面向对象的编程语言,不像java和C++那样,因为值是原始类型的对象和值之间没有差别。在Smalltalk中,整数、布尔值和字符等基本值也是对象。 在Java中,我们将预定义类型作为非对象(基本类型)。
int a = 5; System.out.print(a);
- 静态关键字: 当我们将一个类声明为静态类时,就可以在不使用Java中的对象的情况下使用它。如果我们使用的是静态函数或静态变量,那么我们不能使用点(.)调用该函数或变量或者类对象,无视面向对象的特性。
- 包装类: 包装类提供了将原语转换为对象和将对象转换为原语的机制。在Java中,可以使用Integer、Float等,而不是int、Float等。我们可以与对象通信,而无需调用它们的方法。例如,使用算术运算符。
String s1 = "ABC" + "A" ;
即使使用包装器类也不能使Java成为一种纯粹的OOP语言,因为它在内部会使用诸如取消装箱和自动装箱之类的操作。因此,如果您创建而不是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那样工作:
- 在创建Integer类时,您使用的是原语类型“int”,即数字10、20。
- 在进行加法时,Java使用的是原语类型“int”。
相关文章: 为什么C++是面向对象的部分语言?
本文由 桑吉特·阿南德 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END