[R] help with oop in R - class structure and syntex
Duncan Murdoch
murdoch at stats.uwo.ca
Tue Feb 5 14:45:10 CET 2008
On 2/5/2008 8:21 AM, tom soyer wrote:
> Hi,
>
> I read section 5, oop, of the R lang doc, and I am still not sure I
> understand how to build a class in R for oop. I thought that since I
> understand the oop syntex of Java and VB, I am wondering if the R programmig
> experts could help me out by comparing and contrasting the oop syntex in R
> with that of Java. For example, the basic class structure in Java is like
> this:
>
> public class Bicycle {
>
> // *the Bicycle class has three fields*
> public int cadence;
> public int gear;
> public int speed;
>
> // *the Bicycle class has one constructor*
> public Bicycle(int startCadence, int startSpeed, int startGear) {
> gear = startGear;
> cadence = startCadence;
> speed = startSpeed;
> }
>
> // *the Bicycle class has four methods*
> public void setCadence(int newValue) {
> cadence = newValue;
> }
>
> public void setGear(int newValue) {
> gear = newValue;
> }
>
> public void applyBrake(int decrement) {
> speed -= decrement;
> }
>
> public void speedUp(int increment) {
> speed += increment;
> }
>
> }
>
> Could one of the R experts please illustrate the R class syntex for writing
> the R equivalent of the Java Bicycle class above?
The class system in standard R has no equivalent of that. It's based on
a different idea: the generic function owns methods, classes don't.
Another problem is that there are two different class systems in R:
sometimes calls S3 and S4 (because of the versions of S where they were
introduced). You were reading about S3.
Duncan Murdoch
>
> Also, in Java, inheritance is done like this:
>
> public class MountainBike extends Bicycle {
>
> // *the MountainBike subclass has one field*
> public int seatHeight;
>
> // *the MountainBike subclass has one constructor*
> public MountainBike(int startHeight, int startCadence, int startSpeed,
> int startGear) {
> super(startCadence, startSpeed, startGear);
> seatHeight = startHeight;
> }
>
> // *the MountainBike subclass has one method*
> public void setHeight(int newValue) {
> seatHeight = newValue;
> }
>
> }
>
> What would be the R oop syntex for inheritance in the case of the
> MontainBike class?
>
> Thanks!
>
More information about the R-help
mailing list