목록코틀린 공부정리 (42)
개발여행일지~
class mainhomepage : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val btn_add2 = findViewById(R.id.login) btn_add2.setOnClickListener { val edit_Text = findViewById(R.id.editTextId) val strData = edit_Text.text.toString() val intent = Intent(this, HomeActivity::class.java) intent.putExtra("dat..
class mainhomepage : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val btn_add2 = findViewById(R.id.login) btn_add2.setOnClickListener { val edit_Text = findViewById(R.id.editTextId) val strData = edit_Text.text.toString() val intent = Intent(this, HomeActivity::class.java) intent.putExtra("dat..
화면처럼 디자인 화면에서는 이미지가 잘보이지만 막상 애뮬을 작동시켰을시 이미지가 안보이는 현상 발생 하지만 에러코드는 없음 해결방법 tools:src="@drawalbe/이미지"로 되어있는 코드라면 android:src="@drawable/이미지"로 변경한다.
코틀린의 Null 안정성을 향상시켜줄 수 있다 설명 Null예외는 프로그램의 가용성을 저하시키는 치명적인 오류다. 코틀린은 Null예외로부터 안전한 설계를 위해 자료형에 Null 여부를 명시할 수 있다. Kotlin의 널 세이프티 방법 Null 예외로부터 안전한 설계를 위한 다양한 키워드들을 지원한다. 코틀린은 ?, !!, ?., ?: 로 Null예외로부터 살아남으려고 한다. 하지만 강제로 null이 아니라고하는 !!는 최대한 사용을 지양한다. 예시코드 주소를 저장하는 address변수는 null을 저장할 수 있다고 String?을 선언한다. fun main(){ var s = Student() s.name = "참새" s.address = "서울" s.displayInfo() } class Studen..
변수나 상수의 값을 나중에 초기화할 수 있다! 코틀린은 클래스를 설계할 때 안정성을 위해 반드시 변수의 값을 초기화할것을 권장한다. 클래스를 설계할 때 초기의 값을 정의하기 난처해서 나중에 대입하기 위한 문법이다. 코틀린의 지연초기화 방법 코틀린은 지연초기화 또는 늦은초기화를 위해 lateinit, lazy 키워드를 활용한다. 변수는 lateinit으로 지연초기화해야한다. 상수는 lazy로 지연초기화해야한다. 지연초기화를 사용하는 이유 저사양으로 제한되어있는 환경에서 메모리를 더욱 효율적으로 사용가능하다. 예시) 변수의 지연초기화 기본 사용 name변수 값을 초기에 정의하기 어렵기 때문에 lateinit을 사용한다. 고급 사용 변수를 사용하기전에 초기화되었는지 확인해야 안정성을 높일 수 있다. 상수의 지..
try-catch의 구조 예외를 처리하는 구문 fun method1() { try { 예외가 발생할 가능성이 존재하는 코드 } catch(예외종류) { 예외가 발생했을때 처리할 코드 } } throw의 구조 예외를 던져주는 코드 fun method1(num1:Int) { if(num1 > 10) { throw 예외종류 } } 예외처리 사용처 예시) 숫자를 입력받아서 더하는 프로그램인데 실수로 문자를 입력했다면 예외를 처리해야한다. 사진을 다운로드 받는데 도중에 인터넷이 끊긴다면 예외를 처리해야한다. 수술을 받고있는데 메인 전력이 끊겼다면 보조 전력을 사용하도록 예외를 처리해야한다. USB와 연결하는 코드는 반드시 사용후에 연결을 끊어야함. (자원낭비) GPS를 사용하는 코드는 반드시 사용후에 연결을 끊어..
메소드 설계 특정한 로직을 가지는 소스코드에 별명(이름)을 붙일 수 있다. 이름이 붙은 로직은 앞으로 메소드라고 부를 수 있다. Kotlin의 메소드 구조 fun 메소드이름(변수명:자료형, 변수명:자료형 ....) : 반환자료형 { 소스코드 로직 } 클래스 설계 Object Oriented Programming (OOP) 코틀린은 모든것이 클래스형태이므로 객체화할 수 있다. 프로그램에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만든다. 객체들간의 적절한 결합을 통해 유지보수를 쉽게 할 수 있다. 5대 키워드 클래스 추상화 캡슐화 상속 다형성 특별한 클래스 데이터 클래스 (data class) 정보 프로퍼티만 갖고있는 클래스 필요 시 (데이터 관련) 사용 data class 클래스이름 (val..
개방 폐쇄 원칙 - ocp (Open Closed Principle)이란? 기존의 코드를 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다는 원칙이다. 이해한 바로는 기능을 (Open) 확장시키고 변하게하는건 가능하지만, 기능을 수정하는건 (Closed) 닫아버린다는 뜻이다. 개방 폐쇄 원칙을 지키는법! 첫 번째, 개방 폐쇄 원칙의 핵심은 변화하는 부분을 추상화하는 것! 여기서 추상화란? 다른 모든 종류의 객체로부터 식별될 수 있는 객체의 본질적인 특징이다. 두 번째, 상속을 이용하여 것! 처음에 OCP 설계 원칙에 따라 적절한 추상화 클래스를 구성하고 이를 상속하여 확장시키는 관계로 구성하면 변경에는 닫히고(closed) 추가에는 열려있는(open) 프로그램을 만들수 있다. 개방 폐쇄 원..