0. 이전글
2018/12/13 - [Java와 다른 Kotlin] - [JAVA 다른 KOTLIN ] if-else, switch, when
1. a+b 기본
1-1. JAVA CODE:
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class StudyClassJava extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_empty); aPlusB(15,10); } private int aPlusB(int a, int b) { return a + b; } } | cs |
1-2. KOTLIN CODE:
1 2 3 4 5 6 7 8 9 | class StudyClassKotlin : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_empty) Log.d("a+b", aPlusB(10,15).toString()) } fun aPlusB(a:Int, b:Int) = a+b } | cs |
1-3. 해석:
코틀린에서는 aPlusB(a:Int, b:Int) = a+b와 같이 쉽게 함수를 표현식으로 나타낼 수 있다는 것을 알 수 있다.
2. a+b default parameters 활용
2-1. JAVA CODE:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class StudyClassJava extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_empty); defaultAplusB(15,10); defaultAplusB(15); } private int defaultAplusB(Integer... nums) { int defaultNum = 10; int result = 0; if (nums.length == 2) { result = nums[0] + nums[1]; } else if (nums.length == 1) { result = nums[0] + defaultNum; } return result; } } |
2-2. KOTLIN CODE(varage):
1 2 3 4 5 6 7 8 9 10 | class StudyClassKotlin : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_empty) Log.d("a+b",defaultAplusB(0).toString()) } fun defaultAplusB(vararg nums:Int) = if(nums.size==2){nums[0]+nums[1]}else{nums[0]+10} } | cs |
2-3. KOTLIN CODE(default parameter):
1 2 3 4 5 6 7 8 9 10 | class StudyClassKotlin : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_empty) Log.d("a+b", aPlusB(10,15).toString()) Log.d("a+b",defaultAplusB(b=15).toString()) } fun defaultAplusB(a:Int=10, b:Int) = a+b } | cs |
2-4. 해석 :
varage를 통해서 간단하게 여러개의 변수를 처리할 수 있고,
default parameter라는 개념이 있어서 함수의 변수의 default 값을 설정해 놓을 수 있다.
3. 프로퍼티
프로퍼티는 클래스의 변수라고 한다.
JAVA와 KOTLIN의 차이 또한 명백하게 나타나는 부분이라고 생각한다.
3-1. JAVA CODE:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class StudyClassJava extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_empty); User user = new User(); user.name = "moon"; Log.d("user", user.name); } class User { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } } | cs |
3-2. KOTLIN CODE(기본):
1 2 3 4 5 6 7 8 9 10 11 12 | class StudyClassKotlin : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_empty) val user = User() user.name = "moon" Log.d("name",user.name) } class User(var name:String) } | cs |
코틀린에서는 User 클래스를 선언과 동시에 var, val 변수를 통해서 외부에서 참조할 수 있도록 프로퍼티로 만들 수 있다.
만약에 var, val을 붙이지 않는다면 클래스를 생성함과 동시에 클래스 내부에서만 사용할 수 있는 참조변수가 된다.
3-3. KOTLIN CODE(field를 통한 getter/setter):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class StudyClassKotlin : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_empty) val user = User() user.name = "moon" Log.d("name",user.name) } class User{ var name:String? = null get() = field set(inName) { field = inName } } } | cs |
코틀린에서는 field라는 변수를 통해서 get과 set에서 return 되는 변수값을 제어할 수 있다.
개인적으로 만들고 있는 어플리케이션입니다.
2018/10/21 - [나의 일기] - (리뷰) 시간표 어플리케이션 - 담다
2018/07/15 - [나의 일기] - #담아두다 #일상 #다이어리 #어플리케이션
'Android 공부 > Java와 다른 Kotlin' 카테고리의 다른 글
[JAVA 다른 KOTLIN ] if-else, switch, when (0) | 2018.12.13 |
---|