当前位置:网站首页>Kotlin introductory notes (VII) data class and singleton class
Kotlin introductory notes (VII) data class and singleton class
2022-07-05 09:14:00 【Meng Meng Mu Xi】
Preface : This tutorial is best done with JAVA Study on the basis of
One 、 Data class
java in :
stay java in , Data classes are often rewritten equals() 、hashCode() 、toString() Here are a few ways . among ,equals() Method is used to determine whether two data classes are equal .hashCode() Method as a equals() The supporting methods of also need to be rewritten . Otherwise, it will lead to HashMap、HashSet etc. hash The related system class does not work properly .toString() Method for clearer input logs , Otherwise, a data class will print out a line of memory address .
public class Cellphone {
private String brand;
private double price;
public Cellphone(String brand, double price) {
this.brand = brand;
this.price = price;
}
@Override
public int hashCode() {
return brand.hashCode() + (int)price;
}
@Override
public boolean equals(@Nullable Object obj) {
if (obj instanceof Cellphone) {
Cellphone other = (Cellphone) obj;
return other.brand.equals(brand) && other.price == price;
}
return false;
}
@NonNull
@Override
public String toString() {
return "Cellphone(band=" + brand + ",price=" + price +")";
}
}
kotlin in :
data class Cellphone(val brand : String , val price : Double)
stay Kotlin in , need Kotlin It takes only one line to achieve
How I felt when I first saw this scene , Only two words can be used to describe : Out of line
When a class is declared in front of data Keywords , That means you want this class to be a data class ,Kotlin It will help you put... According to the parameters in the main constructor equals() 、hashCode() 、toString() And other fixed methods without practical logical significance , Thus greatly reducing the workload of development .
in addition , Because the function has no code , You can omit the trailing brace .
Let's test this data class , stay main Function to write the following code :
fun main() {
val cellphone1 = Cellphone("Samsung",1299.99)
val cellphone2 = Cellphone("Samsung",1299.99)
println(cellphone1)
println("cellphone1 equals cellphone2 " + (cellphone1 == cellphone2))
}
Print the results :
Two 、 Singleton class
java in :
public class Singleton {
private static Singleton instance;
private Singleton() {}
public synchronized static Singleton getInstance() {
if (instance == null)
instance = new Singleton();
return instance;
}
public void singletonTest(){
System.out.println("singletonTest is called.");
}
}
Kotlin:
Implement the singleton class :
object Singleton {
}
Added as above singleTest() To test
object Singleton {
fun singletonTest() {
println("singletonTest is called.")
}
}
It only takes threeorfour lines to realize and java Exactly the same effect ! Calling functions is also very simple :
Singleton.singleTest()
It's similar to Java Static method calls , But behind it Kotlin Helped us create Singleton Class , And ensure that there is only one Singleton example .
If you like this series , You might as well pay attention ! Thank you for watching !
Reference resources :
《 First line of code Android ( The third edition )》 --- Guo Lin
边栏推荐
- Illustrated network: what is gateway load balancing protocol GLBP?
- Ministry of transport and Ministry of Education: widely carry out water traffic safety publicity and drowning prevention safety reminders
- TF coordinate transformation of common components of ros-9 ROS
- Multiple linear regression (sklearn method)
- 编辑器-vi、vim的使用
- np. allclose
- [code practice] [stereo matching series] Classic ad census: (4) cross domain cost aggregation
- Rebuild my 3D world [open source] [serialization-1]
- 22-07-04 西安 尚好房-项目经验总结(01)
- Solution to the problem of the 10th Programming Competition (synchronized competition) of Harbin University of technology "Colin Minglun Cup"
猜你喜欢
Multiple solutions to one problem, asp Net core application startup initialization n schemes [Part 1]
[technical school] spatial accuracy of binocular stereo vision system: accurate quantitative analysis
Applet (global data sharing)
Applet network data request
Introduction Guide to stereo vision (1): coordinate system and camera parameters
Nodejs modularization
Install the CPU version of tensorflow+cuda+cudnn (ultra detailed)
TF coordinate transformation of common components of ros-9 ROS
嗨 FUN 一夏,与 StarRocks 一起玩转 SQL Planner!
Nodemon installation and use
随机推荐
Meta tag details
Applet customization component
Ros-11 common visualization tools
Ecmascript6 introduction and environment construction
Explain NN in pytorch in simple terms CrossEntropyLoss
[technical school] spatial accuracy of binocular stereo vision system: accurate quantitative analysis
Blogger article navigation (classified, real-time update, permanent top)
notepad++
Applet global style configuration window
云计算技术热点
Shutter uses overlay to realize global pop-up
Creation and reference of applet
TF coordinate transformation of common components of ros-9 ROS
Applet (subcontracting)
基于STM32单片机的测温仪(带人脸检测)
Codeforces round 684 (Div. 2) e - green shopping (line segment tree)
Codeworks round 639 (Div. 2) cute new problem solution
Composition of applet code
顶会论文看图对比学习(GNN+CL)研究趋势
L'information et l'entropie, tout ce que vous voulez savoir est ici.