什么是Smalltalk等同于Java的静态?

前端之家收集整理的这篇文章主要介绍了什么是Smalltalk等同于Java的静态?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是Smalltalk等同于 Java的静态字段和方法? IOW,Smalltalkers在需要课堂级数据和/或方法时会做什么?

解决方法

我们使用类方法/实例变量.一个类是一个对象,毕竟可以有方法.

例如,Rectangle类有一个方法#origin:corner:所以你可以写

Rectangle origin: 0@0 corner: 100@100

创建一个Rectangle.这只是消息#origin:corner:发送到称为Rectangle的对象(一个类是一个对象!),两个Points作为参数.

类侧实例变量的工作方式大致相同.作为对象的类可以具有实例变量.从SUnit库:

TestCase class
  instanceVariableNames: 'history'

然后TestCase类以通常的方式暴露了这个,使用getter / setter(#history和#history :).

编辑:我使用的@引起了很多讨论.这就是所谓的binary message,它允许一个人定义选择器,看起来只是其他语言将称为中缀运算符.例如,3 4,或0 @ 0.在@的情况下,Number类定义一个称为@的方法,取参数y,定义为^ Point x:self y:y – “返回其坐标为我自己的值,其y坐标是参数的Point”.

Point是一个有序对,但当然没有什么可以阻止一个定义更高维的版本. Point可以定义一个叫做@的方法,例如:^ Triple x:self xy:self yz:z – “返回一个R ^ 3中的一个点,其中x,y坐标是我自己的,z坐标是给定参数“.

猜你在找的Java相关文章