-
Notifications
You must be signed in to change notification settings - Fork 11
/
classes.html
162 lines (126 loc) · 12.9 KB
/
classes.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE html>
<html><script async="true" src="https://www.googletagmanager.com/gtag/js?id=UA-127781126-2"></script><script>window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-127781126-2');window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-127781126-2');</script><script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script><script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script><script src="js/highlight.9.16.2.js"></script><script src="js/bootstrap.min.js"></script><script>hljs.initHighlightingOnLoad();</script><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"><link rel="stylesheet" href="css/style.css"><link rel="stylesheet" href="css/highlightjs-night-owl.css"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><title>Kotlin vs Java</title><meta charset="utf-8"><meta name="viewport" content="width=device-width" initial-scale="1"><meta name="msapplication-TileColor" content="#da532c"><meta name="theme-color" content="#ffffff"><body><div class="container-fluid text-center header-title"><div class="row text-center"><div class="col"><p>Kotlin vs Java</p></div></div></div><nav class="navbar navbar-dark navbar-expand-lg"><button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div id="navbarNav" class="collapse navbar-collapse"><ul class="navbar-nav"><li class="nav-item px-2"><a class="nav-link" href="/index.html">Basics</a></li><li class="nav-item px-2 active"><a class="nav-link" href="/classes.html">Classes</a><span class="sr-only"><current></current></span></li><li class="nav-item px-2"><a class="nav-link" href="/collections.html">Collections</a></li><li class="nav-item px-2"><a class="nav-link" href="/concurrency.html">Concurrency</a></li><li class="nav-item px-2"><a class="nav-link" href="/delegated-properties.html">Delegated Properties</a></li><li class="nav-item px-2"><a class="nav-link" href="/dsl.html">DSL</a></li><li class="nav-item px-2"><a class="nav-link" href="/functions.html">Functions</a></li><li class="nav-item px-2"><a class="nav-link" href="/io.html">I/O</a></li><li class="nav-item px-2"><a class="nav-link" href="/scoping-functions.html">Scoping Functions</a></li><li class="nav-item px-2"><a class="nav-link" href="/spring-framework.html">Spring Framework</a></li><li class="nav-item px-2"><a class="nav-link" href="/error-prone.html">Error prone</a></li></ul></div></nav><a class="github-corner" href="https://github.com/driver733/kotlin-vs-java" aria-label="View source on Github"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#70B7FD; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path class="octo-arm" d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;"></path><path class="octo-body" d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor"></path></svg><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style></a><div class="section"><div class="list-group-flush"><div class="list-group-item border-0"><div class="title">Constructor Call</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">final var file = new File("file.txt");
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">val file = File("file.txt")
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Class</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public final class User {
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">class User
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Open Class</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public class User {
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">open class User
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Final Attributes</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">final class User {
private final String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">class User(val name: String)
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Primary Constructor</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">final class User {
private String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">class User(var name: String)
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Optional Arguments in Constructors</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">final class User {
private String name;
private String lastName;
public User(String name) {
this(name, "");
}
public User(String name, String lastName) {
this.name = name;
this.lastName = lastName;
}
// And Getters & Setters
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">class User(var name: String, var lastName: String = "")
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Properties</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public class Document {
private String id = "00x";
public String getId() {
return id;
}
public void setId(String id) {
if (id != null && !id.isEmpty()) {
this.id = id;
}
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">class Document{
var id : String = "00x"
set(value) {
if(value.isNotEmpty()) field = value
}
}
</code></pre></div></div></div></div></div></div><div class="section"><div class="list-group-flush"><div class="list-group-item border-0"><div class="title">Abstract Class</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public abstract class Document{
public abstract int calculateSize();
}
public class Photo extends Document{
@Override
public int calculateSize() {
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">abstract class Document {
abstract fun calculateSize(): Int
}
class Photo : Document() {
override fun calculateSize(): Int {
}
}
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Singleton</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public class Document {
private static final Document INSTANCE = new Document();
public static Document getInstance(){
return INSTANCE;
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">object Document {
}
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Extensions</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public class ByteArrayUtils {
public static String toHexString(byte[] data) {
}
}
final var dummyData = new byte[10];
final var hexValue = ByteArrayUtils.toHexString(dummyData);
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">fun ByteArray.toHex() : String {
}
val dummyData = byteArrayOf()
val hexValue = dummyData.toHex()
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Inner Class</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public class Documment {
class InnerClass {
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">class Document {
inner class InnerClass
}
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Nested Class</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public class Documment {
public static class InnerClass {
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">class Document {
class InnerClass
}
</code></pre></div></div></div></div><div class="list-group-item border-0"><div class="title">Interface</div><div class="container-fluid"><div class="row"><div class="col"><div class="lang">Java</div><pre class="code"><code class="java">public interface Printable {
void print();
}
public class Document implements Printable {
@Override
public void print() {
}
}
</code></pre></div><div class="col"><div class="lang">Kotlin</div><pre class="code"><code class="kotlin">interface Printable {
fun print()
}
class Document : Printable {
override fun print() {
}
}
</code></pre></div></div></div></div></div></div><footer><div class="container text-center"><div class="row justify-content-center pt-4"><div class="col"><span>Java 13</span></div></div><div class="row justify-content-center"><div class="col"><span>Kotlin 1.3.60</span></div></div><div class="row justify-content-center pt-4 pb-2"><div class="col"><span>Created by: <a href="https://www.driver733.com">@driver733</a></span></div></div><div class="row justify-content-center"><div class="col"><a href="https://github.com/driver733/kotlin-vs-java"><img src="//img.shields.io/github/stars/driver733/kotlin-vs-java.svg?style=social" alt="GitHub stars"></a></div></div><div class="row justify-content-center pt-4 pb-4"><div class="col"><span>Based on: </span><a href="https://github.com/fabiomsr/from-java-to-kotlin">fabiomsr/from-java-to-kotlin</a></div></div></div></footer></body>
</html>