본문 바로가기

깡샘 코틀린69

06-2 뷰 클래스 티스토리 단축키 확인 ctrl + '/' 키 코드블록 단축키 alt+ctrl+',' 뷰 클래스의 기본 구조 뷰 객체의 계층 구조 액티비티 화면을 구성할 때 사용하는 클래스는 모두 View의 하위 클래스이다. 그래서 화면구성과 관련한 클래스를 통칭하여 뷰 클래스라고 한다. 뷰 클래스의 하위에는 다양한 클래스가 있고 각 클래스의 역할은 다음과 같다. View: 모든 뷰 클래스의 최상위 클래스. 액티비티는 이 클래스의 서브 클래스만 화면에 출력함 ViewGroup: View의 하위클래스지만 자체 UI는 없어서 화면에 출력해도 아무것도 나오지 않음. 다른 뷰 여러개를 묶어서 '제어'하는 목적. 그릇 역할. 컨테이너 기능 담당. 실제로는 ViewGroup의 서브클래스인 레이아웃클래스를 사용함. TextView: .. 2023. 6. 15.
06-1 화면을 구성하는 방법 티스토리 단축키 확인 ctrl + '/' 키 코드블록 단축키 alt+ctrl+',' 06~10장: 셋째마당-앱의 기본 기능 구현하기 액티비티-뷰 구조 안드로이드 앱의 기본 구조는 컴포넌트를 기반으로 한다. 즉 안드로이드 앱은 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더와 같은 컴포넌트를 적절하게 조합해서 만든다. 그런데 이중에서 화면을 출력하는 컴포넌트는 액티비티 뿐이다. 앱에서 화면을 출력하고 싶다면 액티비티가 필수인 것이다. 액티비티는 화면을 출력하는 컴포넌트일 뿐, 그 자체가 화면인 것은 아니라서 별도의 화면 구성을 필요로 한다. 화면 구성 없이 액티비티만 실행하면 텅 빈 흰 화면이 보인다. 화면에 내용을 표시하려면 뷰(view) 클래스를 이용해 구성해야 한다. ex. TextView.. 2023. 6. 15.
05-2 널 안정성 티스토리 단축키 확인 ctrl + '/' 키 코드블록 단축키 alt+ctrl+',' 널(Null) 안정성 널(Null)이란? 객체가 선언되었지만 초기화되지 않은 상태 객체는 데이터가 저장된 주소를 참조하므로 흔히 '참조 변수'라고 함. 데이터가 메모리에 저장되면 어디에 저장됐는지 알아야 이용할 수 있는데, 이때 해당 메모리 위치를 식별하는 것이 '주소'. 정리하면, 객체가 메모리에 담긴 데이터를 이용하기 위해, 객체에는 데이터가 직접 저장되는 것이 아닌 데이터가 저장된 메모리의 '주소'가 저장된다. 그 주소로 메모리에 접근해서 데이터를 이용한다. 그런데 널은 객체가 주소를 가지지 못한 상태를 나타낸다. 다음 코드에서는 data1 변수에 "hello"라는 데이터를 저장했다. 하지만 실제로는 "hello"라.. 2023. 6. 15.
05-1 람다 함수와 고차 함수 람다 함수(람다식) 코틀린 뿐만 아니라 많은 프로그래밍 언어에서 익명함수(anonymous function)를 정의할 때 사용됨 고차함수는 매개변수나 반환값으로 함수를 이용하는데, 람다 함수는 주고받을 함수를 간단하게 정의할 때 사용함. 즉, 그 자체도 가치가 있지만 고차 함수를 이해하고 사용하려면 꼭 알아야 한다! 람다 함수 선언과 호출 일반적인 함수는 fun 키워드로 선언하지만, 람다함수는 중괄호 { } 이용함 fun 함수명(매개변수) { 함수 본문 } // 함수 선언 형식 { 매개변수 -> 함수 본문 } // 람다 함수 선언 형식 코틀린에서의 람다 함수 사용 규칙 람다 함수는 { }로 표현함 { } 안에 화살표(->)가 있으며 화살표 왼쪽은 매개변수, 오른쪽은 함수 본문임 함수의 반환값은 함수 본문.. 2023. 6. 15.
04-3 코틀린의 클래스 종류 데이터 클래스 data 키워드로 선언 자주 사용하는 데이터를 객체로 묶어줌. VO(value-object) 클래스를 편리하게 이용할 수 있게 해줌. equals() 함수 객체의 데이터를 비교함 VO 클래스는 데이터를 주요하게 다루므로 데이터가 같은지 자주 비교함 ❗️'객체가 같은지'가 아니라 객체의 '데이터가 같은지' 를 비교함❗️ // 데이터 클래스 선언 예시 class NonDataClass(val name: String, val email: String, val age: Int) // 일반 클래스 data class DataClass(val name: String, val email: String, val age: Int) // 데이터 클래스 // 두 클래스의 주 생성자는 매개변수 구성이 같음 //.. 2023. 6. 14.
04-2 클래스를 재사용하는 상속 상속과 생성자 상속(inheritance)이란? 클래스를 선언할 때 다른 클래스를 참조해서 선언하는 것 코틀린에서는 어떤 클래스를 상속받으려면 선언부에 '콜론(:) 상속받을 클래스 이름' 붙여주면 됨(기존 클래스 재사용) 상위 클래스: 상속 관계에서 상속대상이 되는 클래스 하위 클래스: 상속 받는 클래스 클래스는 기본적으로 상속이 불가능 ➡️ 'open' 키워드 사용 상위 클래스를 상속받은 하위클래스의 생성자에서는 상위클래스의 생성자를 호출해야 함 // 클래스 상속 형식 open class Super { // open 키워드 사용하여 상속할 수 있게 됨 } class Sub: Super() { // 콜론과 상위 클래스 이름+(매개변수 없는)생성자 함께 호출함(괄호가 생성자 그자체) } // 매개변수 있는.. 2023. 6. 14.
04-1 클래스와 생성자 class User {} class User: 클래스의 선언부 {}: 본문 영역(내용 없으면 생략 가능) 클래스의 멤버 : 생성자,변수,함수,클래스 코틀린의 생성자: constructor라는 키워드로 선언하는 '함수' 더보기 생성자란? 생성자(Constructor)는 객체가 생성될때 '자동으로' 호출되는 특수 목적의 멤버함수(메소드)로 객체의 초기화를 위해 사용됩니다. 생성자는 클래스에 최소 1개는 있어야 하며, 생성자 코드가 없을 경우 컴파일러가 기본생성자를 자동으로 생성합니다. 참조:https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiIl_GKh7j_AhUFHXAKHfR3AJUQFnoECBkQ.. 2023. 6. 13.
03 코틀린 시작하기 03~05장:둘째마당-코틀린 이해하기 03-1 코틀린 언어 소개 코틀린은 자바의 가상머신인 JVM에 기반을 둔 언어라서 코틀린으로 작성한 프로그램을 JVM에서 실행할 수 있다. 코틀린 파일명을 클래스명과 다르게 선언해도 된다. 소스파일 최상위의 변수와 함수는 파일명+Kt.class 클래스가 자동으로 생성돼서 거기에 저장된다. 따라서 최상위에 선언한 변수,함수를 자바에서 이용하려면 '자동으로 만들어지는 클래스'를 이용해 접근하면 된다. 이름 달라도 문제 없단 말~ 코틀린 소스 테스트하기 :프로젝트파일 만들고 코틀린 파일 만들고 main함수 만들고 코틀린파일 우클릭해서 Run '파일명Kt' 누르기 '^+Shift+R'(맥북기준) 03-2 변수와 함수 변수 선언하기 val, var 키워드로 변수 선언 val:.. 2023. 6. 6.
02 안드로이드 앱의 기본 구조 SDK:Software Development Kit(소프트웨어 개발도구 모음) 맥에서 setting 들어가는 법 :맥에는 setting 버튼이 없다. 왼쪽상단의 android studio-Preferences에 들어가서 폰트 등의 설정을 변경할 수 있다. 02-1 안드로이드 소개 스택:처리해야할 요청을 저장하는 데이터 저장소 또는 버퍼 안드로이드 런타임(Android runtime:ART):앱을 실행함 자바는 개발자가 소스코드 작성하고 컴파일하면 클래스파일이 바로 만들어지고, 그 클래스 파일을 자바가상머신(JVM:java virtual machine)에서 실행함 안드로이드는 자바 클래스를 런타임때 '그대로 실행하지 않고' DEX파일로 컴파일함! 그리고 DEX 파일을 해석하는 'ART(Android run.. 2023. 6. 4.