반응형
SMALL
변수란?
: 값을 담을 수 없는 그릇 (값을 가지고 있는 특정한 그릇)
값을 다른 값으로 바꿀 수 있으며, 초기값이 필요하지 않음. var 로 선언함.
- 숫자(Number)
- Byte(8Bit) : -128 ~ 127 까지
- Short(16Bit) : -32,768 ~ 32,767
- Int(32Bit) : -2147483648 ~ 2147483647
- Long(64Bit) : -21억 ~ 21억 이상의 수
- Float(32Bit) : 소수점 7자리
- Double(64Bit) : 소수점 14자리
- 글자(Character) : 'A', 'B', 'C'
- 글자 한 개만 남음
- Char 입력해서 선언
- '(작은 따옴표)' 를 이용해서 입력
- 예 (var c : Char = 'A')
- 논리값(Boolean)
- true, false 값만 담을 수 있음
- Boolean 입력해서 선언
- 예 (var b : Boolean = true)
- 문자열(String) : "Apple", "Banana", "Character"
- 여러 개의 문자를 담을 수 있음
- String 입력해서 선언
- "(큰따옴표)" 를 이용해서 입력
- 예 (var s : String = "My name is howl")
- 배열(Array) : [Apple, Banana, Character]
- 1차원 데이터
- 선언방식 : Array<데이터형식>
- 데이터형식 : 숫자(Int, Long), 글자(Char), 문자열(String), 논리값(Boolean) ...
- 예 ( var a : Array<Int> = arrayOf(1,2,3) )
상수란?
: 값을 담을 수 있는 그릇 (수정 불가능한 그릇)
값을 바꿀 수 없으며, 초기값이 필요하다(초기값을 반드시 넣어줘야 함), val로 선언할 수 있다.
예( val [변수명] : [변수형식] = [입력할값] )
NULL
: 그릇(변수)안에 값이 존재하지 않는 상태.
공백이나 0과는 개념이 다르며, 그릇 안에 데이터가 배치되기 전 상태라고 보면 됨.
연산자
- 대입연산자
- =
- [데이터를 받을 변수] = [데이터를 입력한 값]
- 수학에서 쓰는 같다 의 의미의 연산자는 "==" 이다.
- 예(
var i = 0
i = i + 1 -> i = 0 + 1
)
- 산술연산자
- + (더하기)
- x + y
- - (빼기)
- x - y
- * (곱하기)
- x * y
- / (나누기)
- x / y
- % (나머지)
- x % y
- + (더하기)
- 범위연산자
- [비교변수] in [시작값..마지막값]
- x in 1..10
- [1..10]은 1부터 10까지의 수, 즉 [1,2,3,4,5,6,7,8,9,10]을 의미함.
- x !in 1..10
- 1 >= x, x <= 10
- x in 1..10
- [비교변수] in [시작값..마지막값]
- 비교연산자
- x > y
- x가 y보다 클 때 true, 아닐 때 false
- x < y
- x가 y보다 작을 때 true, 아닐 때 false
- x >= y
- x가 y보다 크거나 같을 때 true, 아닐 때 false
- x <= y
- x가 y보다 작거나 같을 때 true, 아닐 때 false
- x == y
- x와 y가 같을 때 true, 아닐 때 false
- x != y
- x와 y가 다를 때 true, 아닐 때 false
- x > y
제어문 (Control Flow)
- If~Else 문
- if(조건) { ... } //조건이 참일 경우 실행
- else if(조건) { ... } //조건이 참일 경우 실행
- else { ... } //위 2개의 조건문이 둘 다 거짓일 경우 실행
- When 문
when(x) {
print("x값은 1입니다.") //x가 1일 때 작동
print("x값은 2입니다.") //x가 2일 때 작동
else { //x가 1과 2가 아닐 때 작동
print("x값은 1또는 2가 아닙니다.")
}
}
- For 문
// Range For 문
for (x in 1..10 step 2) { //step2는 2씩 커진다는 의미임. step이 없으면 default로 1씩 커짐.
print(x)
}
// Collection For 문 (데이터가 배열로 담겨짐)
var collection = [1, 10, 100]
for (item in collection) {
print(item)
}
- While 문 (특별한 상황에서만 써야 함. 반복문으로 for문도 쓸 수 있다면 차라리 for문을 쓰는게 낫다고 함.)
while(조건문) {
//조건문이 참일 경우 계속해서 반복함.
}
CLASS( == Object == 객체화 )
- 개발자가 거대한 우주를 만든다고 했을 때, 은하계가 CLASS일 것이다.
- 은하계가 태양계에서도 어떠한 기준에 의해서 물질을 나눌 수 있는데, 빛이 나는 것을 행성, 빛이 나지 않는 것을 항성이라고 한다. 이러한 기준을 통해서 "지구"라는 Class를 만들 수 있다.
- 지구의 물질(정보)를 어떤 기준으로 나눌 때 하나하나씩 쪼개서 만드는 것을 "객체화"라고 하며, 객체는 class를 의미한다. 특정 정보에 의해서 나누는 것을 의미한다.
- 구조 :
class (클래스명) {
var name : String //Property
//var height : Int
//var weight : Int
fun printHumanInfo {
//Functions
}
}
FUNCTIONS
fun 이름 (입력값) : 리턴타입 { //리턴타입(Int, String, Boolean)
//프로세서 처리
return 가공값
}
CLASS (상속 - Inheritance)
- 상속(Inheritance)이란?
- 상속받은 재산, 유산; 상속
- (강사님이 보기에는 유전(?유산), 상속의 의미에 더 가깝다고 하심)
open class (클래스명) { //나중에 override할 때 open을 해줘야 할 수 있다.
open var name : String
open fun printHumanInfo {
...
}
}
OVERRIDE 란? (올라탄다라는 뜻)
: 상속받은 변수, 기능 재구축 (강사님은 함수를 재정의 하는 것을 의미한다고 하심.)
open class Human {
open val name = "하울"
}
class Person: Human() { //Person 클래스는 Human 클래스를 상속받음.
override val name = "유명식" //상속받은 Person 클래스의 변수 name의 값을 변경해줌.
}
class Person2: Human() { //Person에서 고쳐진 name의 정보는 Person2에 아무런 영향을 미치지 않음.
...
}
반응형
LIST
'개발 > 안드로이드' 카테고리의 다른 글
[안드로이드 앱의 기본구조] 3. 앱 구성 파일 분석 (1) | 2025.01.28 |
---|---|
[안드로이드 앱의 기본구조] 2. 안드로이드 앱 개발의 특징 (0) | 2025.01.28 |
[안드로이드 앱의 기본구조] 1. 안드로이드 소개 (1) | 2025.01.28 |
[Google Login 기능 구현 1] build.gradle 세팅하기 (1) | 2025.01.26 |
데이터베이스 기초와 Firestore 문법 기초 (0) | 2025.01.20 |