Skip to content

Instantly share code, notes, and snippets.

@cdrini
Last active May 27, 2018 22:01
Show Gist options
  • Save cdrini/f929ef33f1a726a6bb4a10e9ecbe1ea9 to your computer and use it in GitHub Desktop.
Save cdrini/f929ef33f1a726a6bb4a10e9ecbe1ea9 to your computer and use it in GitHub Desktop.
Java vs. Kotlin Snippets

1. Getters/Setters

Java

class Circle {
  private double radius = 10;
  public double getRadius() { return this.radius; }
  public void setRadius(double r) { this.radius = r; }
  
  public double getDiameter() { return 2 * this.radius; }
  public void setDiameter(double d) { this.radius = d/2; }
}

public class JavaExample {
  public static void main(String []args) {
    Circle c = new Circle();
    System.out.println(String.format("radius: %f; diameter: %f", c.getRadius(), c.getDiameter()));
    c.setDiameter(40);
    System.out.println(String.format("radius: %f; diameter: %f", c.getRadius(), c.getDiameter()));
    c.setRadius(40);
    System.out.println(String.format("radius: %f; diameter: %f", c.getRadius(), c.getDiameter()));
  }
}

// Output:
// radius: 10.000000; diameter: 20.000000
// radius: 20.000000; diameter: 40.000000
// radius: 40.000000; diameter: 80.000000

Kotlin

class Circle {
  var radius: Double = 10.0
  var diameter: Double
  	get() = 2 * this.radius
  	set(value) { this.radius = value / 2 }
}

fun main(args: Array<String>) {
    var c = Circle()
    println("radius: ${c.radius}; diameter: ${c.diameter}")
    c.diameter = 40.0
    println("radius: ${c.radius}; diameter: ${c.diameter}")
    c.radius = 40.0
    println("radius: ${c.radius}; diameter: ${c.diameter}")
}

// Output:
// radius: 10.0; diameter: 20.0
// radius: 20.0; diameter: 40.0
// radius: 40.0; diameter: 80.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment