본문 바로가기

분류 전체보기111

Android Studio(Kotlin) Compose의 좌표계 컴포즈에서 좌표계의 원점([0,0])은 그리기 영역에서 맨 왼쪽 상단 픽셀에 있고, x는 오른쪽으로 이동할수록 증가하고 y는 아래쪽으로 이동할수록 증가한다. 0.0에서 달려나간다고 생각하면 이해하기가 좀 쉬울거같다. 기존 좌표계를 생각하지말고 내가 0.0을 기준으로 +50보 달린다고 생각하기 2023. 8. 20.
Kotlin14. null 문제, 스코프함수 1. null 클래스를 많이 쓰게되면, 여러가지 객체들이 변수에 대입되어 사용하게 된다. 여기서 중요한게!! 변수에 객체가 대입되어 보관이 되어있는가를 살펴봐야한다!! (안그러면 에러니까) 개발자는 변수에 객체가 있다고 생각했지만, 막상 안에는 null값이라면?? 에러다. 그래서 코틀린에서는 변수에는 null 대입을 기본적으로 인정하지않는다. class를 지정한 변수의 경우, 거기에 null을 대입하는것은 불가능하다. 또 프로퍼티의 경우, 반드시 객체가 대입될 수 있도록 초기화를 해야한다. 코틀린에서 초기화가 안된 프로퍼티(즉, 이 상태는 null의 상태이다)는 프로퍼티로 인정하지 않는다. 2. null 대응과 관련된 연산자 그런데 경우에 따라서는 null이 필요한 경우도 있을것이다. 코틀린에서는 nul.. 2023. 8. 13.
Kotlin13. class의 다른 확장 - Pair, 확장메소드/프로퍼티.. 1. 복수의 값을 토해내는 리턴값 (메인)함수나 메소드는 기본적으로 하나만 리턴한다. 그런데 경우에 따라서는 2,3개를 반환해야할때도 있다. Pair, Triple이라는 클래스를 이용하면 편하다. ※attribute : 속성 2개의 값을 다루는 Pair class first 첫번째 값 second 두번째 값 3개의 값을 다루는 Triple class first 첫번째 값 second 두번째 값 third 세번째 값 fun main() { val t = Person("아테나", "안", 12) val (n1,n2) = t.getName() //리턴값이 2개이므로 복수의 변수를 준비해야한다. val (at1,at2,at3) = t.getArrt() //리턴값이 3개이므로 복수의 변수를 준비해야한다. prin.. 2023. 8. 13.
Kotlin12. class의 다른 확장 - Delegation, observable... 1. 위임 (Delegation) class A와 class B가 인터페이스C를 implement 했다고 치자. A와 B는 아무런 관계가 없다. 다만 C를 implement 받았을 뿐.. 그런데 A가 갖고있는 기능을 그대로 B에게 양도해서 B를 정의하고 싶다면?? 이런식으로 클래스의 기능을 양도해서 별도의 클래스를 작성하는 것을 위임이라고한다. fun main() { val p = Person("아테나",10) println("==========================") p.show() println(p.message) val s = Student(p) println("==========================") s.show() println(s.message) } interface Hum.. 2023. 8. 13.
Kotlin11. interface, abstract, Singleton 1. interface 인터페이스 : 클래스에 준비되어야할 프로퍼티나 메소드를 정의해둔것 클래스와 다르게 메소드에는 구체적인 기능을 쓰는게 아니다! 메소드는 이름만 갖고있다. (이 이름으로 통일할꺼야! ) (자바에서는 implement로 구현된다. kotlin에서는 : 으로 가져온다. 상속과 똑같음) 인터페이스는 다중구현이 가능하다. (클래스는 다중상속이 불가능하다.) 인터페이스를 받은 클래스는, 인터페이스에 준비되어있는 프로퍼티나 메소드를 오버라이드해서 사용해야한다. fun main() { val me = Person("고양이", "cat@cat.cat") val you = Student("갈색푸들") val he = Person("코코") val she = Student("테나아",30) val da.. 2023. 8. 13.
Kotlin10. class와 OOP 1. 객체지향 C는 절차지향 , 함수를 쓰는 순서가 중요하다. 어느정도 프로그램이 복잡해지면 , 변수나 함수들이 점점 늘어나게된다. 이렇게 많아진 함수나 변수는 정리되지 않으며 나중에 코드를 보기 힘들어진다. 그 방법 중 하나로, 대규모 프로젝트를 만들때 주류가 되는 개념이 「객체지향」이다. 객체라는 덩어리로 프로그램을 구축한다. 객체는??? 변수나 함수를 덩어리로 만들어서, 항상 그 내용을 뱃속에 보존하고 이용할 수 있게 만든 것이다. 객체는 함수와 변수를 같이 갖고있다. 이 객체가 갖고 있는 능력을 class라 부른다. 이미 존재하는 class(Random,, 등)가 존재하고, 내가 class를 만들수도 있다. fun main() { var p = Person() p.name = "cake" p.ma.. 2023. 8. 6.